2016-11-25 17:18:40 +01:00
|
|
|
#!/cmd/rc
|
|
|
|
# terminal startup
|
|
|
|
TIMESYNCARGS=(-rLa1000000)
|
2016-11-29 20:43:39 +01:00
|
|
|
NDBFILE=/cfg/ndb/local
|
2016-11-25 17:18:40 +01:00
|
|
|
|
|
|
|
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 '$' Σ κ)
|
|
|
|
/cmd/bind -a '#'^$i /dev >/dev/null >[2=1]
|
|
|
|
rm -f /env/i
|
|
|
|
|
|
|
|
# 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 /arch/rc/cmd/termrc.local)
|
|
|
|
. /arch/rc/cmd/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 = jehanne # 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 '')
|
|
|
|
ip/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 /cmd/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}
|
|
|
|
}
|
2016-11-29 20:43:39 +01:00
|
|
|
if(~ $#mouseport 0)
|
|
|
|
mouseport=ps2
|
|
|
|
|
2016-11-25 17:18:40 +01:00
|
|
|
if(~ $vgasize ask){
|
2016-11-29 20:43:39 +01:00
|
|
|
echo -n 'vgasize [1024x768x8]: '
|
2016-11-25 17:18:40 +01:00
|
|
|
vgasize=`{read}
|
|
|
|
}
|
2016-11-29 20:43:39 +01:00
|
|
|
if(~ $#vgasize 0)
|
|
|
|
vgasize=1024x768x8
|
|
|
|
|
2016-11-25 17:18:40 +01:00
|
|
|
if(~ $monitor ask){
|
2016-11-29 20:43:39 +01:00
|
|
|
echo -n 'monitor is [vesa]: '
|
2016-11-25 17:18:40 +01:00
|
|
|
monitor=`{read}
|
|
|
|
}
|
2016-11-29 20:43:39 +01:00
|
|
|
if(~ $#monitor 0)
|
|
|
|
monitor=vesa
|
|
|
|
|
2016-11-25 17:18:40 +01:00
|
|
|
if(test -f /dev/mousectl){
|
|
|
|
switch($mouseport){
|
|
|
|
case ps2 ps2intellimouse 0 1 2
|
|
|
|
hmi/mouse $mouseport
|
|
|
|
ms &
|
|
|
|
# parse vgasize into fields
|
|
|
|
vgasize=`{echo $vgasize}
|
2016-11-29 20:43:39 +01:00
|
|
|
if(! ~ $"monitor '' && ! ~ `{cat /dev/user} none) {
|
|
|
|
hmi/realemu
|
|
|
|
hmi/vga -m $monitor -l $vgasize
|
|
|
|
}
|
2016-11-25 17:18:40 +01:00
|
|
|
if(~ $accupoint 1)
|
|
|
|
pipefile -dr /cmd/aux/accupoint /dev/mouse
|
2016-11-29 20:43:39 +01:00
|
|
|
rio -i /lib/riostart
|
2016-11-25 17:18:40 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
# usb listener
|
|
|
|
/arch/rc/aux/usb/usbrc
|
|
|
|
|
|
|
|
if (test -f /dev/apm)
|
|
|
|
aux/apm
|
|
|
|
|
|
|
|
dontkill '^(ipconfig|factotum|mntgen|fossil|cs|dns|listen|reboot)$'
|