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