如何解决Linux下USB设备节点名不固定问题

                       

如何解决Linux下USB设备节点名不固定问题

以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:/ $ 
   
   
  • 1
  • 2
  • 3
  • 4
  • 5

其中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 1031 11:53 controlC1lrwxrwxrwx 1 root root    0 1031 11:53 device -> ../../../3-3:1.0-rw-r--r-- 1 root root 4096 1031 11:53 id-r--r--r-- 1 root root 4096 1031 11:53 numberdrwxr-xr-x 3 root root    0 1031 11:53 pcmC1D0cdrwxr-xr-x 2 root root    0 1031 11:54 powerlrwxrwxrwx 1 root root    0 1031 11:53 subsystem -> ../../../../../../../../class/sound-rw-r--r-- 1 root root 4096 1031 11:53 ueventtony@tony-E431:~$ 
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

在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:/ # 
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

猜你喜欢

转载自blog.csdn.net/hfyutdg/article/details/86594015