Skip to content

Instantly share code, notes, and snippets.

@EnsekiTT
Created December 11, 2012 16:06
Show Gist options
  • Save EnsekiTT/4259745 to your computer and use it in GitHub Desktop.
Save EnsekiTT/4259745 to your computer and use it in GitHub Desktop.
FreeBSD/Pi Script
#!/bin/sh
set -e
export TARGET_ARCH=arm
export SRCROOT=/usr/home/ensekitt/src/freebsd-pi
export MAKEOBJDIRPREFIX=/usr/home/ensekitt/src/obj
export KERNCONF=RPI-B
KERNEL_BIN=`realpath $MAKEOBJDIRPREFIX`/arm.arm/`realpath $SRCROOT`/sys/$KERNCONF/kernel.bin
make -C $SRCROOT kernel-toolchain
make -C $SRCROOT KERNCONF=$KERNCONF WITH_FDT=yes buildkernel
make -C $SRCROOT TARGET_CPUTYPE=armv6 MALLOC_PRODUCTION=yes buildworld
IMG=bsd-pi.img
rm -f $IMG
dd if=/dev/zero of=$IMG bs=128M count=8
MDFILE=`mdconfig -a -f bsd-pi.img`
gpart create -s MBR ${MDFILE}
gpart add -s 32m -t '!12' ${MDFILE}
gpart add -s 896m -t '!12' ${MDFILE}
gpart set -a active -i 1 ${MDFILE}
newfs_msdos -L boot -F 16 /dev/${MDFILE}s1
newfs /dev/${MDFILE}s2
mount_msdosfs /dev/${MDFILE}s1 /mnt
tar -x -v -z -C /mnt -f freebsd-uboot-sd.tar.gz
cp $KERNEL_BIN /mnt
umount /mnt
mount /dev/${MDFILE}s2 /mnt
make -C $SRCROOT DESTDIR=/mnt installworld
make -C $SRCROOT DESTDIR=/mnt distribution
# Minimal config
echo 'hostname="freebsd-pi"' > /mnt/etc/rc.conf
echo '/dev/mmcsd0s2 / ufs rw 1 1' > /mnt/etc/fstab
umount /mnt
mdconfig -d -u $MDFILE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment