mostly fixes and host updates
authorIan Kelling <iank@fsf.org>
Mon, 11 Dec 2023 12:20:00 +0000 (07:20 -0500)
committerIan Kelling <iank@fsf.org>
Mon, 11 Dec 2023 12:20:00 +0000 (07:20 -0500)
fai/config/distro-install-common/end
fai/config/files/usr/bin/myncq/kd
fai/config/scripts/IANK/11-iank
wrt-setup-local

index 5d61d6dee0bcaae63e7efb22d1218453582cacb5..8ad84c9d0fffc626553f392828a0a1c773adba56 100755 (executable)
@@ -94,7 +94,7 @@ Defaults:root,iank !log_allowed, !pam_session
 Defaults>root env_file=/etc/rootsudoenv
 
 # a few commands we should be able to run with no password
-iank ALL = (root) NOPASSWD: /usr/local/bin/spend,/usr/local/bin/us,/usr/local/bin/off,/usr/bin/nmtui-connect,/usr/local/bin/bitcoinoff
+iank ALL = (root) NOPASSWD: /usr/local/bin/spend,/usr/local/bin/us,/usr/local/bin/off,/usr/bin/nmtui-connect,/usr/local/bin/bitcoinoff,/usr/local/bin/bitcoinon
 
 EOF
 
index 2d65edb31ea696154b24b2de52350ff980999500..255d6d17f7a875c9bf0eafa1a8112ac21a682767 100755 (executable)
@@ -7,18 +7,42 @@ trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" exit status: $?, PIPESTATUS: ${P
 
 [[ $EUID == 0 ]] || exec sudo -E "${BASH_SOURCE[0]}" "$@"
 
+
+# todo: we should make this be a service which sets the /sys/ value
+# before the mount target or something like that, because if you hot
+# plug a drive in, its ata number will change on reboot, meaning you
+# have to remember to run this again and then reboot again.
+
+# example from t8 kernel
+# Sep 01 14:35:01 watson kernel: ata7.00: status: { DRDY }
+# Sep 01 14:35:01 watson kernel: ata7.00: failed command: WRITE FPDMA QUEUED
+# Sep 01 14:35:01 watson kernel: ata7.00: cmd 61/08:c0:b8:bf:ff/00:00:01:00:00/40 tag 24 ncq 4096 out
+
+
 # https://wiki.archlinux.org/index.php/Solid_state_drive#Resolving_NCQ_errors
 # evo-870 doesnt get along well with d16.
 # Dmesg gives us an ata number we could disable specifically on the command line, but I've had that number change on me between oses, so reenabling ncq
 
+debug=false
+if [[ $1 == debug ]]; then
+  debug=true
+fi
+
 upgrub=true
 if [[ $1 == no-upgrub ]]; then
   upgrub=false
 fi
 
-byid=/dev/disk/by-id/ata-Samsung_SSD_870_QVO_8TB_S5VUNG0N900656V
+regex='^.*-part[0-9]*$'
+for path in /dev/disk/by-id/ata-Samsung_SSD_870*; do
+  if [[ ! $path =~ $regex ]]; then
+    byid=$path
+    break
+  fi
+done
+
 if [[ ! -e $byid ]]; then
-  # not plugged in we assume
+  if $debug; then echo "samsung 870 not plugged in or not found"; fi
   exit 0
 fi
 
@@ -34,6 +58,10 @@ if [[ $depth != 0 ]]; then
   if grep -qF libata.force=noncq /proc/cmdline; then
     echo $0: warning, cant change queue_depth due to globally disabled ncq
   else
+    if $debug; then
+      echo "updating to 1 if not: cat /sys/block/$dev/device/queue_depth"
+      cat /sys/block/$dev/device/queue_depth
+    fi
     echo 1 >/sys/block/$dev/device/queue_depth
   fi
 fi
index 43fc13bcf5ff83db61307ac733f38278f6019573..0b8d6c5576caba9763234f1de2bbca79f9a0e41a 100755 (executable)
@@ -19,7 +19,10 @@ if [[ -e /a/bin/fai/fai-wrapper ]]; then
   }
 fi
 
-
+if [[ $FAI_ROOT != / ]]; then
+  bprogs_pre=/srv
+  chroot="chroot $FAI_ROOT"
+fi
 
 # -r = recursive
 # -i = ignore non-matching class warnings, always exit 0
@@ -53,13 +56,13 @@ $FAI/distro-install-common/end
 # I run this as a single post-fai script to update things that have changed.
 tmpfile1=$(mktemp)
 # this can fail if we need an apt update
-chroot $FAI_ROOT /usr/bin/apt-cache policy >$tmpfile1 ||:
+$chroot /usr/bin/apt-cache policy >$tmpfile1 ||:
 fcopy -riB /etc/apt
 
 tmpfile2=$(mktemp)
-chroot $FAI_ROOT /usr/bin/apt-cache policy >$tmpfile2
+$chroot /usr/bin/apt-cache policy >$tmpfile2
 if ! diff -q $tmpfile1 $tmpfile2; then
-  chroot $FAI_ROOT /usr/bin/apt update
+  $chroot /usr/bin/apt update
 fi
 # outside of fai, this seems to regularly lead to
 # E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
@@ -109,7 +112,7 @@ TimeoutStartSec=20
 WantedBy=dev-disk-by\x2did-ata\x2dSamsung_SSD_870_QVO_8TB_S5VUNG0N900656V.device
 EOF
 
-        chroot $FAI_ROOT bash <<'EOFOUTER'
+        $chroot bash <<'EOFOUTER'
 systemctl enable myncq.service
 /usr/bin/myncq no-upgrub
 EOFOUTER
@@ -159,7 +162,7 @@ fi
 
 # use networkmanager if this host has wireless.
 if [[ $HOSTNAME == bo ]] || type -p iw &>/dev/null && [[ $(iw dev) ]]; then
-  chroot $FAI_ROOT bash <<EOF
+  $chroot bash <<EOF
 apt-get -y install network-manager
 EOF
 
@@ -212,26 +215,25 @@ case $HOSTNAME in
     vb=$va-060403
     vc=${vb}.202307110536
     pre="https://kernel.ubuntu.com/~kernel-ppa/mainline/v$va/amd64/linux-"
-    urls=(
-      ${pre}headers-${vb}_${vc}_all.deb
-      ${pre}{headers,image-unsigned,modules}-${vb}-generic_${vc}_amd64.deb
-    )
-    wget "${urls[@]}"
-    chroot $FAI_ROOT make install
-
-    chroot $FAI_ROOT bash <<EOF
+    if ! dpkg -s -- linux-headers-${vb}  2>&1 | grep -Fx "Status: install ok installed" &>/dev/null; then
+      urls=(
+        ${pre}headers-${vb}_${vc}_all.deb
+        ${pre}{headers,image-unsigned,modules}-${vb}-generic_${vc}_amd64.deb
+      )
+      wget "${urls[@]}"
+      $chroot bash <<EOF
 cd /tmp/kernel-debs
 dpkg -i *.deb
 EOF
-
+    fi
     ;;
   *)
-    chroot $FAI_ROOT apt-get install linux-libre
+    $chroot apt-get -y install linux-libre
     ;;
 esac
 
-cp -ra /srv/a/opt/btrfs-progs-release/btrfs-progs-v6.3.2 $FAI_ROOT/tmp/btrfs-progs
-chroot $FAI_ROOT bash <<EOF
+cp -ra $bprogs_pre/a/opt/btrfs-progs-release/btrfs-progs-v6.3.2 $FAI_ROOT/tmp/btrfs-progs
+$chroot bash <<EOF
 cd /tmp/btrfs-progs
 make install
 EOF
@@ -277,7 +279,7 @@ fi
 
 if ifclass VOL_BULLSEYE_BOOTSTRAP; then
   fcopy /etc/systemd/system/faicheck.service
-  chroot $FAI_ROOT bash <<'EOFOUTER'
+  $chroot bash <<'EOFOUTER'
 systemctl enable faicheck.service
 EOFOUTER
   exit 0 # avoid unnecessary stuff in bootstrap vol
@@ -285,7 +287,7 @@ fi
 
 
 ## misc settings
-chroot $FAI_ROOT bash <<'EOFOUTER'
+$chroot bash <<'EOFOUTER'
 #### begin .ssh setup ###
 set -x
 set -eE -o pipefail
index 094fd11b4003e8709527794ceb1d262e3084fbb7..8b53702f3a0eb8eeebff81791a902be47fd242f2 100755 (executable)
@@ -710,6 +710,19 @@ config rule
  option target           ACCEPT
  option dest_port        2202
 
+# was working on an openvpn server, didn't finish
+# config redirect
+#  option name vpnkd
+#  option src              wan
+#  option src_dport        1196
+#  option dest_port        1196
+#  option dest_ip          $l.2
+#  option dest             lan
+# config rule
+#  option src              wan
+#  option target           ACCEPT
+#  option dest_port        1196
+
 
 config redirect
  option name sshkdalt
@@ -1246,23 +1259,20 @@ server=10.2.0.1
 # default dhcp range is 100-150
 # bottom port,  iPXE (PCI 03:00.0) in seabios boot menu
 dhcp-host=c8:60:00:31:6b:75,set:kd,$l.2,kd
-dhcp-host=94:05:bb:1e:2c:2e,set:sy,$l.3,sy
 #dhcp-host=94:05:bb:1e:2c:2e,set:bo,$l.38,bo
 # top port, iPXE (PCI 04:00.0) in seabios boot menu
 #dhcp-host=c8:60:00:2b:15:07,set:kd,$l.2,kd
 # 4 is reserved for a staticly configured host wrt2
 
-# temporarily commented
-dhcp-host=f0:de:f1:81:ec:88,set:x2,$l.5,x2
 
-dhcp-host=c4:8e:8f:44:f5:63,set:x2w,$l.6,x2w
+dhcp-host=c4:8e:8f:60:63:cb,set:x2w,$l.6,x2w
 dhcp-host=10:51:07:f5:f1:b8,set:syw,$l.7,syw
 dhcp-host=80:fa:5b:1c:6e:cf,set:amy,$l.8,amy
-# This is so fai can have an explicit name to use for testing,
-# or else any random machine which did a pxe boot would get
-# reformatted. The mac is from doing a virt-install, cancelling it,
-# and copying the generated mac, so it should be randomish.
-dhcp-host=52:54:00:9c:ef:ad,set:demohost,$l.12,demohost
+dhcp-host=a0:ce:c8:9f:7a:f3,set:sy,$l.12,sy
+# alternate dongle
+#dhcp-host=94:05:bb:1e:2c:2e,set:sy,$l.12,sy
+dhcp-host=00:1f:16:16:39:24,set:x2,$l.13,x2
+
 ## for using different dhcp server
 #dhcp-host=52:54:00:9c:ef:ad,ignore
 # 14 = wrt3
@@ -1279,8 +1289,6 @@ dhcp-host=14:dd:a9:d5:31:7a,set:frodo,$l.28,frodo
 dhcp-host=70:a6:cc:3a:bb:b4,set:bow,$l.29,bow
 dhcp-host=6c:56:97:88:7b:74,set:amazontab,$l.31,amazontab
 dhcp-host=0a:8a:9b:cf:b5:ec,set:samsungtab,$l.32,samsungtab
-# old x2 with bad fan
-dhcp-host=00:1f:16:16:39:24,set:x8,$l.38,x8
 # server d16:
 dhcp-host=38:2c:4a:c9:33:13,set:bigs,$l.48,bigs
 dhcp-host=e4:5f:01:07:50:40,set:pi4,$l.49,pi4
@@ -1288,6 +1296,12 @@ dhcp-host=e4:5f:01:07:50:3f,set:pi4w,$l.50,pi4w
 # samsung phone
 dhcp-host=a8:79:8d:71:54:68,set:s22,$l.52,s22
 
+# This is so fai can have an explicit name to use for testing,
+# or else any random machine which did a pxe boot would get
+# reformatted. The mac is from doing a virt-install, cancelling it,
+# and copying the generated mac, so it should be randomish.
+dhcp-host=52:54:00:9c:ef:ad,set:demohost,$l.88,demohost
+
 
 # faiserver vm
 #dhcp-host=52:54:00:56:09:f9,set:faiserver,$l.15,faiserver