本文共 2657 字,大约阅读时间需要 8 分钟。
以USB转串口为例,通常设备节点名为ttyUSBx(x为0~n),Linux内核会根据插入设备的先后顺序进行编号的分配,比如第一个插入的设备编号为0,然后依此加1。
如果仅仅以设备节点ttyUSBn
来区别具体是哪个设备,因为末位的编号是随时会变的,所以就会造成混乱。无法保证A设备就是0,B设备就是1。其实这个问题在LDD3上已经提到过,目前的内核早已经解决类似的问题,将所以有USB设备都导致到sys文件系统中,其实每个USB端口都有唯一的端口号,相当于每个门店的门牌号。只要我们依据端口号来进行设备的区分,那么问题就迎刃而解了。
比如当前设备插入两个USB转串口设备后,查看ttyUSBn
所在端口的端口号:
root@android:/ $ ls -l /sys/class/tty/...lrwxrwxrwx root root 2011-01-01 13:40 ttyUSB0 -> ../../devices/ff540000.usb/usb3/3-1/3-1.1/3-1.1:1.0/ttyUSB0/tty/ttyUSB0lrwxrwxrwx root root 2011-01-01 13:43 ttyUSB1 -> ../../devices/ff540000.usb/usb3/3-1/3-1.2/3-1.2:1.0/ttyUSB1/tty/ttyUSB1root@android:/ $
其中ttyUSB0
所在的端口号为3-1.1
,而ttyUSB1
所在的端口号为3-1.2
。
其它类型USB设备同理,以上思路清理完毕。
在调试USB Audio设备时,同样遇到了这个问题。记录一下查看USB Audio的方式以及如何区分他们:
tony@tony-E431:~$ cat /proc/asound/cards 0 [PCH ]: HDA-Intel - HDA Intel PCH HDA Intel PCH at 0xe4610000 irq 30 1 [Device ]: USB-Audio - USB PnP Audio Device C-Media Electronics Inc. USB PnP Audio Device at usb-0000:00:14.0-3, full speedtony@tony-E431:~$ ls -l /sys/class/sound/card1/total 0drwxr-xr-x 3 root root 0 10月 31 11:53 controlC1lrwxrwxrwx 1 root root 0 10月 31 11:53 device -> ../../../3-3:1.0-rw-r--r-- 1 root root 4096 10月 31 11:53 id-r--r--r-- 1 root root 4096 10月 31 11:53 numberdrwxr-xr-x 3 root root 0 10月 31 11:53 pcmC1D0cdrwxr-xr-x 2 root root 0 10月 31 11:54 powerlrwxrwxrwx 1 root root 0 10月 31 11:53 subsystem -> ../../../../../../../../class/sound-rw-r--r-- 1 root root 4096 10月 31 11:53 ueventtony@tony-E431:~$
在NanoPi2上:
root@nanopi2:/ # cat /proc/asound/cards 0 [I2SES8316 ]: I2S-ES8316 - I2S-ES8316 I2S-ES8316 1 [SPDIFTranscieve]: SPDIF-Transciev - SPDIF-Transciever SPDIF-Transciever 2 [Device ]: USB-Audio - USB PnP Audio Device C-Media Electronics Inc. USB PnP Audio Device at usb-nxp-ehci-1.1, full speedroot@nanopi2:/ # ls -l /sys/class/sound/card2/ drwxr-xr-x root root 2017-10-31 03:58 controlC2lrwxrwxrwx root root 2017-10-31 03:58 device -> ../../../1-1.1:1.0-rw-r--r-- root root 4096 2017-10-31 03:58 id-r--r--r-- root root 4096 2017-10-31 03:58 numberdrwxr-xr-x root root 2017-10-31 03:58 pcmC2D0cdrwxr-xr-x root root 2017-10-31 03:58 powerlrwxrwxrwx root root 2017-10-31 03:58 subsystem -> ../../../../../../../../../class/sound-rw-r--r-- root root 4096 2017-10-31 03:58 ueventroot@nanopi2:/ #
转载地址:http://ohnwb.baihongyu.com/