2011-10-10 48 views
1

我有幾個連接到USB集線器的USB串行轉換器(Prolific)。我找不到任何udev information,允許我根據它們連接的物理端口區分這些轉換器。Linux USB設備路徑的含義? (需要區分USB串行轉換器)

我希望設備路徑可以給我的信息...

/devices/pci0000:00/0000:00:0f.5/usb1/1-3/1-3.1/1-3.1:1.0/ttyUSB0

...但我找不到解釋這些數字的含義(其中恰好標識希望有任何文件物理端口)。有人可以解釋這些數字並告訴我他們是否允許我清楚地識別物理端口?

回答

1

我在這個領域的專家,但這些都是我這些數字的解釋:

  • pci0000:00:這是你的PCI控制器。
  • 0000:00:0f.5:這是USB控制器的PCI標識符。
  • usb1:usb控制器本身。
  • 1-3:USB集線器的標識符。它可能是一個內部樞紐,或者它可能不存在。
  • 1-3.1:設備連接到該集線器的第一個端口。
  • 1-3.1:1.0:配置#1,該設備中的接口#0。

所以,我的猜測是物理端口由1-3.1標識,即在設備路徑的最後一部分冒號左邊的字符串。

我沒有一個樞紐周圍,但我敢打賭,如果你通過集線器連接它,你會得到這樣的:

/devices/pci0000:00/0000:00:0f.5/usb1/1-3/1-3.1/1-3.1.1/1-3.1.1:1.0/ttyUSB0 

物理端口是1-3.1.1,和去年1將成爲該樞紐中使用的端口。

+0

的是,在最後一句一個錯字?是不是'1-3.1'? –

+0

不,這是我的假設,如果你在中間添加一個USB集線器。 1-3.1是集線器本身,1-3.1.1連接到集線器第一個插槽的設備,1-3.1.2到第二個,但是我沒有測試它,所以我可能是錯的。 – rodrigo

1

這個網站: http://hackaday.com/2009/09/18/how-to-write-udev-rules/ 引用命令: udevadm信息-a -p $(udevadm信息-q路徑-n的/ dev/ttyUSB0) (好吧,這是一個有點不同,但該命令的作品)

它告訴我們這樣的信息:

KERNELS=="3-1" 
SUBSYSTEMS=="usb" 
DRIVERS=="usb" 

我用這個信息在過去放在一起這樣一個規則:

KERNELS=="3-1", SUBSYSTEMS=="usb", DRIVERS=="usb", SYMLINK+="USBPORT1" 

所以每一個設備被插入USB端口1時,它會創建在/ dev文件夾simlink無論是一致的爲了什麼事都插上。