1 # $NetBSD: rpi_inst.conf,v 1.3 2013/09/14 12:51:27 ast Exp $ 2 # Raspberry Pi customization script used by mkimage 3 # 4 5 board=rpi_inst 6 kernel=$src/sys/arch/evbarm/compile/RPI/netbsd-RPI_INSTALL.bin 7 8 GZIP_CMD=${TOOL_GZIP:-gzip} # ${GZIP} is special to gzip(1) 9 10 image=$HOME/${board}.img 11 12 specialdirs="/kern /proc" 13 14 swap=8 15 extra=8 # spare space 16 boot=112 17 init=8 18 19 size=$(( 10485760 + ${swap} * 1024 * 512 + ${boot} * 1024 * 512 + ${init} * 1024 * 512 )) 20 msdosid=12 21 22 make_label_evbarm() { 23 # compute all sizes in terms of sectors 24 local totalsize=$(( ${newsize} * 1024 * 2 / 512 )) 25 26 local swapsize=$(( ${swap} * 1024 )) 27 local bootsize=$(( ${boot} * 1024 )) 28 29 local bootoffset=$(( ${init} * 1024 )) 30 local swapoffset=$(( ${bootoffset} + ${bootsize} )) 31 32 local asize=$(( ${totalsize} - ${swapsize} - ${bootsize} - ${bootoffset} )) 33 local aoffset=$(( ${swapoffset} + ${swapsize} )) 34 35 local bps=512 36 local spt=32 37 local tpc=64 38 local spc=2048 39 local cylinders=$(( ${totalsize} / ${spc} )) 40 41 cat << EOF 42 type: SCSI 43 disk: STORAGE DEVICE 44 label: fictitious 45 flags: removable 46 bytes/sector: ${bps} 47 sectors/track: ${spt} 48 tracks/cylinder: ${tpc} 49 sectors/cylinder: ${spc} 50 cylinders: ${cylinders} 51 total sectors: ${totalsize} 52 rpm: 3600 53 interleave: 1 54 trackskew: 0 55 cylinderskew: 0 56 headswitch: 0 # microseconds 57 track-to-track seek: 0 # microseconds 58 drivedata: 0 59 60 8 partitions: 61 # size offset fstype [fsize bsize cpg/sgs] 62 a: ${asize} ${aoffset} 4.2BSD ${fsize} ${bsize} 0 # 63 b: ${swapsize} ${swapoffset} swap # 64 d: ${totalsize} 0 unused 0 0 # 65 e: ${bootsize} ${bootoffset} MSDOS # 66 EOF 67 } 68 69 make_fstab_evbarm() { 70 : 71 } 72 73 customize_evbarm() { 74 echo "${bar} creating directories ${bar}" 75 mkdir ${mnt}/proc ${mnt}/kern 76 } 77 firmwaredir=$src/external/broadcom/rpi-firmware/dist 78 firmwarefiles="LICENCE.broadcom bootcode.bin fixup.dat fixup_cd.dat start.elf start_cd.elf" 79 80 make_filesystems() { 81 make_filesystems_evbarm 82 } 83 84 make_fstab() { 85 make_fstab_evbarm 86 } 87 88 make_label() { 89 make_label_evbarm 90 } 91 92 customize() { 93 customize_evbarm 94 } 95 96 populate() { 97 cat > ${mnt}/boot/cmdline.txt << EOF 98 root=ld0a console=fb 99 #fb=1280x1024 # to select a mode, otherwise try EDID 100 #fb=disable # to disable fb completely 101 EOF 102 if [ ! -f ${kernel} ]; then 103 echo ${PROG}: Missing ${kernel} 1>&2 104 exit 1 105 fi 106 107 echo "${bar} installing kernel ${bar}" 108 case ${kernel} in 109 *.gz) 110 ${GZIP_CMD} -dc ${kernel} > ${mnt}/boot/kernel.img 111 ;; 112 *) 113 cp ${kernel} ${mnt}/boot/kernel.img 114 ;; 115 esac 116 117 echo "${bar} installing firmware files ${bar}" 118 (cd ${mnt}/boot && 119 for f in ${firmwarefiles}; do 120 echo " $f" 121 cp ${firmwaredir}/${f} . 122 done 123 ) 124 125 } 126