其實在 Linux 上設定 serial port 本來是一個很簡單直覺的事情,不管用什麼 distro 看看 Arch Wiki 總是沒錯的。但是古早硬體的 Serial over LAN 就沒那麼好理解了。
使用的環境:
- Supermicro X10SLL+-F/X10SLM+-F
- Debian GNU/Linux 13 (Proxmox VE 9)
BIOS 設定
Serial over LAN 需要先在 BIOS 中設定。
Supermicro 的新版本 BIOS 中,COM2/SoL console redirection 是統一的設定項。但是在老版本中,兩者是獨立的設定項。在老版本中,無需要理會 COM2,只需要設定 SoL Console Redirection 就可以了。
Linux 設定
一般來說,Serial-over-LAN 會使用 COM2。但這邊實際使用的是 COM3,在 Linux 內對應的裝置是 ttyS2。
需要修改 GRUB 的設定,讓 GURB 使用 serial,並且告訴 kernel 增加多個 console。
增加一個設定檔案在 /etc/default/grub.d/serial.cfg:
GRUB_TERMINAL="console serial"
GRUB_LINUX_CMDLINE="$GRUB_LINUX_CMDLINE console=ttyS2,115200n8"
如果不確定,可以先讓 kernel 同時使用多個 console,並且測試:
#!/usr/bin/env bash
for d in /dev/ttyS{0..3}; do
[ -e "$d" ] || continue
stty -F "$d" 115200 cs8 -cstopb -parenb -ixon -ixoff -crtscts
echo "TEST: $d" > "$d"
done
使用 Serial over LAN
ipmitool -I lanplus -H $BMC_IP -U $BMC_USERNAME -P $BMC_PASSWORD sol info
ipmitool -I lanplus -H $BMC_IP -U $BMC_USERNAME -P $BMC_PASSWORD sol activate