first cut at an amd64 install from disk, not from cd. Reference: /n/atom/patch/applied2013/amd64install Date: Sun Oct 27 03:43:49 CET 2013 Signed-off-by: quanstro@quanstro.net --- /sys/lib/dist/amd64/proto/minsys Thu Jan 1 00:00:00 1970 +++ /sys/lib/dist/amd64/proto/minsys Sun Oct 27 03:43:33 2013 @@ -0,0 +1,74 @@ +acme d775 sys sys + * - sys sys + acid d775 sys sys + bin d775 sys sys + * - sys sys + mail d775 sys sys + news d775 sys sys + wiki d775 sys sys +adm d775 sys sys + + +cfg d775 sys sys +cron d775 sys sys +dist d775 sys sys +env d555 sys sys +lib d775 sys sys + namespace 664 sys sys + ndb d775 sys sys + auth 664 sys sys + common 664 sys sys + genrootservers 664 sys sys + local 664 sys sys + root-servers 664 sys sys + font d775 sys sys + bit d775 sys sys + lucm d775 sys sys + + 664 sys sys + lucidasans d775 sys sys + + 664 sys sys +# pci 664 sys sys + vgadb 664 sys sys +lp d775 sys sys +mail d775 sys sys + box d775 sys sys + glenda d775 glenda upas + mbox d755 glenda glenda + + 773 glenda glenda + fs d775 sys sys + queue d775 upas upas + tmp d775 sys sys +mnt d775 sys sys + acme d555 sys sys + apeselect d555 sys sys + apm d555 sys sys + arch d555 sys sys + cd d555 sys sys + cons d555 sys sys + consoles d555 sys sys + doc d555 sys sys + exportfs d555 sys sys + keys d555 sys sys + lp d555 sys sys + netkeys d555 sys sys + news d555 sys sys + plumb d555 sys sys + rdb d555 sys sys + temp d555 sys sys + term d555 sys sys + vmware d555 sys sys + web d555 sys sys + webcookies d555 sys sys + wiki d555 sys sys + wrap d555 sys sys + wsys d555 sys sys +n d555 sys sys +sys d775 sys sys + lib d775 sys sys + plumb d775 sys sys + + - sys sys +tmp d755 sys sys +usr d775 sys sys + glenda d755 glenda glenda + + - glenda glenda +rc + + 775 sys sys --- /sys/lib/dist/amd64/proto/users Thu Jan 1 00:00:00 1970 +++ /sys/lib/dist/amd64/proto/users Sun Oct 27 03:43:33 2013 @@ -0,0 +1,2 @@ +adm d775 sys sys + users 664 sys sys --- /sys/lib/dist/amd64/proto/archempty Thu Jan 1 00:00:00 1970 +++ /sys/lib/dist/amd64/proto/archempty Sun Oct 27 03:43:33 2013 @@ -0,0 +1,25 @@ +$arch - sys sys + bin - sys sys + ape d775 sys sys + auth d775 sys sys + aux d775 sys sys + dial d775 sys sys + disk d775 sys sys + fossil d775 sys sys + fs d775 sys sys + games d775 sys sys + ip d775 sys sys + httpd d775 sys sys + ndb d775 sys sys + rune d775 sys sys + opc d775 sys sys + replica d775 sys sys + upas d775 sys sys + venti d775 sys sys + usb d775 sys sys + include - sys sys + + - sys sys + lib - sys sys + ape d775 sys sys + mkfile - sys sys + --- /sys/lib/dist/amd64/proto/fullsys Thu Jan 1 00:00:00 1970 +++ /sys/lib/dist/amd64/proto/fullsys Sun Oct 27 03:43:33 2013 @@ -0,0 +1,210 @@ +* - sys sys +# arches are included elsewhere +acme + + - sys sys +adm d755 sys sys + cache - adm adm + keys 660 adm adm + keys.who 660 adm adm + netkeys 660 adm adm + netkeys.who 660 adm adm + secstore d755 bootes sys + store d700 bootes sys + who d755 bootes sys + timezone - adm adm + + - adm adm + users - adm adm + whois - adm adm +cfg - sys sys + + - sys sys +cron - sys sys + bootes - bootes sys + + - bootes sys + upas - upas upas + + - upas upas + sys - sys sys + + - sys sys + lock l600 bootes sys +dist - sys sys + replica - sys sys + atom - sys sys + cd - sys sys + client - sys sys + kfs - sys sys + network - sys sys + plan9.db - sys sys + plan9.log - sys sys + plan9.proto - sys sys +env - sys sys +fd - sys sys +lib - sys sys + areacodes - sys sys + audio - sys sys + badcidr - sys sys + bunny.bit - sys sys + cmap - sys sys + + - sys sys + constitution - sys sys + dicewords - sys sys + dict - sys sys + README.pgw - sys sys + README.roget - sys sys + eign - sys sys + empty - sys sys + face - sys sys + + - sys sys + font - sys sys + bit - sys sys + Facemap - sys sys + MAP - sys sys + big5 - sys sys + + 664 sys sys + charisr - sys sys + + 664 sys sys +# code2000 - sys sys +# + 664 sys sys + courier - sys sys + + 664 sys sys +# cuni - sys sys +# + 664 sys sys + cyberbit - sys sys + + 664 sys sys + dejavusans - sys sys + + 664 sys sys + fixed - sys sys + + 664 sys sys + gb - sys sys + + 664 sys sys + htmlfont - sys sys + + 664 sys sys + icons - sys sys + + 664 sys sys + icons© - sys sys + jis - sys sys + + 664 sys sys + lucida - sys sys + + 664 sys sys + lucidasans - sys sys + + 664 sys sys + lucm - sys sys + + 664 sys sys + misc - sys sys + + 664 sys sys + naga10 - sys sys + + 664 sys sys + pala - sys sys + + 664 sys sys + palab - sys sys + + 664 sys sys + palai - sys sys + + 664 sys sys + palatino - sys sys + + 664 sys sys + pelm - sys sys + + 664 sys sys + shinonome - sys sys + + 664 sys sys + smiley - sys sys + + 664 sys sys + special - sys sys + + 664 sys sys + symbola - sys sys + + 664 sys sys + times - sys sys + + 664 sys sys + vera - sys sys + + 664 sys sys + verabd - sys sys + + 664 sys sys + verabi - sys sys + + 664 sys sys + verait - sys sys + + 664 sys sys + veram - sys sys + + 664 sys sys + verami - sys sys + + 664 sys sys + vera© - sys sys + gettysburg - sys sys + glass - sys sys +# gmapkey + hiragana - sys sys + kana - sys sys + katakana - sys sys + keyboard - sys sys + mammals - sys sys + map - sys sys + README - sys sys +# + - sys sys + namespace - sys sys + namespace.ftp - sys sys + namespace.httpd - sys sys + ndb - sys sys + + - sys sys + + news - sys sys + oui - sys sys + pci - sys sys + radar - sys sys + genlat - sys sys + stationlat - sys sys + stations - sys sys + rfc - sys sys + + - sys sys + sky + + - sys sys +# sshpub + tel - sys sys + tftpd - sys sys + unicode - sys sys + unicode.notice - sys sys + units - sys sys + usb - sys sys + vgadb - sys sys + video.specs - sys sys + volcanoes - sys sys + words - sys sys +lp + + +mail - upas upas + box - upas upas + glenda - glenda glenda + faxoutqueue - upas upas + faxqueue - upas upas + faxrecipients - upas upas + fs - upas upas + grey - upas upas + revdom - upas upas + tmp - upas upas + whitelist - upas upas + whsort - upas upas + lib - upas upas + + - upas upas + queue - upas upas + tmp - upas upas +mnt - sys sys + + - sys sys +n + + - sys sys +rc + + - sys sys +sys - sys sys + + - sys sys +tmp - sys sys +usr d775 sys sys + bootes - bootes bootes + lib - bootes bootes + profile - bootes bootes + history a600 bootes bootes + keyring 600 bootes bootes + tmp - bootes bootes + bin - bootes bootes + + - bootes bootes + glenda - glenda glenda + readme.acme - glenda glenda + readme.rio - glenda glenda + lib - glenda glenda + + - glenda glenda + tmp - glenda glenda + bin - glenda glenda + + - glenda glenda --- /sys/lib/dist/amd64/proto/archmin Thu Jan 1 00:00:00 1970 +++ /sys/lib/dist/amd64/proto/archmin Sun Oct 27 03:43:33 2013 @@ -0,0 +1,132 @@ +acme d775 sys sys + bin d775 sys sys + $arch d775 sys sys + Mail 775 sys sys + win 775 sys sys +$arch d775 sys sys + bin d775 sys sys + ape d775 sys sys + auth d775 sys sys + aux d775 sys sys + getflags 775 sys sys + mouse 775 sys sys + realemu 775 sys sys + usage 775 sys sys + vga 775 sys sys + + mklatinkbd 775 sys sys + ndb d775 sys sys + cs 775 sys sys + dns 775 sys sys + dnsquery 775 sys sys + ipquery 775 sys sys + query 775 sys sys + bitsy d775 sys sys + dial d775 sys sys + expect 775 sys sys + disk d775 sys sys + fdisk 775 sys sys + format 775 sys sys + kfs 775 sys sys + kfscmd 775 sys sys + ksync 775 sys sys + mbr 775 sys sys + mkfs 775 sys sys + prep 775 sys sys + fossil d775 sys sys + fs d775 sys sys + games d775 sys sys + ip d775 sys sys + httpd d775 sys sys + ipconfig 775 sys sys + dhcpd 775 sys sys + ipconfig 775 sys sys + ping 775 sys sys + ppp 775 sys sys + pppoe 775 sys sys + opc d775 sys sys + replica d775 sys sys + rune d775 sys sys + upas d775 sys sys + fs 775 sys sys + usb d775 sys sys + venti d775 sys sys + + 6a 775 sys sys + 6c 775 sys sys + 6l 775 sys sys + 9660srv 775 sys sys +# abaco 775 sys sys +# acid 775 sys sys + acme 775 sys sys + ar 775 sys sys + awd 775 sys sys + awk 775 sys sys + basename 775 sys sys + bc 775 sys sys + bind 775 sys sys + bunzip2 775 sys sys + cat 775 sys sys + cdfs 775 sys sys + chmod 775 sys sys + cleanname 775 sys sys + cp 775 sys sys + cpp 775 sys sys + cpu 775 sys sys + date 775 sys sys + dd 775 sys sys + dossrv 775 sys sys + du 775 sys sys + echo 775 sys sys + ed 775 sys sys + faces 775 sys sys + grep 775 sys sys + hget 775 sys sys + hoc 775 sys sys + ls 775 sys sys + mc 775 sys sys + mk 775 sys sys + mkdir 775 sys sys + mntgen 775 sys sys + mount 775 sys sys + mv 775 sys sys + p 775 sys sys + pcc 775 sys sys + pci 775 sys sys + plumb 775 sys sys + plumber 775 sys sys + ps 775 sys sys + pwd 775 sys sys + ramfs 775 sys sys + rc 775 sys sys + read 775 sys sys + rio 775 sys sys + rm 775 sys sys + sed 775 sys sys + seq 775 sys sys + sleep 775 sys sys + sort 775 sys sys + stats 775 sys sys + srv 775 sys sys + snoopy 775 sys sys + tail 775 sys sys + tar 775 sys sys + tee 775 sys sys + test 775 sys sys + time 775 sys sys + touch 775 sys sys + tr 775 sys sys + unmount 775 sys sys + yacc 775 sys sys + wc 775 sys sys + xd 775 sys sys + + lex 775 sys sys + size 775 sys sys + diff 775 sys sys + + include + + 664 sys sys + init 775 sys sys + lib d775 sys sys + mkfile 644 sys sys --- /sys/lib/dist/amd64/proto/iplproto Thu Jan 1 00:00:00 1970 +++ /sys/lib/dist/amd64/proto/iplproto Sun Oct 27 03:43:33 2013 @@ -0,0 +1,8 @@ +386 d775 sys sys + iplfat 775 sys sys + ipliso 775 sys sys + iplmbr 775 sys sys + iplpbs 775 sys sys + iplpxe 775 sys sys +amd64 + 9termd 775 sys sys --- /sys/lib/dist/amd64/9fat/plan9.ini Thu Jan 1 00:00:00 1970 +++ /sys/lib/dist/amd64/9fat/plan9.ini Sun Oct 27 03:43:33 2013 @@ -0,0 +1,18 @@ +[menu] +option0=amd64 +option1=386pae +default=amd64 + +[amd64] +bootfile=9termd + +[386pae] +bootfile=9pae + +[common] +bootargs=local!#S/sdu0/fs -B 10000 +console=0 b115200 +*nodumpstack=1 +monitor=vesa +vgasize=1024x768x16 +user=glenda Binary files /sys/lib/dist/amd64/9fat/iplfat and iplfat differ --- /sys/lib/dist/amd64/mkboot Thu Jan 1 00:00:00 1970 +++ /sys/lib/dist/amd64/mkboot Sun Oct 27 03:43:33 2013 @@ -0,0 +1,40 @@ +#!/bin/rc +rfork en +#archlist = (386 68000 68020 alpha amd64 arm mips power power64 sparc sparc64) +archlist = () +instlist = (386 amd64) + +fn fail { + if(! ~ $#* 0) + echo fail: $*>[1=2] + exit fail +} + +disk/mkcpuboot -t -k /amd64/9cpu -l /386/iplfat -p /386/iplpbs -m /386/iplmbr $* || fail +9fs atom || fail +bind /amd64 /n/atom/plan9/amd64 || fail +disk/kfs -b 8192 -r -f $1/fs || fail +echo kfs reamed done ... +mount -c /srv/kfs /n/kfs || fail +echo mount done ... +disk/kfscmd allow || fail +echo allow done ... +disk/mkfs -kU -s /n/atom/plan9 -d /n/kfs proto/users || fail +echo mkfs done ... +disk/kfscmd user || fail +echo kfscmd done ... +mount -c /srv/kfs /n/kfs || fail +echo mount -c done ... +for(i in $archlist){ + disk/mkfs -kU -s /n/atom/plan9 -d /n/kfs <{sed 's/\$arch/'$i'/g' < proto/archempty} || fail +} +for(i in $instlist){ + disk/mkfs -kU -s /n/atom/plan9 -d /n/kfs <{sed 's/\$arch/'$i'/g' < proto/archmin} || fail +} +for(i in iplproto minsys) + disk/mkfs -kU -s /n/atom/plan9 -d /n/kfs proto/$i || fail + +disk/kfscmd halt + +# wrong. fixme. prevent loop. +slay kfs | rc --- /sys/lib/dist/amd64/extraparts Thu Jan 1 00:00:00 1970 +++ /sys/lib/dist/amd64/extraparts Sun Oct 27 03:43:33 2013 @@ -0,0 +1,3 @@ +#!/bin/rc + +echo a fs 0x5070 0xcd070 --- /sys/lib/dist/amd64/files/users Thu Jan 1 00:00:00 1970 +++ /sys/lib/dist/amd64/files/users Sun Oct 27 03:43:33 2013 @@ -0,0 +1,11 @@ +-1:adm:adm: +0:none:adm: +1:tor:tor: +2:glenda:glenda: +3:installuser:installuser: +10000:sys:: +10001:map:map: +10002:doc:: +10003:upas:upas: +10004:font:: +10005:bootes:bootes: --- /sys/lib/dist/amd64/mkboot-install Thu Jan 1 00:00:00 1970 +++ /sys/lib/dist/amd64/mkboot-install Sun Oct 27 03:43:33 2013 @@ -0,0 +1,31 @@ +#!/bin/rc +rfork e +archlist = (386 68000 68020 alpha amd64 arm mips power power64 sparc sparc64) +# instlist = (386 amd64) +instlist = (386 amd64) + +fn fail { + if(! ~ $#* 0) + echo fail: $*>[1=2] + exit fail +} + +disk/mkcpuboot -t -k /amd64/9cpu -l /386/iplfat -p /386/iplpbs -m /386/iplmbr $* || fail +9fs atom || fail +bind /amd64 /n/atom/plan9/amd64 || fail +disk/kfs -b 8192 -r -f $1/fs || fail +mount -c /srv/kfs /n/kfs || fail +disk/kfscmd allow || fail +disk/mkfs -kU -s /n/atom/plan9 -d /n/kfs proto/users || fail +disk/kfscmd user || fail +mount -c /srv/kfs /n/kfs || fail +for(i in $archlist){ + disk/mkfs -kU -s /n/atom/plan9 -d /n/kfs <{sed 's/\$arch/'$i'/g' < proto/archempty} || fail +} +for(i in $instlist){ + disk/mkfs -kU -s /n/atom/plan9 -d /n/kfs <{sed 's/\$arch/'$i'/g' < proto/archmin} || fail +} +for(i in iplproto fullsys) + disk/mkfs -kU -s /n/atom/plan9 -d /n/kfs proto/$i || fail + +disk/kfscmd halt --- /sys/lib/dist/amd64/install/main Thu Jan 1 00:00:00 1970 +++ /sys/lib/dist/amd64/install/main Sun Oct 27 03:43:33 2013 @@ -0,0 +1,319 @@ +#!/bin/rc +rfork en + +fn init { + archlist = (386 68000 68020 alpha amd64 arm mips power power64 sparc sparc64) + nl=' +' + yns=(yes no skip) + have = () + + inivars = ( + # console? + console + + # auth? + + # ip + ipaddr + ipmask + gwaddr + + # boot file (9termd) + bootfile + + # boot method (local!#S/sdu0/fs -B 10000) + bootargs + + # vga + monitor + vgasize + user + ) + + console='0 b115200' + ipaddr=() + ipmask=() + gwaddr=() + bootfile=9termd + bootargs=() + monitor=vesa + vgasize=1024x768x16 + user=() + + log install inited +} + +fn fail { + if(! ~ $#* 0) + echo fail: $* + exit fail +} + +fn log { + echo $* >> /tmp/log +} + +fn logcmd { + log $* + $* +} + +fn have { + ~ $1 $have +} + +fn getcmd0 { + cmd=() + echo -n $1 + cmd=`{read} + if(~ $status *eof) + exit eof + if(! ~ $#cmd 0){ + switch($"cmd){ + case rc + rc + case rc* + rc -c $*(2-) + case 'exit' + exit exit + } + } +} + +fn getcmd { + cmd=() + while(~ $# cmd 0) + getcmd0 +} + +fn pick {p=$1 lst = $$2 default = $3 l='' match=0 x=''{ + if(! ~ $#lst 0){ + l=' (' + while(! ~ $#lst 1){ + l=$l^$lst(1) ^', ' + lst = $lst(2-) + } + l=$l ^ $lst ^ ')' + } + + if(~ $#default 0) + default = 'no default' + x = $p ^ $l ^ '[' ^ $default ^ ']: ' + + # verify this is a valid option + while(~ $match 0){ + getcmd0 $x + if(~ $#cmd 0) + cmd = $default + for(i in $$2){ + if(~ $i $cmd){ + match = 1; + break; + } + } + } +}} + +# +# fns +# +fn pickdisk{ + media = () + for(i in `{echo /dev/sd*/data | sed 's!(/dev/sd..)/data!\1!g'}) + if(! ~ $i sdXX && test -s $i/data) + media = ($media $i) + pick 'install disk' media; disk=$cmd +} + +fn pickfstype { + fses = (kfs) + fspartskfs = fs + fspartsfossil = fs + fspartsfossil+venti = (venti isect arenas fossil) + pick 'filesys to install' fses $fses(1); fstype=$cmd + eval 'fsparts=$' ^ fsparts$fstype + + switch(fstype){ + case kfs + d=`{echo $disk | sed 's!/dev/sd!!g'} + bootargs='local!#S/' ^ $d ^ '/fs -B 10000' + } +} + +fn makepartitions { + usbsd >/dev/null>[2=1] + diskparts + while(){ + partition $disk 9fat nvram $fsparts + x = $status + if(~ $x ''){ + have = ($have partition) + break + } + if(~ $x *exit) + exit exit + echo + echo partitioning failed + echo + } +} + +fn pickvga {opts=() seq=() res=() resln=() depths=() { + echo vga configuration + pick 'configure vga resolution?' yns no + + if(~ $cmd yes){ + opts=`$nl {vga} + for(i in $opts) + echo $i + nopts=`{seq 1 $#opts} + pick 'vga resolution' nopts $#opts + resln=$opts($cmd) + resln = `{echo $resln} + res = $resln(2) + depths = $resln(3-) + pick 'image depth' depths $depths($#depths) + vgasize=$res$cmd + } +}} + +fn pickuser { + echo + echo -n pick a username for yourself ': ' + getcmd + user = $cmd +} + +dhcpskip = (ipaddr ipmask gwaddr) +fn buildini { + { + for(i in $inivars){ + if(~ $ethermethod current dhcp none && ~ $i $dhcpskip) + echo '#' $i ^ '=' ^ $"$i ' #' ethermethod $ethermethod + if not if(~ $#$i 0) + echo '#' $i + if not + echo $i ^ '=' ^ $"$i + } + } > /tmp/plan9.ini + for(i in `$nl {cat /tmp/plan9.ini}) + log $i +} + +# +# bug, may want to boot from ether1? +# +fn isconf { + ~ $1 $have +} + +fn _pickether{ + if(test -d /net/ether0) + have = ($have ether) + if not { + echo no ethernet recogized, skipping ethernet configuration >[1=2] + log no ethernet recognized + } + isconf ether +} + +fn ipisconf { + ~ ipconfig $have +} + +fn _getipconf { + ipaddr=() + ipmask=() + gwaddr=() + if(test -e /net/ipifc/0/status && test -e /net/iproute){ + x=`{sed -n 2p>[2]/srv/log + case manual + getcmd 'ip address'; ipaddr=$cmd + getcmd 'network mask'; ipmask=$cmd + getcmd 'gateway address'; gwaddr=$cmd + ip/ipconfig -g $gwaddr ether /net/ether0 $ipaddr $ipmask >>[2]/srv/log + case none + } + + _getipconf + + if(! ~ $#ipaddr 0 && ! test -f /net/dns){ + log starting dns + ndb/dns + } + if not + log dns already started + + have = ($have ipconfig) +} + +fn ipconfig{ + if(! have ether) + _pickether + if(have ether) + if(! have ipconfig) + if(! isconf ipconfig) + _pickip +} + +# scribble area +if(! test -f /srv/ram){ + ramfs -S ram + mount -c /srv/ram /tmp || fail + mkdir -p /tmp/conf + touch /tmp/log + chmod +a /tmp/log + log install log: + log ------------ + window -scroll logwin +} +if not + mount -c /srv/ram /tmp || fail + +fn sigint { + echo +} + +fn pickarches { + # skip this step for now +} + +init +echo plan 9 install +echo + +pickvga +ipconfig +pickuser +buildini + +pickdisk +pickfstype +makepartitions + +copydist +pickarches +pick 'build full set of amd64 executables?' yns yes +~ $cmd yes && domkall + +pick 'halt system?' yns +~ $cmd yes && fshalt -h --- /sys/lib/dist/amd64/install/startover Thu Jan 1 00:00:00 1970 +++ /sys/lib/dist/amd64/install/startover Sun Oct 27 03:43:33 2013 @@ -0,0 +1,2 @@ +#!/bin/rc +rm /srv/ram --- /sys/lib/dist/amd64/install/logwin Thu Jan 1 00:00:00 1970 +++ /sys/lib/dist/amd64/install/logwin Sun Oct 27 03:43:33 2013 @@ -0,0 +1,3 @@ +#!/bin/rc +mount -c /srv/ram /tmp && tail -f /tmp/log +sleep 500 --- /sys/lib/dist/amd64/install/partition Thu Jan 1 00:00:00 1970 +++ /sys/lib/dist/amd64/install/partition Sun Oct 27 03:43:33 2013 @@ -0,0 +1,43 @@ +#!/bin/rc + +loader=/386/iplfat +pbs=/386/iplpbs +mbr=/386/iplmbr +kernel=/amd64/9termd + +fn fail{ + if(! ~ $#* 0) + echo partition: $* + exit fail +} + +d=$1; shift + +pick 'install mbr?' yns yes +if(~ $cmd yes) + disk/mbr -m $mbr $d/data || fail + +size=`{du $d/plan9>[2]/dev/null | sed 's/[ ].*//g'} +minsz = 120 # really need 500 +if(test $size -lt $minsz){ + if(test -e $d/plan9) + echo plan 9 partition too small. need $minsz^MB. + + echo 'using fdisk to create plan 9 partition. type ''?'' for help,' + echo 'type ''wq'' enter for defaults' + + disk/fdisk -ab $d/data || fail +} + +echo 'preping plan 9 partition. type ''?'' for help,' +echo 'type ''wq'' enter for defaults' +echo disk/prep -b -a^$* $d/plan9 || fail + +disk/prep -b -a^$* $d/plan9 || fail + +disk/format -b $pbs -d -r 2 $d/9fat \ + $loader /tmp/plan9.ini $kernel || fail +#if(~ $#flagt 0) +# nvram=$d/nvram auth/wrkey + +~ 1 1 --- /sys/lib/dist/amd64/install/vga Thu Jan 1 00:00:00 1970 +++ /sys/lib/dist/amd64/install/vga Sun Oct 27 03:43:33 2013 @@ -0,0 +1,43 @@ +#!/bin/rc +rfork en + +aux/realemu +aux/vga -p >[2=] | awk ' +/^vesa mode/ {mode[$3] = $4; desc[$3] = $5} +/^edid [0-9]+x/ {s = $2; sub(/x0@.*/, "", s); edid[nedid++] = s} +END { + if(nedid == 0){ + last = "" + for(m in mode){ + s=mode[m] + if(s != last) + edid[nedid++] = s + } + } + + n = 1 + for(i = 0; i < nedid; i++){ + head = 0 + last = "" + for(m in mode){ + if(head == 0){ + head = 1; + printf n++ ". " edid[i] "\t" + } + x = mode[m] + sub(/x[0-9]+$/, "", x) + y = mode[m] + sub(/^[0-9]+x[0-9]+/, "", y) + + if(x == edid[i] && mode[m] != last){ + last = mode[m] + # printf mode[m] " " + printf y " " + } + } + if(head) + print "" + } +} +' + --- /sys/lib/dist/amd64/install/domkall Thu Jan 1 00:00:00 1970 +++ /sys/lib/dist/amd64/install/domkall Sun Oct 27 03:43:33 2013 @@ -0,0 +1,14 @@ +#!/bin/rc +rfork en +archlist=amd64 + +bind /$objtype/bin /n/bin +bind -a /rc/bin /n/bin +path = (. /n/bin) + +bind -c /n/inst/sys /sys +for(i in $archlist) + bind /n/inst/$i /$i + +cd /sys/src +mk install && mk clean --- /sys/lib/dist/amd64/install/copydist Thu Jan 1 00:00:00 1970 +++ /sys/lib/dist/amd64/install/copydist Sun Oct 27 03:43:33 2013 @@ -0,0 +1,31 @@ +#!/bin/rc + +fn kfs { + disk/kfs -n inst $* +} +fn kfscmd { + disk/kfscmd -n inst $* +} + +fn copydist { + kfs -b 8192 -r -f $disk/fs || fail + mount -c /srv/kfs.inst /n/inst || fail + mount -c /srv/boot /n/atom || fail + kfscmd allow || fail + sed s:installuser:$user:g/tmp/users || fail + bind /tmp/users /n/atom/adm/users || fail + disk/mkfs -kU -s /n/atom -d /n/inst <{ + echo 'adm d775 sys sys' + echo ' users 664 sys sys' + } + kfscmd user || fail + mount -c /srv/kfs.inst /n/inst || fail + + disk/mkfs -kU -s /n/atom -d /n/inst <{echo +} || fail + + kfscmd sync +# kfscmd halt +} + +copydist + --- /sys/lib/dist/amd64/mkimg Thu Jan 1 00:00:00 1970 +++ /sys/lib/dist/amd64/mkimg Sun Oct 27 03:43:33 2013 @@ -0,0 +1,31 @@ +#!/bin/rc + +rfork en + +fn fail { + if(! ~ $#* 0) + echo fail: $*>[1=2] + exit fail +} + +flagfmt='m mkcmd,s size,o outfile' +if(! ifs=() eval `{aux/getflags $*} || ! ~ $#* 0){ + aux/usage + exit usage +} + +imgroot=/n/mkimg +~ $# flagm 0 && flagm = mkboot +~ $# flago 0 && {~ $flagm mkboot && flago = usbtest.bz2 || flago = usbboot.bz2} +~ $# flags 0 && flags = 500 + +ramfs -m $imgroot || fail +dd -if /dev/zero -of $imgroot/data -bs 1m -oseek `{echo $flags - 1 | hoc} -count 1 || fail +disk/partfs $imgroot/data || fail +$flagm /dev/sdXX || fail +echo $flagm done +bzip2 -9 < $imgroot/data > $flago || fail +echo bzip2 done + +echo unmount done pid $pid +echo kill>/proc/$pid/ctl