changelog shortlog tags branches changeset files file revisions raw help

Mercurial > hg > plan9front / annotate sys/lib/dist/mkfile

changeset 7211: b52531f0e5af
parent: 0e435b158257
child: 64a00b5fab8c
author: cinap_lenrek@felloff.net
date: Mon, 06 May 2019 18:29:09 +0200
permissions: -rw-r--r--
description: dist/mkfile: add *.pi3.img target for ARM64 raspberry pi3
cinap_lenrek@6304 1
 proto=/n/src9/sys/lib/sysconfig/proto/distproto
cinap_lenrek@6304 2
 
cinap_lenrek@6304 3
 cd:V:	/tmp/9front.386.iso.gz
cinap_lenrek@6304 4
 
cinap_lenrek@6304 5
 %.gz:D:	%
cinap_lenrek@6304 6
 	gzip -9 < $prereq > $target
cinap_lenrek@491 7
 
cinap_lenrek@6304 8
 %.386.iso:
cinap_lenrek@6304 9
 	@{
cinap_lenrek@6304 10
 	objtype=386
cinap_lenrek@6304 11
 	kernel=/n/src9/$objtype/9pc
cinap_lenrek@6304 12
 	mk $target.$pid.pc.iso
cinap_lenrek@6304 13
 	mv $target.$pid.pc.iso $target
cinap_lenrek@6304 14
 	}
cinap_lenrek@28 15
 
cinap_lenrek@6304 16
 %.amd64.iso:
cinap_lenrek@6304 17
 	@{
cinap_lenrek@6304 18
 	objtype=amd64
cinap_lenrek@6304 19
 	kernel=/n/src9/$objtype/9pc64
cinap_lenrek@6304 20
 	mk $target.$pid.pc.iso
cinap_lenrek@6304 21
 	mv $target.$pid.pc.iso $target
cinap_lenrek@6304 22
 	}
cinap_lenrek@4857 23
 
cinap_lenrek@6842 24
 %.pi.img:
cinap_lenrek@6842 25
 	@{
cinap_lenrek@6842 26
 	objtype=arm
cinap_lenrek@6842 27
 	bootcode=/sys/src/boot/bcm/^(bootcode.bin fixup_cd.dat start_cd.elf LICENCE.broadcom)
cinap_lenrek@6842 28
 	kernels=/n/src9/$objtype/^(9pi 9pi2)
cinap_lenrek@6842 29
 	> /env/config.txt {
cinap_lenrek@6842 30
 		echo '[pi0]'
cinap_lenrek@6842 31
 		echo 'kernel=9pi'
cinap_lenrek@6842 32
 		echo '[pi1]'
cinap_lenrek@6842 33
 		echo 'kernel=9pi'
cinap_lenrek@6842 34
 		echo '[pi2]'
cinap_lenrek@6842 35
 		echo 'kernel=9pi2'
cinap_lenrek@6842 36
 		echo '[pi3]'
cinap_lenrek@6842 37
 		echo 'kernel=9pi2'
cinap_lenrek@6842 38
 		echo 'core_freq=250'
cinap_lenrek@6842 39
 		echo '[all]'
cinap_lenrek@6842 40
 		echo 'gpu_mem=16'
cinap_lenrek@6842 41
 		echo 'enable_uart=1'
cinap_lenrek@7211 42
 		echo 'boot_delay=1'
cinap_lenrek@6842 43
 	}
cinap_lenrek@6842 44
 	> /env/cmdline.txt {
cinap_lenrek@6842 45
 		echo 'console=0'
cinap_lenrek@6842 46
 	}
cinap_lenrek@6842 47
 	fatfiles=(/env/config.txt /env/cmdline.txt $bootcode $kernels)
cinap_lenrek@6842 48
 	mb=1919	# storage vendors idea of 2GB
cinap_lenrek@6842 49
 	mk $target.$pid.disk
cinap_lenrek@6842 50
 	mv $target.$pid.disk $target
cinap_lenrek@6842 51
 	}
cinap_lenrek@6842 52
 
cinap_lenrek@7211 53
 %.pi3.img:
cinap_lenrek@7211 54
 	@{
cinap_lenrek@7211 55
 	objtype=arm64
cinap_lenrek@7211 56
 	bootcode=/sys/src/boot/bcm/^(bootcode.bin fixup_cd.dat start_cd.elf LICENCE.broadcom)
cinap_lenrek@7211 57
 	kernel=/n/src9/$objtype/9pi3
cinap_lenrek@7211 58
 	> /env/config.txt {
cinap_lenrek@7211 59
 		echo '[pi3]'
cinap_lenrek@7211 60
 		echo 'kernel=9pi3'
cinap_lenrek@7211 61
 		echo 'arm_64bit=1'
cinap_lenrek@7211 62
 		echo 'core_freq=250'
cinap_lenrek@7211 63
 		echo '[all]'
cinap_lenrek@7211 64
 		echo 'gpu_mem=16'
cinap_lenrek@7211 65
 		echo 'enable_uart=1'
cinap_lenrek@7211 66
 		echo 'boot_delay=1'
cinap_lenrek@7211 67
 	}
cinap_lenrek@7211 68
 	> /env/cmdline.txt {
cinap_lenrek@7211 69
 		echo 'console=0'
cinap_lenrek@7211 70
 	}
cinap_lenrek@7211 71
 	fatfiles=(/env/config.txt /env/cmdline.txt $bootcode $kernel)
cinap_lenrek@7211 72
 	mb=1919	# storage vendors idea of 2GB
cinap_lenrek@7211 73
 	mk $target.$pid.disk
cinap_lenrek@7211 74
 	mv $target.$pid.disk $target
cinap_lenrek@7211 75
 	}
cinap_lenrek@7211 76
 
cinap_lenrek@6304 77
 %.zynq.img:
cinap_lenrek@6304 78
 	@{
cinap_lenrek@6304 79
 	objtype=arm
cinap_lenrek@6304 80
 	kernel=/n/src9/$objtype/9zynq
cinap_lenrek@6304 81
 	echo 'bootfile='^`{basename $kernel} > /env/plan9.ini
cinap_lenrek@6304 82
 	fatfiles=(/env/plan9.ini $kernel)
cinap_lenrek@6304 83
 	mb=1919	# storage vendors idea of 2GB
cinap_lenrek@6304 84
 	mk $target.$pid.disk
cinap_lenrek@6304 85
 	mv $target.$pid.disk $target
cinap_lenrek@6304 86
 	}
cinap_lenrek@6304 87
 
cinap_lenrek@6350 88
 %.pc.iso:D:	$proto /n/src9/sys/lib/sysconfig/proto/9bootproto $kernel
cinap_lenrek@4857 89
 	@{rfork n
cinap_lenrek@4857 90
 	mk binds
cinap_lenrek@6304 91
 	{grep -v '^bootfile=' /n/src9/cfg/plan9.ini
cinap_lenrek@6304 92
 	echo 'bootfile='^`{echo $kernel | sed 's!^/n/src9!!'}} > /env/plan9.ini
cinap_lenrek@6304 93
 	bind /env/plan9.ini /n/src9/cfg/plan9.ini
cinap_lenrek@6304 94
 	disk/mk9660 -c9j -B 386/9bootiso -E 386/efiboot.fat \
cinap_lenrek@6304 95
 		-p <{cat $proto /n/src9/sys/lib/sysconfig/proto/9bootproto} \
cinap_lenrek@6304 96
 		-s /n/src9 -v 'Plan 9 Front ('^$objtype^')' $target
cinap_lenrek@5363 97
 	if(test -r /n/src9/386/9boothyb){
cinap_lenrek@5363 98
 		dd -if /dev/zero -bs 2048 -count 1024 >> $target
cinap_lenrek@5357 99
 		disk/partfs -m /n/partfs $target
cinap_lenrek@5357 100
 		disk=/n/partfs/sdXX
cinap_lenrek@5357 101
 		disk/mbr -m /n/src9/386/mbr $disk/data
cinap_lenrek@5357 102
 		@{echo a p1 '$-1' '$'
cinap_lenrek@5363 103
 			echo t p1 ESP
cinap_lenrek@5357 104
 			echo A p1
cinap_lenrek@5357 105
 			echo w
cinap_lenrek@5357 106
 			echo q} | disk/fdisk -b $disk/data
cinap_lenrek@5363 107
 		disk/format -b /n/src9/386/pbs -xd -t hard $disk/esp
cinap_lenrek@5363 108
 		s = esp.$pid
cinap_lenrek@5363 109
 		dossrv -f $disk/esp $s
cinap_lenrek@5363 110
 		mount -c /srv/$s /n/esp
cinap_lenrek@5363 111
 		cp /n/src9/386/9boothyb /n/esp/9bootfat
cinap_lenrek@5363 112
 		mkdir /n/esp/efi
cinap_lenrek@5363 113
 		mkdir /n/esp/efi/boot
cinap_lenrek@5363 114
 		cp /n/src9/386/boot*.efi /n/esp/efi/boot
cinap_lenrek@5363 115
 		unmount /n/esp
cinap_lenrek@5363 116
 		rm -f /srv/$s
cinap_lenrek@5357 117
 	}}
cinap_lenrek@4857 118
 
cinap_lenrek@4857 119
 %.disk:D:	$proto $fatfiles
cinap_lenrek@4857 120
 	@{rfork n
cinap_lenrek@4857 121
 	mk binds
cinap_lenrek@4857 122
 	rm -f $target
cinap_lenrek@4857 123
 	dd -if /dev/zero -of $target -bs 1048576 -oseek $mb -count 1
cinap_lenrek@4857 124
 	s=`{basename $target}
cinap_lenrek@4857 125
 	disk/partfs -m /n/$s $target
cinap_lenrek@4857 126
 	d=/n/$s/sdXX
cinap_lenrek@4857 127
 	disk/mbr $d/data
cinap_lenrek@7211 128
 	if(~ $target *.pi.img.* *.pi3.img.*){
cinap_lenrek@6842 129
 		{
cinap_lenrek@6842 130
 			echo 'a p1 . .+100M'
cinap_lenrek@6842 131
 			echo 't p1 FAT32'
cinap_lenrek@6842 132
 			echo 'a p2 . $'
cinap_lenrek@6842 133
 			echo 't p2 PLAN9'
cinap_lenrek@6842 134
 			echo 'A p1'
cinap_lenrek@6842 135
 			echo 'p'
cinap_lenrek@6842 136
 			echo 'w'
cinap_lenrek@6842 137
 			echo 'q'
cinap_lenrek@6842 138
 		} | disk/fdisk -b $d/data
cinap_lenrek@6842 139
 		disk/prep -bw -a^(nvram fs) $d/plan9
cinap_lenrek@6842 140
 		disk/format -d $d/dos $fatfiles
cinap_lenrek@6842 141
 	}
cinap_lenrek@6842 142
 	if not {
cinap_lenrek@6842 143
 		disk/fdisk -baw $d/data
cinap_lenrek@6842 144
 		disk/prep -bw -a^(9fat nvram fs) $d/plan9
cinap_lenrek@6842 145
 		disk/format -d -r 2 $d/9fat $fatfiles
cinap_lenrek@6842 146
 	}
cinap_lenrek@4857 147
 	hjfs -f $d/fs -n $s -S -r
cinap_lenrek@4857 148
 	{
cinap_lenrek@4857 149
 		echo echo on
cinap_lenrek@4857 150
 		echo create /dist sys sys 775 d
cinap_lenrek@4857 151
 		echo create /usr sys sys 775 d
cinap_lenrek@4857 152
 		user=glenda
cinap_lenrek@4857 153
 		echo newuser $user
cinap_lenrek@4857 154
 		echo newuser adm +$user
cinap_lenrek@4857 155
 		echo newuser sys +$user
cinap_lenrek@4857 156
 		echo newuser upas +$user
cinap_lenrek@4857 157
 		echo echo off
cinap_lenrek@4857 158
 		sleep 1
cinap_lenrek@4857 159
 	} >> /srv/$s.cmd
cinap_lenrek@4857 160
 	mount -N -c /srv/$s /n/newfs
cinap_lenrek@4857 161
 	disk/mkfs -z 4096 -U -s /n/src9 -d /n/newfs $proto
cinap_lenrek@4857 162
 	echo sync >> /srv/$s.cmd
cinap_lenrek@4857 163
 	echo halt >> /srv/$s.cmd
cinap_lenrek@4857 164
 	while(test -e /srv/$s.cmd) sleep 1
cinap_lenrek@4857 165
 	exit ''
cinap_lenrek@4857 166
 	}
cinap_lenrek@6304 167
 
cinap_lenrek@6304 168
 binds:V:
cinap_lenrek@6304 169
 	test -d /n/src9/.hg && bind /n/src9 /n/src9/dist/plan9front
cinap_lenrek@6304 170
 	bind cfg /n/src9/cfg
cinap_lenrek@6304 171
 	bind mail/lib /n/src9/mail/lib
cinap_lenrek@6304 172
 	bind ndb /n/src9/lib/ndb
cinap_lenrek@6304 173
 	bind -a adm/timezone /n/src9/adm/timezone
cinap_lenrek@7107 174
 	aux/stub -d /n/src9/usr
cinap_lenrek@6304 175
 	bind usr /n/src9/usr