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