在運行時啟用串行系統控制台

在運行時啟用串行系統控制台

有 Linux 核心啟動選項來啟用系統控制台,console=例如,console=ttyS0,115200console=ttyS0,115200n8 http://www.linuxtopia.org/online_books/linux_kernel/kernel_configuration/re01.html

傳遞此選項後,Linux 核心會將所有(或部分)內核訊息列印到控制台,這對於偵錯很有用。

有沒有一種方法可以在運行時更改 Linux 中的系統控制台,而無需重新啟動(使用一些特殊的 sysctls/ioctls/或/proc檔案/sys系統)?

第一種情況:我在當前啟動中沒有console=選項(在 /proc/cmdline 中檢查),並且我想啟用 dmesg 列印到 /dev/ttyS0 序列埠來偵錯情況。

第二種情況:我的設定錯誤console=ttyS0,9600,並且想要在不重新啟動的情況下更改速度(刪除舊的控制台設置,添加具有良好 115200 設定的新控制台;或只是更改速度)。

console=選項在哪裡解析,目前設定儲存在哪裡?/sys/proc

答案1

這對我有用:

sudo agetty ttyUSB0 115200
sudo password:
ctrl+z
bg
disown

如果您不使用 disown 終端將關閉,agetty 也會終止(關閉終端時發出 SIGHUP 訊號)。

從另一台電腦上,您可以使用 登入screen /dev/ttyUSB0 115200。將顯示登入/密碼提示。

答案2

不是在運行時添加完整的真實硬體控制台,但在某些情況下更好:遇到“netconsole”。它是乙太網路中基於 udp 的核心控制台模擬,單向,僅用於收集核心日誌。不再需要 USB-UART 轉接器或零數據機電纜或價格過高的 com-over-ethernet“控制台伺服器”裝置.並且不再傳輸(您可能想使用經典的核心控制台來發送魔法系統請求,但不適用於 netconsole)。

文件:https://www.kernel.org/doc/Documentation/networking/netconsole.txt

例子:

應在核心配置中啟用 Netconsole(或建置為模組)才能運作。 (有時可能可以建立用於運行核心的 netconsole 模組並在不重新啟動的情況下將其 modprobe 到 linux 中)。

若要使用 linux 命令列啟用(重新啟動),請新增:

netconsole=[src-port]@[src-ip]/[<dev>],[tgt-port]@<tgt-ip>/[tgt-macaddr]

需要指定所有內容:來源udp 連接埠、來源ipv4 位址、網路介面名稱(如“eth0”)(它可以與udev 一起將eth0 重新命名為與位置相關的名稱嗎?)、目標udp 連接埠和ipv4,以及格式中的目標mac 位址六個位元組 00:13:32:20:r9:a5。

接收者是nc -u -l $tgt_port.

來自 Arch wiki 的運行時設定範例 -https://wiki.archlinux.org/index.php/Netconsole

# set log level for kernel messages
dmesg -n 8

modprobe configfs
modprobe netconsole
mount none -t configfs /sys/kernel/config

# 'netconsole' dir is auto created if the module is loaded 
mkdir /sys/kernel/config/netconsole/target1
cd /sys/kernel/config/netconsole/target1

# set local IP address
echo 192.168.0.111 > local_ip
# set destination IP address
echo 192.168.0.17 > remote_ip
# set local network device name (find it trough ifconfig, examples: eth0, eno1, wlan0)
echo eno1 > dev_name
# find destination MAC address
arping -I $(cat dev_name) $(cat remote_ip) -f | grep -o ..:..:..:..:..:.. > remote_mac

echo 1 > enabled

相關內容