博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何解决Linux下USB设备节点名不固定问题
阅读量:2153 次
发布时间:2019-04-30

本文共 2657 字,大约阅读时间需要 8 分钟。

如何解决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:/ $

其中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/

你可能感兴趣的文章
mybatis 根据 数据库表 自动生成 实体
查看>>
win10将IE11兼容ie10
查看>>
checkbox设置字体颜色
查看>>
第一篇 HelloWorld.java重新学起
查看>>
ORACLE表空间扩张
查看>>
orcal 循环执行sql
查看>>
web.xml配置监听器,加载数据库信息配置文件ServletContextListener
查看>>
结构型模式之桥接模式(Bridge)
查看>>
行为型模式之状态模式(State)
查看>>
行为型模式之策略模式(Strategy)
查看>>
行为型模式之模板方法模式(TemplateMethod)
查看>>
行为型模式之访问者模式(Visitor)
查看>>
大小端详解
查看>>
source insight使用方法简介
查看>>
<stdarg.h>头文件的使用
查看>>
C++/C 宏定义(define)中# ## 的含义 宏拼接
查看>>
Git安装配置
查看>>
linux中fork()函数详解
查看>>
C语言字符、字符串操作偏僻函数总结
查看>>
Git的Patch功能
查看>>