rickvanderzwet.nl

Personal notes on technology, sustainability and DIY projects

FreeBSDCrossBuilding

last updated 22-07-2011 · author: rick

Mijn aanpak met 8.1-RELEASE heb ik gebruik gemaakt van wat 'vieze trucjes' die nullfs dingen en chroot.Bouwen in een jail heb ik niet voor elkaar gekregen omdat mdconfig i386 (32bit) niet overweg kan met een amd64 (64bit) /dev/mdctl handle. Verder kan 'stock' nanobsd.sh ook niet cross-builden en maakt wat vervelende aannamems van de architecture van het systeem waar het op draait. Ik maak dus de ports en het OS in de chroot en doe de instalatie in het 'master' os.

master# svn checkout <http://svn.wirelessleiden.nl/svn/code/iris/trunk/nanobsd> /root/nanobsd
master# mkdir -p /usr/local/jail/i386
master# csup -h cvsup.nl.freebsd.org /usr/share/examples/cvsup/standard-supfile
master# cd /usr/src
master# make buildworld TARGET=i386
master# make installworld TARGET=i386 DESTDIR=/usr/local/jail/i386
master# kldload nullfs
master# mkdir -p /usr/local/jail/i386/usr/ports ; mount_nullfs /usr/ports /usr/local/jail/i386/usr/ports
master# mkdir -p /usr/local/jail/i386/usr/obj ; mount_nullfs /usr/obj /usr/local/jail/i386/usr/obj
master# mkdir -p /usr/local/jail/i386/root/nanobsd ; mount_nullfs /root/nanobsd /usr/local/jail/i386/root/nanobsd
master# chroot /usr/local/jail/i386/
jail# setenv UNAME_m i386
jail# setenv UNAME_p i386
jail# /root/nanobsd/tools/package-build.sh
jail# patch -d /usr/src/sys/dev/usb -i /root/nanobsd/misc/patches/usbdevs.patch
jail# patch -d /usr/src/sys/dev/usb/net -i /root/nanobsd/misc/patches/if_udav.c.patch
jail# sh /usr/src/tools/tools/nanobsd/nanobsd.sh -c /root/nanobsd/cfg/nanobsd.wleiden
Tip

This build will fail ones it tries to play around with memory disks, this actually means we are ready for the next step.

jail# exit
master# setenv CFG_ROOT_PASSWORD \`dd if=/dev/random bs=10k count=10 \| tr -cd 'a-zA-Z0-9' \| cut -c -15\`
master# echo $CFG_ROOT_PASSWORD
master# sh /usr/src/tools/tools/nanobsd/nanobsd.sh -c /root/nanobsd/cfg/nanobsd.wleiden
master# ls -alh /usr/obj/nanobsd.wleiden/_.disk.\*

References:

Download as: plain text