Devices

如何重新創建已刪除的 /dev/ttyUSB## 設備?

  • May 12, 2018

背景

看來我只知道足夠多的 linux 讓自己陷入困境。

我正在開發兩個都執行 linux 的嵌入式系統(兩種不同的模型)。我一直在對調製解調器支持程式碼進行故障排除,該程式碼與兩者中較新的一個一起使用。我停止了程式碼並嘗試手動載入usbserial驅動程序。在較新的設備上,當我載入 usbserial 驅動程序時,四個設備出現在*/dev/ttyUSB#*中。

我做了什麼

我注意到舊設備上實際上一直列出了 16 個*ttyUSB##*設備。他們永遠不會消失。我正在猜測

$$ now $$這是因為舊核心的工作方式不同或其他原因。不幸的是,我繼續刪除了所有 16 個ttyUSB## devices。現在他們走了,再也不會回來了。我不知道如何創建字元設備。我能做些什麼來取回這些設備?

核心版本:

uname -r返回2.6.17.9-ep93xx-pxa-ads5

附加資訊

如果我遺漏了一些重要的資訊,請發表評論,我會添加它。提前致謝!

您可以使用手動創建 /dev 條目

   mknod /dev/ttyUSBn c 188 n
  • 參數:

    • mknod 是眾所周知的創建 /dev 條目的工具
    • /dev/ttyUSBn:設備名稱
    • c : 字元設備
    • 188:主要設備號
    • n : 次設備號,ttyUSB0, ttyUSB1, etc.

但是設備應該是根據udev規則自動創建的

傳統上,unix 系統有一個腳本來創建條目/dev,呼叫MAKEDEV並位於/dev. 該腳本通常出現在 Linux 上,但可能不存在於設計人員假設所有設備都存在的嵌入式設備上,或者執行 udev 的系統上,其中設備條目通常是自動創建的。請注意,MAKEDEV通常會在目前目錄中創建條目,因此cd /dev請先執行。

您傳遞給的參數沒有標準/dev/MAKEDEV- 通常參數表示要創建的一組設備條目。在 Debian 上,/dev/MAKEDEV usb創建ttyUSB*以及其他一些。您還可以ttyUSBMAKEDEV腳本中查找以找出要執行的命令行。創建設備條目的低級命令是mknod.

如果您的系統使用 udev,請執行udevadm trigger -s usb-serial以重新創建/dev條目以及執行與設備發現相關的任何命令。(在這種情況下,設備是串列埠,而不是插入埠的設備。)

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