Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Jul 2017 07:25:17 -0700
From:      Russell Haley <russ.haley@gmail.com>
To:        freebsd-arm <freebsd-arm@freebsd.org>
Subject:   BBB & IMX6 Hummingboard SDIO driver
Message-ID:  <CABx9NuR-ahQ3-PF2DV_6zAzMdFKhkyCt0b8%2BcyQ1KDBcaYHU=g@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Well more EBK (error behind keyboard). In the end I STILL didn't read
the entire command line in the
wiki. I missed the -E parameter for sudo, which preserves the
environment variables.

Ian remembered that he once added something to the sudoers file, which
got me to the next step, where I finally *saw* the missing sudo parameter
when reading the wiki entry for buildkernel. His more permanent
solution is to add a line via
visudo:

Defaults env_keep += "MAKEOBJDIRPREFIX MODULES_OVERRIDE SUBDIR_OVERRIDE"

which preserves the required variable of MAKEOBJDIRPREFIX.

He explains the other variables:
The other two vars are because I sometimes do a sudo make install with
SUBDIR_OVERRIDE= or MODULES_OVERRIDE= to get a quick partial install

Final build instructions:

*NOTE: My output all says hummingboard because I thought I was going
to build for that board first. I changed my mind at the last minute
and built for my BBB. I'm cross building on amd64 to a BBB.

setenv BASEDIR `pwd`
setenv MAKEOBJDIRPREFIX $BASEDIR/obj
cd $BASEDIR/src

svn checkout https://svn0.us-west.FreeBSD.org/base/head .


mkdir /mnt/memdisk
mkdir /mnt/uboot

truncate -s 1100M bbb.img #I think... I used 2048 because 1024 failed
sudo mdconfig -f bbb.img

gpart create -s mbr md0
gpart add -t fat32 -b 1M -s 50M md0
sudo newfs_msdos -F16 /dev/md0s1
gpart add -t freebsd md0
sudo newfs /dev/md0s2


make TARGET_ARCH=armv6 -j10 buildworld
make TARGET_ARCH=armv6 KERNCONF=BEAGLEBONE-MMCCAM -j10 buildkernel

sudo mount_msdosfs /dev/md0s1 /mnt/uboot/
sudo mount /dev/md0s2 /mnt/memdisk/

#The -E is very important. It preserves the environment for sudo
sudo -E make TARGET_ARCH=armv6 DESTDIR=/mnt/memdisk installworld distribution
sudo -E make installkernel  TARGET_ARCH=armv6
KERNCONF=BEAGLEBONE-MMCCAM DESTDIR=/mnt/memdisk

cp ~/FreeBSD/hummingboard/obj/arm.armv6/usr/home/russellh/FreeBSD/hummingboard/src/sys/boot/arm/uboot/ubldr
/mnt/uboot

#
cd ~/FreeBSD/hummingboard/obj/arm.armv6/usr/home/russellh/FreeBSD/hummingboard/src
~/FreeBSD/hummingboard/obj/arm.armv6/usr/home/russellh/FreeBSD/hummingboard/src%
cp ./sys/BEAGLEBONE-MMCCAM/modules/usr/home/russellh/FreeBSD/hummingboard/src/sys/modules/dtb/am335x/am335x-boneblack.dtb
 /mnt/uboot/


cd /usr/ports/sysutils/u-boot-beaglebone/

make

cp work/u-boot-ports-v2017.01.00.2/MLO /mnt/uboot
cp work/u-boot-ports-v2017.01.00.2/u-boot.img /mnt/uboot

sudo umount /dev/md0s1
sudo umount /dev/md0s2
sudo mdconfig -du md0

sysctl kern.geom.debugflags=16
dd if=bbb.img of=/dev/da5 bs=4096k

total ufs size used: 948M

Thanks!
Russ

Now I need to find those silly little pins for the fdt cable. lolz

On Mon, Jul 17, 2017 at 5:15 PM, Russell Haley <russ.haley@gmail.com> wrote:
> Sorry, I'm going to take the TARGET out and try again. It's not in the
> wiki entry for cross building.
>
> On Mon, Jul 17, 2017 at 1:57 PM, Russell Haley <russ.haley@gmail.com> wrote:
>> My installworld is failing?
>>
>> Steps so far:
>> #Make a memdisk to speed things up
>> mkdir /mnt/memdisk
>> mkdir /mnt/uboot
>>
>> truncate -s 1024M bbb.img
>> sudo mdconfig -f bbb.img
>>
>> gpart create -s mbr md0
>> gpart add -t fat32 -b 1M -s 50M md0
>> newfs_msdos -F32 /dev/md0s1
>> gpart add -t freebsd md0
>> sudo newfs /dev/md0s2
>>
>> #build
>>
>> make -DNO_CLEAN TARGET=arm TARGET_ARCH=armv6 -j10 buildworld
>> make -DNO_CLEAN TARGET=arm TARGET_ARCH=armv6
>> KERNCONF=BEAGLEBONE-MMCCAM -j10 buildkernel
>>
>> #install
>> sudo mount_msdosfs /dev/md0s1 /mnt/uboot/
>> sudo mount /dev/md0s2 /mnt/memdisk/
>> sudo make TARGET_ARCH=armv6 DESTDIR=/mnt/memdisk installworld distribution
>>
>> build error (full output is here: https://pastebin.com/VU3XDt5u):
>>
>> --------------------------------------------------------------
>>>>> Installing everything
>> --------------------------------------------------------------
>> cd /usr/home/russellh/FreeBSD/hummingboard/src; make -f Makefile.inc1
>> install
>> ===> lib (install)
>> ===> lib/csu (install)
>> ===> lib/csu/arm (install)
>> cc -target armv6-gnueabihf-freebsd12.0
>> --sysroot=/usr/obj/arm.armv6/usr/home/russellh/FreeBSD/hummingboard/src/tmp
>> -B/usr/obj/arm.armv6/usr/home/russellh/FreeBSD/hummingboard/src/tmp/usr/bin
>> -O -pipe -I/usr/home/russellh/FreeBSD/hummingboard/src/lib/csu/common
>> -I/usr/home/russellh/FreeBSD/hummingboard/src/lib/libc/include
>> -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W
>> -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes
>> -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch
>> -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline
>> -Wnested-externs -Wredundant-decls -Wold-style-definition
>> -Wno-pointer-sign -Wthread-safety -Wno-empty-body -Wno-string-plus-int
>> -Wno-unused-const-variable  -Qunused-arguments
>> ERROR-tried-to-rebuild-during-make-install -mlong-calls -S -o crt1.s
>> /usr/home/russellh/FreeBSD/hummingboard/src/lib/csu/arm/crt1.c
>> /tmp/install.t1fF66Xy/sh: cc: not found
>> *** Error code 127
>>
>> Stop.
>> make[6]: stopped in
>> /usr/home/russellh/FreeBSD/hummingboard/src/lib/csu/arm
>> *** Error code 1
>>
>> Stop.
>> make[5]: stopped in
>> /usr/home/russellh/FreeBSD/hummingboard/src/lib/csu
>> *** Error code 1
>>
>> Stop.
>> make[4]: stopped in /usr/home/russellh/FreeBSD/hummingboard/src/lib
>> *** Error code 1
>>
>> Stop.
>> make[3]: stopped in /usr/home/russellh/FreeBSD/hummingboard/src
>> *** Error code 1
>>
>> Stop.
>> make[2]: stopped in /usr/home/russellh/FreeBSD/hummingboard/src
>> *** Error code 1
>>
>> Stop.
>> make[1]: stopped in /usr/home/russellh/FreeBSD/hummingboard/src
>> *** Error code 1
>>
>> Stop.
>> make: stopped in /usr/home/russellh/FreeBSD/hummingboard/src
>>
>>
>>
>> Thanks,
>> Russ
>>
>> On Mon, Jul 17, 2017 at 11:39 AM, Russell Haley <russ.haley@gmail.com> wrote:
>>> On Mon, Jul 17, 2017 at 11:34 AM, Ian Lepore <ian@freebsd.org> wrote:
>>>> On Mon, 2017-07-17 at 11:32 -0700, Russell Haley wrote:
>>>>> On Sun, Jul 16, 2017 at 7:30 PM, Ian Lepore <ian@freebsd.org> wrote:
>>>>> >
>>>>> > On Sun, 2017-07-16 at 17:41 -0700, Russell Haley wrote:
>>>>> > >
>>>>> > > Hi,
>>>>> > >
>>>>> > > I'm building for a BBB and I think I've got almost everything but
>>>>> > > I
>>>>> > > er... can't find the dtb file or the uEnv.txt file. Any help
>>>>> > > would be
>>>>> > > grand? I have a feeling I'm going to have to beg/borrow/steal a
>>>>> > > uEnv.txt file from a pre-built image.
>>>>> > >
>>>>> > > As I'm going through the process of re-learning the build steps,
>>>>> > > i
>>>>> > > thought of a couple of things that I either didn't see or
>>>>> > > couldn't
>>>>> > > find on the website:
>>>>> > >
>>>>> > > - A list of boards and their kernel config files
>>>>> > > - An easy reference on where to find the bits after the build.
>>>>> > > yes,
>>>>> > > yes, it's in the handbook.
>>>>> > > - Since u-boot has been standardised now, it would be nice to
>>>>> > > have a
>>>>> > > section on where to get u-boot and the other bits needed to boot.
>>>>> > >
>>>>> > > Anyway, I've got an unprecedented week with no work and no kids,
>>>>> > > so
>>>>> > > I'm going to do what any sane person would do during a beautiful
>>>>> > > July
>>>>> > > summer: play with FreeBSD!
>>>>> > >
>>>>> > > My end goal - and this is a stretch target - is to try and adopt
>>>>> > > Illyia's SDIO driver. I'm not sure how far I'll get, or much time
>>>>> > > I'll
>>>>> > > have after my week is up, but that's what my objective is. I've
>>>>> > > built
>>>>> > > the system using the kernel config BEAGLEBONE-MMCCAM in the blind
>>>>> > > hope
>>>>> > > that it will use his drivers? Once I get that working and can
>>>>> > > verify
>>>>> > > it in dtrace (maybe? yet another rabbit hole!) I want to get it
>>>>> > > working on my IMX6 hummingboard.
>>>>> > >
>>>>> > > oh, and I suppose I should open up some code, eh?
>>>>> > >
>>>>> > > Okay, now why isn't my PC computer seeing my sd cards? grrr... ;)
>>>>> > >
>>>>> > > Cheers,
>>>>> > >
>>>>> > > Russ
>>>>> > You don't need a uenv.txt file.  It was always optional, and with
>>>>> > the
>>>>> > latest uboot stuff it's completely gone.
>>>>> >
>>>>> > -- Ian
>>>>> Thanks Ian.
>>>>>
>>>>> DTB files are apparently generated with buildworld.
>>>>>
>>>>> https://wiki.freebsd.org/FlattenedDeviceTree
>>>>>
>>>>> I know they are generated with a specific tool (the name of which I
>>>>> forget) . I'm surprised it's not it's own target or at least part of
>>>>> buildkernel.
>>>>>
>>>>> Russ
>>>>
>>>> The DTB files installed on our distributed images are built from
>>>> sys/modules/dtb (which makes them part of the kernel build unless you
>>>> go out of your way to build them by themselves).
>>>
>>> EBK (Error Behind Keyboard): Forgot the single quotes in my find
>>> command. oops. Thanks!
>>>
>>> russellh@prescott:~/FreeBSD/hummingboard/obj/arm.armv6/usr/home/russellh/FreeBSD/hummingboard/src/sys%
>>> find . -name '*dtb*'
>>> ./BEAGLEBONE-MMCCAM/modules/usr/home/russellh/FreeBSD/hummingboard/src/sys/modules/dtb
>>> ./BEAGLEBONE-MMCCAM/modules/usr/home/russellh/FreeBSD/hummingboard/src/sys/modules/dtb/am335x/am335x-boneblack.dtb
>>> ./BEAGLEBONE-MMCCAM/modules/usr/home/russellh/FreeBSD/hummingboard/src/sys/modules/dtb/am335x/ufw.dtb
>>> ./BEAGLEBONE-MMCCAM/modules/usr/home/russellh/FreeBSD/hummingboard/src/sys/modules/dtb/am335x/am335x-bonegreen.dtb
>>> ./BEAGLEBONE-MMCCAM/modules/usr/home/russellh/FreeBSD/hummingboard/src/sys/modules/dtb/am335x/am335x-bone.dtb



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CABx9NuR-ahQ3-PF2DV_6zAzMdFKhkyCt0b8%2BcyQ1KDBcaYHU=g>