# $NetBSD: rpi.conf,v 1.1 2013/01/13 20:57:18 christos Exp $ # Raspberry PI customization script used by mkimage # image=$HOME/rpi.img firmwaredir=$src/external/broadcom/rpi-firmware/dist firmwarefiles="LICENCE.broadcom bootcode.bin fixup.dat fixup_cd.dat start.elf start_cd.elf" sets="base etc games man misc modules tests text" setsdir=$obj/evbarm/media kerneldir=$src/sys/arch/evbarm/compile/RPI specialdirs="/kern /proc" size=2048 overhead=8 tmp=/tmp/rpi.disklabel.$$ make_filesystems() { cat > ${tmp} << EOF type: SCSI disk: STORAGE DEVICE label: fictitious flags: removable bytes/sector: 512 sectors/track: 32 tracks/cylinder: 64 sectors/cylinder: 2048 cylinders: 7460 total sectors: 2097152 rpm: 3600 interleave: 1 trackskew: 0 cylinderskew: 0 headswitch: 0 # microseconds track-to-track seek: 0 # microseconds drivedata: 0 8 partitions: # size offset fstype [fsize bsize cpg/sgs] a: 1449984 647168 4.2BSD 2048 16384 0 # b: 524288 122880 swap # d: 2097152 0 unused 0 0 # e: 114688 8192 MSDOS # EOF ${sudo} disklabel -R ${vnddev} ${tmp} ${sudo} fdisk -f -u -0 -s 12/8192/114688 -F ${image} ${sudo} newfs /dev/r${vnddev}a ${sudo} newfs_msdos /dev/r${vnddev}e ${sudo} mount /dev/${vnddev}a ${mnt} ${sudo} mkdir ${mnt}/boot ${sudo} mount_msdos /dev/${vnddev}e ${mnt}/boot } make_fstab() { ${sudo} cat > ${mnt}/etc/fstab << EOF # NetBSD /etc/fstab # See /usr/share/examples/fstab/ for more examples. /dev/ld0a / ffs rw,log 1 1 /dev/ld0b none swap sw 0 0 /dev/ld0e /boot msdos rw 1 1 kernfs /kern kernfs rw ptyfs /dev/pts ptyfs rw procfs /proc procfs rw EOF } customize() { ${sudo} cat > ${mnt}/etc/rc.conf << EOF sshd=YES dhcpcd=YES mdnsd=YES wscons=YES EOF ${sudo} cat > ${mnt}/boot/cmdline.txt << EOF console=fb #fb=1280x1024 # to select a mode, otherwise EDID will be tried and fallback to #fb=disable # to disable fb completely EOF echo "${bar} installing firmware files ${bar}" (cd ${mnt}/boot && for f in ${firmwarefiles}; do echo $f ${sudo} cp ${firmwaredir}/${f} . done ) if [ ! -f ${kerneldir}/kernel.img ]; then echo ${PROG}: Missing ${kerneldir}/kernel.img 1>&2 exit 1 fi echo "${bar} installing kernel ${bar}" ${sudo} cp ${kerneldir}/kernel.img ${mnt}/boot if [ ! -f ${mnt}/dev/MAKEDEV ]; then echo ${PROG}: Missing ${mnt}/dev/MAKEDEV 1>&2 exit 1 fi echo "${bar} running MAKEDEV ${bar}" (cd ${mnt}/dev && ${sudo} sh MAKEDEV all) } cleanup() { rm -f ${tmp} ${sudo} umount ${mnt}/boot }