如果我有一個使用Python pyserial模塊訪問的USB調制解調器,它需要將設備標識爲「/ dev/ttyACM0」。如果調制解調器連接到USB集線器,它不會再出現在/ dev/tty中...如何在Python上識別LINUX上的USB調制解調器/ dev
如何從我的Python代碼中以編程方式識別它,因此無論它是否已更改或者機器重新啓動可以找到調制解調器?
注: 我可以用總的lsusb看設備,但如果它連接到一個USB集線器它不會出現爲/ dev/tty的...設備
如果我有一個使用Python pyserial模塊訪問的USB調制解調器,它需要將設備標識爲「/ dev/ttyACM0」。如果調制解調器連接到USB集線器,它不會再出現在/ dev/tty中...如何在Python上識別LINUX上的USB調制解調器/ dev
如何從我的Python代碼中以編程方式識別它,因此無論它是否已更改或者機器重新啓動可以找到調制解調器?
注: 我可以用總的lsusb看設備,但如果它連接到一個USB集線器它不會出現爲/ dev/tty的...設備
這聽起來像在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
以獲取主要編號和相應設備驅動程序的列表。
如果您直接插入模型,請注意主號碼。將其插入集線器後,嘗試查找具有相同編號的設備。
感謝您的回答。是的 - 這是一個字符設備。我已經嘗試過在製作文件之前和之後進行製作,並且也是grep-ed型號。當連接到集線器時,調制解調器絕對不存在。我要去購買另一個集線器並嘗試。 – 2011-12-19 15:17:39
在i686上運行帶有2.6.35-22-generic Kernel的Ubuntu 10.10 – 2011-12-19 15:19:14
首先嚐試一個不同的集線器。他們有時確實有錯誤。如果這沒有幫助,請考慮升級到11.10或11.04 - 除非您正在運行LTS。 – 2011-12-19 15:22:58
而不是在Python中做一些伏都教,試着寫一個udev rule,它給你的設備一個更有用的名字,比如/dev/my-serial-thingy
。使用Python的方法更容易。
謝謝你的好主意 – 2011-12-19 15:30:45
很難嘗試並自動找到正確的調制解調器。如果你有兩個連接例如?設備路徑可以放入某種配置變量(配置文件和/或命令行參數)中,以便輕鬆更改。 – 2011-12-19 13:11:51