如何解決Linux下USB裝置節點名不固定問題

2021-07-02 23:57:11 字數 3326 閱讀 8924

以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/ttyusb0

lrwxrwxrwx root root 2011-01-01

13:43 ttyusb1 -> ../../devices/ff540000.usb/usb3/3-1/3-1.2/3-1.2:1.0/ttyusb1/tty/ttyusb1

root@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

pchhda

intel

pch at 0xe4610000 irq 30

1 [device ]:

usb-audio - usb

pnpaudio

device

c-media

electronics

inc. usb

pnpaudio

device at usb-0000:00

:14.0-3, full speed

tony@tony-e431

:~$ ls -l /sys/class/sound/card1/

total 0

drwxr-xr-x 3 root root 0

10月 3111:

53 controlc1

lrwxrwxrwx 1 root root 0

10月 3111:

53 device -> ../../../3-3

:1.0

-rw-r--r-- 1 root root 4096

10月 3111:

53 id

-r--r--r-- 1 root root 4096

10月 3111:

53 number

drwxr-xr-x 3 root root 0

10月 3111:

53 pcmc1d0c

drwxr-xr-x 2 root root 0

10月 3111:

54 power

lrwxrwxrwx 1 root root 0

10月 3111:

53 subsystem -> ../../../../../../../../class/sound

-rw-r--r-- 1 root root 4096

10月 3111:

53 uevent

tony@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 speed

root@nanopi2:/ # ls -l /sys/class/sound/card2/

drwxr-xr-x root root 2017-10-31

03:58 controlc2

lrwxrwxrwx 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 number

drwxr-xr-x root root 2017-10-31

03:58 pcmc2d0c

drwxr-xr-x root root 2017-10-31

03:58 power

lrwxrwxrwx root root 2017-10-31

03:58 subsystem-> ../../../../../../../../../class/sound

-rw-r--r-- root root 4096

2017-10-31

03:58 uevent

root@nanopi2:/ #

linux下如何使用USB儲存裝置

如何在linux環境中使用usb介面的 儲存 裝置?這是各大電腦論壇上出現得比較多的乙個問題,同此可見這也是擺在許多電腦玩家面前的一道難題。本文就為您提供一套完美的解決方案,通過下面的方法,您僅可以在linux環境中方便地使用u盤 usb硬碟盒,而且還能將數位相機作為usb大容量 儲存器。這裡就以r...

Linux下USB裝置檢測

usb裝置檢測也是通過 proc目錄下的usb檔案系統進行的。為了使乙個usb裝置能夠正常工作,必須要現在系統中插入usb橋接器模組。在檢測開始時,一般要先檢測是否存在 proc bus usb目錄,若不存在則嘗試插入usb橋接模組。現在一般的usb橋接器模組有兩種型別,uhci和ohci。在決定插...

Linux下USB裝置檢測

usb裝置檢測也是通過 proc目錄下的usb檔案系統進行的。為了使乙個usb裝置能夠 正常工作,必須要現在系統中插入usb橋接器模組。在檢測開始時,一般要先檢測是否存在 proc bus usb目錄,若不存在則嘗試插入usb橋接模組。現在一般的usb橋接器模組有兩種型別,uhci和ohci。在決定...