diff options
author | Taru Karttunen <taruti@taruti.net> | 2011-03-30 17:14:36 +0300 |
---|---|---|
committer | Taru Karttunen <taruti@taruti.net> | 2011-03-30 17:14:36 +0300 |
commit | 2959e1ede0ebc6fdffd7b8660f43c2ce14c9696f (patch) | |
tree | f6343b1ce11a8c87251dd27cf3d3e26b50693fa7 /rc/bin/termrc | |
parent | e463eb40363ff4c68b1d903f4e0cdd0ac1c5977f (diff) |
Import sources from 2011-03-30 iso image - rc
Diffstat (limited to 'rc/bin/termrc')
-rwxr-xr-x | rc/bin/termrc | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/rc/bin/termrc b/rc/bin/termrc new file mode 100755 index 000000000..5de208a55 --- /dev/null +++ b/rc/bin/termrc @@ -0,0 +1,106 @@ +#!/bin/rc +# terminal startup +TIMESYNCARGS=(-rLa1000000) +NDBFILE=/lib/ndb/local + +mntgen -s slashn && chmod 666 /srv/slashn + +# bind all likely devices (#S was bound in boot) +for(i in f t m v L P u U '$' Σ κ) + /bin/bind -a '#'^$i /dev >/dev/null >[2=1] + +# set up any partitions +diskparts + +# start up local swapping +disk=`{ls /dev/sd*/swap >[2]/dev/null} +if (! ~ $#disk 0) + swap $disk(1) >/dev/null >[2=1] +rm /env/disk + +# we do this before we have a name. we may need to do network +# setup so that we can get a name. +if(test -e /rc/bin/termrc.local) + . /rc/bin/termrc.local + +# cs sets sysname (termrc.local may already have started it so check) +if(! test -e /srv/cs && ! test -e /net/cs) + ndb/cs -f $NDBFILE +sysname=`{cat /dev/sysname} +if (~ $#sysname 0 || ~ $sysname '') { + sysname = gnot # default + echo -n $sysname >/dev/sysname +} + +# machine specific startup (e.g., for devices not probed) +if(test -e /cfg/$sysname/termrc) + . /cfg/$sysname/termrc + +# start IP on the LAN, if not already configured. diskless terminals +# are already configured by now. It's commented out to avoid a long timeout +# on startup waiting for DHCP. +# +# If your site provides DHCP service, +# +#if(! test -e /net/ipifc/0/ctl) +# ip/ipconfig +# +# Otherwise, see /cfg/$sysname/termrc (/cfg/example/termrc is an example). + +# start dns if we have an internet +if(test -e /net/ipifc/0/ctl && ! test -e /srv/dns) + ndb/dns -r + +if(! ~ $terminal *vx32*){ + # start timesync if it isn't running and we weren't told not to + if(! ps|grep -s timesync) + if(! ~ $TIMESYNCARGS '') + aux/timesync $TIMESYNCARGS + + # add the loop-back medium + if(! grep -s 127.0.0.1 /net/ipselftab) + ip/ipconfig loopback /dev/null 127.1 + + # set things up for vmware + if(! ~ `{cat /dev/user} none) + if(test -e /bin/aux/vmware) + aux/vmware +} + +# query user if terminal isn't adequately configured yet +if(~ $mouseport ask){ + echo -n 'mouseport is (ps2, ps2intellimouse, 0, 1, 2)[ps2]: ' + mouseport=`{read} + if(~ $#mouseport 0) + mouseport=ps2 +} +if(~ $vgasize ask){ + echo -n 'vgasize [640x480x8]: ' + vgasize=`{read} + if(~ $#vgasize 0) + vgasize=640x480x8 +} +if(~ $monitor ask){ + echo -n 'monitor is [xga]: ' + monitor=`{read} + if(~ $#monitor 0) + monitor=xga +} +if(test -f /dev/mousectl){ + switch($mouseport){ + case ps2 ps2intellimouse 0 1 2 + aux/mouse $mouseport + # parse vgasize into fields + vgasize=`{echo $vgasize} + if(! ~ $"monitor '' && ! ~ `{cat /dev/user} none) + aux/vga -l $vgasize + if(~ $accupoint 1) + pipefile -dr /bin/aux/accupoint /dev/mouse + } +} + +usbstart +if (test -f /dev/apm) + aux/apm + +dontkill '^(ipconfig|factotum|mntgen|fossil|cs|dns|listen|reboot)$' |