shithub: fork

Download patch

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)$'