ref: f17884aa38dec2fc5d91b81abe94791636b5a27a
parent: 937634c293c7101505746f537bd165b6a57bebdd
author: qwx <qwx@sciops.net>
date: Sat Dec 28 23:01:35 EST 2024
add termrc: move termrc.local in /cfg directory to avoid syncing in error
--- /dev/null
+++ b/rc/bin/termrc
@@ -1,0 +1,101 @@
+#!/bin/rc
+# this file is run if service=terminal
+TIMESYNCARGS=(-rLa1000000)
+
+# parallelism for mk
+NPROC=`{wc -l </dev/sysstat}
+
+# bind all likely devices
+for(i in P S f æ t L A J '$')
+ bind -qa '#'^$i /dev
+rm -f /env/i
+
+mount -qb /srv/cons /dev
+
+# mount points (if not done by bootrc already)
+>[2]/dev/null {
+mntgen -s slashn /n && chmod 666 /srv/slashn
+mntgen -s slashmnt /mnt && chmod 666 /srv/slashmnt
+mntgen -s mntexport /mnt/exportfs && chmod 666 /srv/mntexport}
+
+# now that /mnt exists, mount factotum
+mount /srv/factotum /mnt/factotum factotum
+bind -q /mnt/factotum/factotum /mnt/factotum
+
+# usb listener
+nusbrc
+
+# 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
+if(test -e /cfg/termrc.local)
+ . /cfg/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
+sysname=`{cat /dev/sysname}
+if(~ $#sysname 0 || ~ $sysname ''){
+ sysname=cirno # default
+ echo -n $sysname >/dev/sysname
+}
+
+# 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 -f /env/disk
+
+# machine specific startup (e.g., for devices not probed)
+if(test -e /cfg/$sysname/termrc)
+ . /cfg/$sysname/termrc
+
+# automatic ip address setup
+if(test -r /net/ipselftab){
+ if(! grep u /net/ipselftab | grep -sv '^(127.0.0.1|::1)'){
+ addrs=`{ndb/query -a sys $sysname ether}
+ if(! ~ $#addrs 0){
+ for(ether in /net/ether*){
+ addr=`{cat $ether/addr >[2]/dev/null}
+ switch($addr){
+ case $addrs
+ # try /lib/ndb first, then do dhcp/slaac
+ ip/ipconfig -6 ether $ether
+ ip/ipconfig -N ether $ether >[2]/dev/null || @{
+ test -e /env/nora6 || ip/ipconfig ether $ether ra6 recvra 1 &
+ ip/ipconfig -h $sysname ether $ether &
+ wait
+ }
+ }
+ }
+ }
+ rm -f /env/ether /env/addrs /env/addr
+ }
+}
+
+if(! test -e /net/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
+}
+
+# setup mouse and graphics
+screenrc
+
+if(test -f /dev/apm)
+ aux/apm
+
+if(~ $terminal *reform*){
+ reform/pm
+ reform/audio
+}
+
+dontkill '^(9660srv|cfs|cs|cwfs.*|disk|dns|dossrv|ether|factotum|gefs|hjfs|ipconfig|kb|kfs|mntgen|paqfs|reboot|usbd|venti|wpa)$'