Module Name: src Committed By: christos Date: Wed Jan 16 23:27:34 UTC 2013
Modified Files: src/distrib/utils/embedded: mkimage src/distrib/utils/embedded/conf: beagleboard.conf rpi.conf Added Files: src/distrib/utils/embedded/conf: evbarm.conf Log Message: - Add support for xsets - Factor out common evbarm code To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/distrib/utils/embedded/mkimage cvs rdiff -u -r1.2 -r1.3 src/distrib/utils/embedded/conf/beagleboard.conf cvs rdiff -u -r0 -r1.1 src/distrib/utils/embedded/conf/evbarm.conf cvs rdiff -u -r1.8 -r1.9 src/distrib/utils/embedded/conf/rpi.conf Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/distrib/utils/embedded/mkimage diff -u src/distrib/utils/embedded/mkimage:1.12 src/distrib/utils/embedded/mkimage:1.13 --- src/distrib/utils/embedded/mkimage:1.12 Wed Jan 16 10:58:19 2013 +++ src/distrib/utils/embedded/mkimage Wed Jan 16 18:27:34 2013 @@ -1,7 +1,7 @@ #! /bin/sh -# $NetBSD: mkimage,v 1.12 2013/01/16 15:58:19 christos Exp $ - +# $NetBSD: mkimage,v 1.13 2013/01/16 23:27:34 christos Exp $ +# # Copyright (c) 2012 Alistair Crooks <a...@netbsd.org> # All rights reserved. # @@ -72,7 +72,7 @@ usage() { cat << EOF 1>&2 Usage: $PROG [-S <setsdir>] [-c <custom-files-dir>] [-h <host-arch>] [-s <size>] EOF -exit 1 + exit 1 } # Return the filesystem size for an ls -l or tar -xvf list @@ -174,9 +174,10 @@ makeffssize() { } finish() { - cleanup - ${sudo} umount ${mnt} - ${sudo} vnconfig -u ${vnddev} + cleanup + ${sudo} umount ${mnt} + ${sudo} vnconfig -u ${vnddev} + rm -fr ${mnt} } @@ -188,6 +189,8 @@ mnt="${TMPDIR:-/tmp}/image.$$" src="/usr/src" obj="/usr/obj" +sets="base comp etc games man misc modules text" +xsets="xbase xcomp xetc xfont xserver" # Presumable block and fragment size. bsize=16384 @@ -225,7 +228,7 @@ do c) custom="$OPTARG";; h) ;; s) size="$OPTARG";; - x) set -x;; + x) sets="$sets $xsets";; *) usage;; esac done @@ -242,10 +245,12 @@ fi # calculate the set bytes setbytes=0 echo -n "${bar} computing set sizes (" +b= for s in ${sets}; do one="$(sizeone ${setsdir}/${s}.tgz)" - echo -n " $s=$(( ${one} / ${mtob} ))MB" + echo -n "$b$s=$(( ${one} / ${mtob} ))MB" setbytes=$(( ${setbytes} + ${one} )) + b=" " done echo "): $(( ${setbytes} / ${mtob} ))MB ${bar}" Index: src/distrib/utils/embedded/conf/beagleboard.conf diff -u src/distrib/utils/embedded/conf/beagleboard.conf:1.2 src/distrib/utils/embedded/conf/beagleboard.conf:1.3 --- src/distrib/utils/embedded/conf/beagleboard.conf:1.2 Mon Jan 14 21:51:10 2013 +++ src/distrib/utils/embedded/conf/beagleboard.conf Wed Jan 16 18:27:34 2013 @@ -1,120 +1,33 @@ -# $NetBSD: beagleboard.conf,v 1.2 2013/01/15 02:51:10 jmcneill Exp $ +# $NetBSD: beagleboard.conf,v 1.3 2013/01/16 23:27:34 christos Exp $ # BeagleBoard customization script used by mkimage # board=beagleboard kernelconf=BEAGLEBOARD +kerneldir=$src/sys/arch/evbarm/compile/obj/${kernelconf} + +. ${DIR}/conf/evbarm.conf + kernelimg=netbsd.ub loadaddr=81000000 -image=$HOME/${board}.img -sets="base etc comp games man misc modules tests text" -setsdir=$obj/evbarm/media -kerneldir=$src/sys/arch/evbarm/compile/obj/${kernelconf} -specialdirs="/kern /proc" - -swap=512 -size=2048 -overhead=8 -boot=112 -init=8 -msdosid=12 -tmp=/tmp/${board}.disklabel.$$ make_filesystems() { - - local asize=$(( ${size} * 1024 )) - local swapsize=$(( ${swap} * 1024 )) - local bootsize=$(( ${boot} * 1024 )) - - local bootoffset=$((${init} * 1024 )) - local swapoffset=$(( ${bootoffset} + ${bootsize} )) - local aoffset=$(( ${swapoffset} + ${swapsize} )) - - local totalsize=$(( ${asize} + ${swapsize} + ${bootsize} + ${bootoffset} )) - local bps=512 - local spt=32 - local tpc=64 - local spc=2048 - local cylinders=$(( ${totalsize} / ${spc} )) - - cat > ${tmp} << EOF -type: SCSI -disk: STORAGE DEVICE -label: fictitious -flags: removable -bytes/sector: ${bps} -sectors/track: ${spt} -tracks/cylinder: ${tpc} -sectors/cylinder: ${spc} -cylinders: ${cylinders} -total sectors: ${totalsize} -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: ${asize} ${aoffset} 4.2BSD 2048 16384 0 # - b: ${swapsize} ${swapoffset} swap # - d: ${totalsize} 0 unused 0 0 # - e: ${bootsize} ${bootoffset} MSDOS # -EOF - ${sudo} disklabel -R ${vnddev} ${tmp} - ${sudo} fdisk -f -u -0 -s ${msdosid}/${bootoffset}/${bootsize} -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_filesystems_evbarm } 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 + make_fstab_evbarm } customize() { - - ${sudo} cat >> ${mnt}/etc/rc.conf << EOF -hostname=${board} -sshd=YES -dhcpcd=YES -mdnsd=YES -EOF + customize_evbarm ${sudo} cat > ${mnt}/boot/uEnv.txt << EOF loaduimage=fatload mmc 0 ${loadaddr} ${kernelimg}; bootm ${loadaddr} root=ld0a EOF - - if [ ! -f ${kerneldir}/${kernelimg} ]; then - echo ${PROG}: Missing ${kerneldir}/${kernelimg} 1>&2 - exit 1 - fi - echo "${bar} installing kernel ${bar}" - ${sudo} cp ${kerneldir}/${kernelimg} ${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 + cleanup_evbarm } Index: src/distrib/utils/embedded/conf/rpi.conf diff -u src/distrib/utils/embedded/conf/rpi.conf:1.8 src/distrib/utils/embedded/conf/rpi.conf:1.9 --- src/distrib/utils/embedded/conf/rpi.conf:1.8 Tue Jan 15 15:55:00 2013 +++ src/distrib/utils/embedded/conf/rpi.conf Wed Jan 16 18:27:34 2013 @@ -1,98 +1,27 @@ -# $NetBSD: rpi.conf,v 1.8 2013/01/15 20:55:00 christos Exp $ +# $NetBSD: rpi.conf,v 1.9 2013/01/16 23:27:34 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" +board=rpi +kernelconf=RPI +kerneldir=$src/sys/arch/evbarm/compile/${kernelconf} -sets="base etc comp games man misc modules text" -setsdir=$obj/evbarm//media/evbarm/binary/sets/ -kerneldir=$src/sys/arch/evbarm/compile/RPI -specialdirs="/kern /proc" - -swap=256 -extra=8 # spare space -boot=112 -init=8 - -size=0 # autocompute -msdosid=12 -overhead=$(( ${swap} + ${extra} + ${init} + ${boot} )) +. ${DIR}/conf/evbarm.conf -tmp=/tmp/rpi.disklabel.$$ +firmwaredir=$src/external/broadcom/rpi-firmware/dist +firmwarefiles="LICENCE.broadcom bootcode.bin fixup.dat fixup_cd.dat start.elf start_cd.elf" make_filesystems() { - - local asize=$(( ${newsize} * 1024 )) - local swapsize=$(( ${swap} * 1024 )) - local bootsize=$(( ${boot} * 1024 )) - - local bootoffset=$((${init} * 1024 )) - local swapoffset=$(( ${bootoffset} + ${bootsize} )) - local aoffset=$(( ${swapoffset} + ${swapsize} )) - - local totalsize=$(( ${asize} + ${swapsize} + ${bootsize} + ${bootoffset} )) - local bps=512 - local spt=32 - local tpc=64 - local spc=2048 - local cylinders=$(( ${totalsize} / ${spc} )) - - cat > ${tmp} << EOF -type: SCSI -disk: STORAGE DEVICE -label: fictitious -flags: removable -bytes/sector: ${bps} -sectors/track: ${spt} -tracks/cylinder: ${tpc} -sectors/cylinder: ${spc} -cylinders: ${cylinders} -total sectors: ${totalsize} -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: ${asize} ${aoffset} 4.2BSD ${fsize} ${bsize} 0 # - b: ${swapsize} ${swapoffset} swap # - d: ${totalsize} 0 unused 0 0 # - e: ${bootsize} ${bootoffset} MSDOS # -EOF - ${sudo} disklabel -R ${vnddev} ${tmp} - ${sudo} fdisk -f -u -0 -s ${msdosid}/${bootoffset}/${bootsize} -F ${image} - ${sudo} newfs /dev/r${vnddev}a - ${sudo} newfs_msdos /dev/r${vnddev}e - ${sudo} mount -o async /dev/${vnddev}a ${mnt} - ${sudo} mkdir ${mnt}/boot - ${sudo} mount_msdos /dev/${vnddev}e ${mnt}/boot + make_filesystems_evbarm } 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 + make_fstab_evbarm } customize() { - - ${sudo} cat >> ${mnt}/etc/rc.conf << EOF -sshd=YES -dhcpcd=YES -mdnsd=YES + customize_evbarm + ${sudo} cat >> ${mnt}/etc/rc.conf << EOF wscons=YES EOF @@ -111,22 +40,8 @@ EOF ) echo " ${bar}" - 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 + cleanup_evbarm } Added files: Index: src/distrib/utils/embedded/conf/evbarm.conf diff -u /dev/null src/distrib/utils/embedded/conf/evbarm.conf:1.1 --- /dev/null Wed Jan 16 18:27:34 2013 +++ src/distrib/utils/embedded/conf/evbarm.conf Wed Jan 16 18:27:34 2013 @@ -0,0 +1,109 @@ +# $NetBSD: evbarm.conf,v 1.1 2013/01/16 23:27:34 christos Exp $ +# evbarm shared config +# +image=$HOME/${board}.img + +setsdir=$obj/evbarm/media/evbarm/binary/sets/ +specialdirs="/kern /proc" + +swap=256 +extra=8 # spare space +boot=112 +init=8 + +size=0 # autocompute +msdosid=12 +overhead=$(( ${swap} + ${extra} + ${init} + ${boot} )) + +tmp=/tmp/${board}.disklabel.$$ + +make_filesystems_evbarm() { + + local asize=$(( ${newsize} * 1024 )) + local swapsize=$(( ${swap} * 1024 )) + local bootsize=$(( ${boot} * 1024 )) + + local bootoffset=$((${init} * 1024 )) + local swapoffset=$(( ${bootoffset} + ${bootsize} )) + local aoffset=$(( ${swapoffset} + ${swapsize} )) + + local totalsize=$(( ${asize} + ${swapsize} + ${bootsize} + ${bootoffset} )) + local bps=512 + local spt=32 + local tpc=64 + local spc=2048 + local cylinders=$(( ${totalsize} / ${spc} )) + + cat > ${tmp} << EOF +type: SCSI +disk: STORAGE DEVICE +label: fictitious +flags: removable +bytes/sector: ${bps} +sectors/track: ${spt} +tracks/cylinder: ${tpc} +sectors/cylinder: ${spc} +cylinders: ${cylinders} +total sectors: ${totalsize} +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: ${asize} ${aoffset} 4.2BSD ${fsize} ${bsize} 0 # + b: ${swapsize} ${swapoffset} swap # + d: ${totalsize} 0 unused 0 0 # + e: ${bootsize} ${bootoffset} MSDOS # +EOF + ${sudo} disklabel -R ${vnddev} ${tmp} + ${sudo} fdisk -f -u -0 -s ${msdosid}/${bootoffset}/${bootsize} -F ${image} + ${sudo} newfs /dev/r${vnddev}a + ${sudo} newfs_msdos /dev/r${vnddev}e + ${sudo} mount -o async /dev/${vnddev}a ${mnt} + ${sudo} mkdir ${mnt}/boot + ${sudo} mount_msdos /dev/${vnddev}e ${mnt}/boot +} + +make_fstab_evbarm() { + ${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_evbarm() { + ${sudo} cat >> ${mnt}/etc/rc.conf << EOF +sshd=YES +dhcpcd=YES +mdnsd=YES +EOF + 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_evbarm() { + rm -f ${tmp} + ${sudo} umount ${mnt}/boot +}