50.1.20.31 dsl_modem----switchA------------router------lan---wifi-----pi4 RasPiOS workstation | gateway.zefox.net | | | | |---Mac workstation | | | |------printer |------------| |-------Win10 laptop | |-50.1.20.29 ns1.zefox.net Pi3 14.0 aarch64 ftdi usb-serial----50.1.20.25 |-50.1.20.30 ns2.zefox.net Pi2 12.3 armv7 2303 usb-serial----50.1.20.29 |-50.1.20.27 www.zefox.net Pi2 12.3 armv7 2303 usb-serial----50.1.20.26 |-50.1.20.24 pelorus.zefox.org Pi3 14.0 arm64 ftdi usb-serial---50.1.20.28 |---50.1.20.28 www.zefox.org Pi3 arm64 current ftdi usb-serial--50.1.20.27 switchB |---50.1.20.25 nemesis.zefox.com Pi4 arm64 current ftdi usb-serial--50.1.20.30 |---50.1.20.26 www.zefox.com Pi2 armv7 releng/14 ftdi usb-serial--50.1.20.24 Each host acts as a terminal server with the serial end connected to the GPIO serial console of another host in the group. So long as the network and any one host come up it's possible to work around the ring putting other hosts back on the network. If the network does not come up it's possible to "tipfrog" from one host to the next, but gets very confusing very fast. Normal practice is to keep an lxterminal window on pi4 workstation whenever it's up containing a separate tab for ssh connection to each terminal server. A tip session on each terminal server host connects to the gpio console pins of the corresponding host to monitor its console output. While possible to "tipfrog" from one host to the next (for example, if the network is down) it's extremely confusing. BTDT 8-) Here are config.txt of each host. 50.1.20.30 ns2.zefox.net Pi2 v1.1 bob@ns1:~ % cat /boot/msdos/config.txt init_uart_clock=3000000 enable_uart=1 kernel=u-boot.bin kernel7=u-boot.bin dtoverlay=mmc bob@ns1:~ % 50.1.20.29 ns1.zefox.net Pi2 v1.1 bob@ns2:~ % cat /boot/msdos/config.txt init_uart_clock=3000000 enable_uart=1 kernel=u-boot.bin kernel7=u-boot.bin dtoverlay=mmc bob@ns2:~ % 50.1.20.27 www.zefox.net Pi2 v1.1 bob@www:~ % cat /boot/msdos/config.txt init_uart_clock=3000000 enable_uart=1 kernel=u-boot.bin kernel7=u-boot.bin dtoverlay=mmc bob@www:~ 50.1.20.24 pelorus.zefox.org Pi3 bob@pelorus:~ % cat /boot/efi/config.txt [all] arm_64bit=1 dtparam=audio=on,i2c_arm=on,spi=on dtoverlay=mmc dtoverlay=disable-bt device_tree_address=0x4000 kernel=u-boot.bin [pi4] hdmi_safe=1 armstub=armstub8-gic.bin bob@pelorus:~ % 50.1.20.25 nemesis.zefox.com Pi4 bob@nemesis:~ % cat /boot/msdos/config.txt [all] arm_64bit=1 dtparam=audio=on,i2c_arm=on,spi=on dtoverlay=mmc dtoverlay=disable-bt device_tree_address=0x4000 kernel=u-boot.bin [pi4] #hdmi_safe=1 armstub=armstub8-gic.bin gpio=2,3=a0 bob@nemesis:~ % 50.1.20.26 www.zefox.com Pi2 v1.1 bob@www:~ % cat /boot/msdos/config.txt init_uart_clock=3000000 enable_uart=1 kernel=u-boot.bin kernel7=u-boot.bin dtoverlay=mmc bob@www:~ % 50.1.20.28 www.zefox.org Pi3 bob@www:~ % cat /boot/msdos/config.txt [all] arm_64bit=1 dtparam=audio=on,i2c_arm=on,spi=on dtoverlay=mmc dtoverlay=disable-bt device_tree_address=0x4000 kernel=u-boot.bin [pi4] hdmi_safe=1 armstub=armstub8-gic.bin # Local addition: [all] force_mac_address=b8:27:eb:71:46:4f bob@www:~ % 20240113