Terminal

從外部設備打開終端?

  • April 20, 2022

我目前正在學習終端、偽終端等,我很好奇 - 今天我們都使用作為 Linux GUI 一部分的 xterm 或 gnome-terminal 等偽終端,而較少使用虛擬控制台是核心的一部分。在這個領域,我幾乎知道事情是如何運作的,什麼時候會發生什麼以及有什麼球員在那裡。如果我想使用模擬舊 TTY(如著名的 VT100)的外部設備登錄我的 Linux 機器怎麼辦。我可以為此使用另一台 linux 機器,或者 Raspberry pi、Arduino 等等。

為了方便起見,我想使用 USB 轉串口轉換器。

這是怎麼做到的?

在主機端,您需要執行一些東西,它會在串列埠上偵聽連接,然後/bin/login在協商連接時切換。那東西通常是一個名為 getty 的程序

在螢幕和鍵盤所在的設備上,您需要某種終端仿真器。多年來, Minicom一直是 Linux 上最受歡迎的選擇。

systemd要允許在現代發行版中使用serial-getty@<device name>.service.

例如,要立即開始接受串列埠中的傳入登錄/dev/ttyS0

systemctl start serial-getty@ttyS0.service

要允許在 上持久登錄/dev/ttyS0,這樣您就不需要在重新啟動後重新啟用它:

systemctl enable serial-getty@ttyS0.service

只要 TTY 設備名稱的名稱保持不變,USB 轉串口轉換器也應如此。

因此,如果您有多個 USB 轉串口轉換器連接到要接受串口登錄的 Linux 系統,您可能需要設置一些 udev 規則以/dev/ttyUSB*通過轉換器序列號、USB 指定設備的固定名稱(別名)設備路徑或其他一些持久的唯一標識,並使用這些別名啟動 serial-getty 服務實例。但是,如果您所有的 USB 轉串口轉換器都應該被同等對待,那麼這可能就沒有必要了。

引用自:https://unix.stackexchange.com/questions/699611