2011-12-19 74 views
2

如果我有一個使用Python pyserial模塊訪問的USB調制解調器,它需要將設備標識爲「/ dev/ttyACM0」。如果調制解調器連接到USB集線器,它不會再出現在/ dev/tty中...如何在Python上識別LINUX上的USB調制解調器/ dev

如何從我的Python代碼中以編程方式識別它,因此無論它是否已更改或者機器重新啓動可以找到調制解調器?

注: 我可以用總的lsusb看設備,但如果它連接到一個USB集線器它不會出現爲/ dev/tty的...設備

+0

很難嘗試並自動找到正確的調制解調器。如果你有兩個連接例如?設備路徑可以放入某種配置變量(配置文件和/或命令行參數)中,以便輕鬆更改。 – 2011-12-19 13:11:51

回答

1

這聽起來像在linux中的錯誤核心。如果可以,請嘗試更新的版本。

如果失敗,請檢查dmesg輸出的最後幾行或文件/var/log/messages(後者取決於您的分佈;如果該文件不存在或不包含您要查找的內容,然後檢查/var/log中的其他文件;按ls -rt幫助排序)。

識別設備後,您可能會看到一種模式。

另一種方法是主要和次要號碼。如果您運行ls -l /dev,你會看到如下所示的結果:

crw--w---- 1 root tty   4, 0 2011-12-19 09:15 tty0 

c手段「字符設備」和4, 0意味着它的控制檯設備單元0

4是主設備號標識設備的類型。請參閱/proc/devices以獲取主要編號和相應設備驅動程序的列表。

如果您直接插入模型,請注意主號碼。將其插入集線器後,嘗試查找具有相同編號的設備。

+0

感謝您的回答。是的 - 這是一個字符設備。我已經嘗試過在製作文件之前和之後進行製作,並且也是grep-ed型號。當連接到集線器時,調制解調器絕對不存在。我要去購買另一個集線器並嘗試。 – 2011-12-19 15:17:39

+0

在i686上運行帶有2.6.35-22-generic Kernel的Ubuntu 10.10 – 2011-12-19 15:19:14

+0

首先嚐試一個不同的集線器。他們有時確實有錯誤。如果這沒有幫助,請考慮升級到11.10或11.04 - 除非您正在運行LTS。 – 2011-12-19 15:22:58

0

而不是在Python中做一些伏都教,試着寫一個udev rule,它給你的設備一個更有用的名字,比如/dev/my-serial-thingy。使用Python的方法更容易。

+0

謝謝你的好主意 – 2011-12-19 15:30:45

相關問題