--- /rc/bin/mkusbboot Mon Dec 12 22:59:50 2011 +++ /rc/bin/mkusbboot Tue Jul 30 07:22:17 2013 @@ -12,7 +12,8 @@ # size of image in $quantum-byte units. 1900 is enough for production system # (fs, /n/boot, ~1.2GB); 900 is ample for our install image # (sources, /n/sources/plan9, ~370MB). -size=1900 +defsize=1900 +size=() fn usage { echo usage: $argv0 '[-b boot] [-p proto] [-r root] [-s 10⁶-bytes]' >[1=2] @@ -46,7 +47,9 @@ if (~ $srcroot /n/*) srcfs=`{ echo $srcroot | sed 's;^/n/([^/]+).*;\1;' } if (~ $srcfs sources) - size=900 + defsize=900 +if (~ $#size 0) + size=$defsize # make empty disk image file of maximum size echo -n 'image: ' >[1=2] @@ -67,7 +70,10 @@ echo -n 9fat... >[1=2] switch ($objtype) { case 386 - k=/$objtype/9pccpuf.gz + # we don't normally keep gzipped kernels around, + # but usb can be flakey and slow, so we'll make one. + k=/tmp/9pccpuf.gz + gzip -9 $k case amd64 k=/$objtype/9k8cpu case * @@ -78,6 +84,8 @@ disk/format -b /386/pbslba -d -r 2 9fat /tmp/9load $k \ $syscfg/usb/plan9.ini >[2=1] | grep -v '^(add .* at clust |Init|type |Adding file|used )' +if (~ $objtype 386) + rm -f $k rm -f /tmp/9load cp /dev/zero nvram >[2]/dev/null cp /dev/zero fscfg >[2]/dev/null --- /sys/lib/dist/cmd/bflz.c Thu Sep 26 22:49:35 2002 +++ /sys/lib/dist/cmd/bflz.c Tue Jul 30 01:33:15 2013 @@ -230,11 +230,14 @@ int countrle(uchar *a) { - int i; + uchar a0; + uchar *p; - for(i=0; a[i]==a[0]; i++) + p = a; + a0 = *p; + while(*++p == a0) ; - return i; + return p - a; } void --- /sys/lib/dist/cmd/mkfile Fri Apr 12 21:50:17 2002 +++ /sys/lib/dist/cmd/mkfile Tue Jul 30 01:33:53 2013 @@ -15,10 +15,12 @@ BIN=/sys/lib/dist/bin/$objtype >$target.new chmod +t $target.new # waste write buf, not venti store cp $prereq $target.new @@ -82,7 +88,7 @@ disk/dump9660 -9cj -v 'Plan 9 4e Dumps' -s $src9 \ -p /sys/lib/sysconfig/proto/allproto $scr/distdump.iso -cd.install:V: +cd.install:DV: bzip2 -9 <$scr/plan9.iso >web.protect/nplan9.iso.bz2 D.install:V: @@ -138,11 +144,6 @@ sha1 `{sha1sum <$stem.iso.bz2} \ $stem.iso.bz2 >>/usr/web/plan9checksums.txt } - -$scr/contrib.iso:DV: - rm -f $target - disk/mk9660 -9cj -v 'Plan 9 Extras' -s /n/sources \ - -p ./contrib.proto $target rebuild:V: chmod +l build.lock >>build.lock --- /sys/lib/dist/pc/mkfile Fri May 18 20:28:53 2012 +++ /sys/lib/dist/pc/mkfile Tue Jul 30 07:20:55 2013 @@ -1,17 +1,18 @@ +# /sys/lib/dist/pc/mkfile out=outside # outside web server s=/sys/lib/dist/pc x=`{bind -b /sys/lib/dist/bin/$cputype /bin} -default:V: ndisk - ls -l ndisk +default:V: cddisk SUB=`{ls sub inst} -boot.raw:Q: proto $SUB +boot.raw:DQ: proto $SUB + rfork n rm -rf boot mkdir boot bind /dev/null /sys/log/timesync # make files writable for now. - cat proto | sed 's!d000!d775!;s!000!664!;s!555!775!;s!444!664!' >proto.cp + sed 's!d000!d775!;s!000!664!;s!555!775!;s!444!664!' proto >proto.cp disk/mkfs -a proto.cp | disk/mkext -d boot @{ cd boot/386 @@ -19,18 +20,17 @@ cd bin strip * */* >[2]/dev/null || status='' } - cat proto | sed 's!/.*!!' >proto.cp + sed 's!/.*!!' proto >proto.cp disk/mkfs -a -s boot proto.cp | tee >{wc -c >[1=2]} | - touchfs 1000000000 >boot.raw + touchfs 1000000000 >$target -boot.bz2:Q: boot.raw +boot.bz2:DQ: boot.raw ls -l boot.raw - bflz -n 32 < boot.raw >boot.bflz - ls -l boot.bflz - bzip2 -9 < boot.bflz >$target - ls -l $target + bflz -n 32 boot.bflz + bzip2 -9 $target + ls -l boot.bflz $target -root.bz2:Q: boot.bz2 +root.bz2:DQ: boot.bz2 { echo bzfilesystem cat boot.bz2 @@ -59,40 +59,49 @@ cp $prereq $target cp /386/9loaddebug 9loaddebug -ndisk: 9load /sys/src/9/pc/9pcflop.gz plan9.ini /lib/vgadb - dd -if /dev/zero -of ndisk -bs 1024 -count 1440 >[2]/dev/null - disk/format -f -b /386/pbs -d ndisk \ - 9load /sys/src/9/pc/9pcflop.gz plan9.ini /lib/vgadb - ls -l ndisk +# 9load no longer loads from floppies, and even if it did, this +# no longer works, since 9load+9pcflop.gz won't fit on a floppy: +# disk/format: data does not fit on disk (2849 2849) +#ndisk: 9load /sys/src/9/pc/9pcflop.gz plan9.ini /lib/vgadb +# dd -if /dev/zero -of ndisk -bs 1024 -count 1440 >[2]/dev/null +# disk/format -f -b /386/pbs -d ndisk \ +# 9load /sys/src/9/pc/9pcflop.gz plan9.ini /lib/vgadb +# ls -l ndisk # cannot list both 9pcflop.gz and 9pccd.gz because they cannot be built # in parallel. stupid mk -cddisk:DV: 9load /sys/src/9/pc/9pcflop.gz plan9.ini.cd /lib/vgadb +cddisk:D: 9load /sys/src/9/pc/9pcflop.gz plan9.ini.cd /lib/vgadb mk -a /sys/src/9/pc/9pccd.gz mk -a /sys/src/9/pc/9pcflop.gz rfork n cp -x plan9.ini.cd subst/plan9.ini - dd -if /dev/zero -of cddisk -bs 1024 -count 2880 >[2]/dev/null - disk/format -t 3½QD -f -b /386/pbs -d cddisk \ - /sys/src/9/pc/^(9pcflop.gz 9pccd.gz) \ - subst/plan9.ini /lib/vgadb - ls -l cddisk + dd -if /dev/zero -of $target -bs 1024 -count 2880 >[2]/dev/null + disk/format -t 3½QD -f -b /386/pbs -d $target \ + /sys/src/9/pc/^(9pcflop 9pccd)^.gz subst/plan9.ini /lib/vgadb + ls -l $target + +usbdisk:D: /n/sources/plan9 + cd $scr + mkusbboot -s 1900 -r /n/sources/plan9 && mv image $target + gzip -9 $target + pwd + ls -l $target* clean:V: if (! unmount 9load >[2]/dev/null) ; rm -rf boot boot.bz2 boot.bflz boot.raw root.bz2 9pcflop ndisk 9load cddisk proto.cp 9loaddebug -install:V: ndisk 9loaddebug +install:V: 9loaddebug # ndisk 9fs $out dst=/n/$out/sys/lib/dist/web.protect cp 9loaddebug $dst - gzip -9 < ndisk > $dst/plan9.flp.gz + # gzip -9 $dst/plan9.flp.gz # mk clean -test:V: ndisk 9loaddebug +test:V: 9loaddebug # ndisk cp 9loaddebug ../web.protect2/n9loaddebug - cp ndisk ../web.protect2/ndisk + # cp ndisk ../web.protect2/ndisk cd0:D: cddisk rm -f cd0 --- /sys/lib/dist/pc/subst/plan9.ini Wed Apr 13 23:19:25 2011 +++ /sys/lib/dist/pc/subst/plan9.ini Tue Jul 30 01:38:35 2013 @@ -3,7 +3,6 @@ [menu] menuitem=install, Install Plan 9 from this CD menuitem=cdboot, Boot Plan 9 from this CD -# menuitem=debug, Boot Plan 9 from this CD and debug 9load [common] # very cautious settings to get started. @@ -34,8 +33,3 @@ [cdboot] bootargs=local!#S/sdD0/data bootfile=sdD0!cdboot!9pccd.gz - -# [debug] -# bootargs=local!#S/sdD0/data -# bootfile=sdD0!cdboot!9pccd.gz -# *debugload=1 --- /sys/man/8/9boot Thu Mar 21 19:46:22 2013 +++ /sys/man/8/9boot Tue Jul 30 01:21:33 2013 @@ -440,7 +440,8 @@ a .IB bootfile in response to the -.L "Boot from:" +.L Boot +.L from: prompt. .br .ne 4 --- /sys/man/8/mkusbboot Mon Dec 12 23:00:17 2011 +++ /sys/man/8/mkusbboot Tue Jul 30 07:22:22 2013 @@ -96,8 +96,11 @@ architecture of the default kernel in the disk image .TP .B /tmp/9load +files created while executing .PD 0 .TP +.B /tmp/9pccpuf.gz +.TP .B /srv/fossil .TP .B /srv/fossil.open @@ -105,7 +108,6 @@ .B /srv/fscons .TP .B /srv/fscons.open -files created while executing .SH SOURCE .B /rc/bin/mkusbboot .SH SEE ALSO @@ -123,7 +125,11 @@ should be run only on machines with no running .I fossil instance named -.LR fossil . +.LR fossil +and thus no +.BR /srv/fossil , +.BR /srv/fossil.open , +etc. .PP Not all BIOSes can reliably read from USB devices. Your mileage may vary.