序列控制檯如何在 Linux 上工作?

大雄45發表於2022-08-21
導讀 本文您將詳細瞭解什麼是序列控制檯以及它們如何在   上工作。

串列埠連線允許使用者在沒有顯示器的情況下控制系統。下面介紹如何在 Linux 中訪問和使用序列控制檯。

處理嵌入式 Linux 專案時必不可少的元素之一是透過序列控制檯介面訪問您的裝置。為此,您正在開發嵌入式系統的計算機必須具有串列埠。然而,今天很少有電腦有串列埠,這就是我們使用 USB 轉串列埠轉換器的原因。

最後,您將詳細瞭解什麼是序列控制檯以及它們如何在 Linux 上工作。

設定 USB 到序列轉換器

幾乎所有你能在市場上找到的 USB 序列轉換器都能被 Linux 自動識別。將任何 USB 轉換器插入您的計算機並使用 dmesg  找出裝置的檔名。

dmesg

在上面的示例中,您可以在製造商(manufacturer)部分看到 VirtualBox,因為主機是在 VirtualBox 上執行的 Linux 發行版。在這裡,製造商名稱將根據您使用的轉換器而改變。您還可以看到您正在使用的序列轉換器以名稱連線到系統,例如ttyUSB0。

您可以透過裝置檔案/dev/ttyUSB0使用系統識別的序列轉換器。根據您使用的發行版,裝置檔案會自動在/dev目錄下建立,顯示主要、次要和裝置型別。對於 USB 序列轉換器,每個同聲傳譯的命名方案通常是ttyUSB0、ttyUSB1和ttyUSBX 。

如果您在應用程式正在使用 USB 序列轉換器時移除並重新插入它,系統會向裝置發出一個新編號。

序列裝置的訪問授權

掛載的USB轉換器裝置檔案的預設訪問許可權通常如下:

ls -l /dev/ttyUSB0
# 輸出crw-rw---- 1 root dialout 188, 46 Jul 17 15:34 /dev/ttyUSB0

在檢查上述輸出時,您可以知道:

  •  行首的字母c表示這是一個基於字元的裝置
  •  檔案所有者是root使用者,該使用者有讀寫許可權
  •  檔案的組所有者是dialout組,該組中的使用者也有讀寫許可權
  •  其餘使用者對該檔案沒有任何讀寫許可權

如果您當前以非dialout組成員的普通使用者身份登入,則無法讀取和寫入 USB 序列轉換器。要解決此問題,您必須使當前使用者成為dialout組的成員或編輯系統上的udev規則檔案。

為方便起見,您可以使用第一種技術。首先,使用id 確定您的使用者屬於哪些組:

id

使用adduser或usermod命令將您的使用者新增到組中:

# 針對 Fedora
sudo usermod -aG dialout USERNAME
# 針對 Debian
sudo adduser USERNAME dialout
# 針對 Arch
sudo usermod -a -G uucp USERNAME

組成員身份程式現已完成。但是,系統會在圖形會話的第一個登入步驟中檢查組成員資訊,然後將其提供給所有正在執行的程式。

因此,您必須退出當前圖形會話,然後重新登入或重新啟動計算機使修改生效。完成此操作後,您將擁有對序列轉換器裝置的讀/寫訪問許可權。

如何在 Linux 上連線到序列控制檯

當您需要訪問計算機或網路控制檯時,您可以參考序列控制檯應用程式。通常,您需要透過 SSH 訪問才能這樣做。但是,從軟體和硬體的角度來看,在某些情況下,也可以僅使用串列埠訪問控制檯。

您會在較舊的計算機上最常找到這些型別的示例。以下是一些最適合您的序列控制檯應用程式。

使用 Minicom

您可以在您的系統上安裝 Minicom,這是一箇舊的但仍在工作的應用程式,如下所示:

# 在 Fedora, CentOS 和 RHEL 上
sudo yum install minicom
# 在 Debian 和 Ubuntu
sudo apt-get install minicom
# 在 Arch Linux 上
sudo snap install minicom

當您第一次啟動應用程式時,它會預設嘗試開啟一個裝置檔案,例如/dev/modem。它在找不到檔案時終止。要克服這個問題,您可以使用-s引數直接啟動應用程式的設定螢幕:

minicom -s

A鍵設定裝置名稱,E鍵設定串列埠速度。然後當你用Exit 退出時,就可以使用對應的串列埠了。

在應用程式主螢幕上,您可以使用Ctrl + A + O 返回配置螢幕,使用Ctrl + A + X退出應用程式,使用Ctrl + A + W啟用換行模式,並使用其他快捷鍵獲取幫助Ctrl + A + Z。

使用 GTKTerm

Minicom 通常由高階 Linux 使用者使用,因此不建議初學者使用。Linux 新手可以安裝 GTKTerm,一個用於 Linux 的圖形序列終端模擬器。您可以使用以下命令在系統上安裝應用程式:

# 在 Fedora, CentOS 和 RHEL 上
sudo dnf -y install gtkterm
# 在 Debian 和 Ubuntu 上
sudo apt-get install gtkterm 
# 在 Arch Linux 上
yay -S gtkterm

啟動應用程式時,您必須透過配置 > 埠選單設定裝置名稱和速度引數,如下所示:

將設定儲存為預設值,方便以後使用。

使用 screen

如果你熟悉多終端管理的 screen,你就會知道你也可以用它來做串列埠訪問。以下是安裝它的命令:

# 在 Fedora, CentOS 和 RHEL 上
sudo dnf -y install screen 
# 在 Debian, Ubuntu 和 Linux Mint 上
sudo apt-get -y install screen
# 其他發行版使用 Snap 安裝
sudo snap install screen --classic

安裝後,您可以執行如下命令連線到序列控制檯:

screen /dev/ttyUSB0 115500
現在您可以在 Linux 上建立串列埠連線

能夠使用串列埠訪問您的 Linux 系統是一個非常有用的功能,尤其是當您不想將監視器連線到 SBC(會話邊界控制器)時。

由於序列控制檯授權在編譯時已內建在 Linux 核心中,因此您至少應該對 Linux 核心及其工作有基本的瞭解。

原文來自:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2911329/,如需轉載,請註明出處,否則將追究法律責任。

相關文章