① linux下USB設備熱插拔怎麼檢測
1.插上宏凳USB設備。
2.用蘆源root帳號執行 fdisk -l
3.命令行會顯示USB設備清單,如果是U盤,注意看看容量一陪絕態下就看出來了。
② linux下的USB驅動:如何識別手機打開USB存儲設備開關請牛人出馬呀~
1、打開終端;
2、輸入su root,按回車,然後輸入密碼,按回車,獲得root許可權;
3、輸入fdisk -l,按回正伍段車,系統會列出連接到電腦的橘談磁碟清單,包括路徑、大小、已掛載磁碟的掛載路徑等。在裡面找到你手機卡的路徑,如/dev/sdb。
4、創建一個文件夾舉譽,如mkdir /dev/usb;
5、掛載磁碟,mount -t vfat /dev/sdb /dev/usb。
③ 如何在Linux系統下檢測U盤是否已連接
如果沒有umount就非法拔出U盤,程序是不知道的,fopen,fwrite等函數都依然返回正確,知啟枯道操作系統要把寫介質的時候,才會提示I/O錯誤。可是很多數據都會因為這個不及時的錯誤報告而丟失。
事實上,USB驅動程序在U盤插入和虧旁衫拔出時,都對系統配置文件做了修改。例如U盤驅動程序會銷腔在插入或拔出時往 /proc/scsi/usb-storage-0/0 裡面記上 Attached:Yes or No。通過查看這個文件就不難檢測U盤是否插入或拔出了。
但是值得注意的是,U盤是否插入的狀態與是否掛載(mount)無關。
④ Linux下如何測試及使用USB轉串口線
1、將設備u口插入pc 2、輸入#lsmod 先看看能否檢測到這個設備,就看有沒有pl2303字眼可以了。如果有,則不需要再裝驅動。另外如果有的話最好再用dmesg | grep usb查找如果看到: 「drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic」 就說明設備已被識別,然後往下看 drivers/usb/serial/usb-serial.c: USB Serial support registered for PL-2303 usb 2-2: PL-2303 converter now attached to ttyUSB0 (or usb/tts/0 for devfs)如果沒有則需要驅動程序,一般硬體廠商都會提供,如果真的沒有的話就只有到網上下載了,一般2.6內核以上的都支持。 安裝完畢後再輸入這個命令瞧瞧,是否安裝成功。說明我的usb轉串口晶元是PL-2303,對應系統設備是 dev/usb/ttUSB0,最後只需在minicom配置文件里將埠改成/dev/usb/ttyUSB0就可以使用了:) 3、檢測步驟,檢測步驟如下,只是需要主意的是設置串口設備的時候可能不是ttyS2了,有可能是ttyUSB0或者ttyUSB1等之類的,我這里就是ttyUSB0(我用的是Fedora Core 8)。 因此,最好請您先看一下/dev下面的文件。 USB轉串口安裝 型號PL2303h 1、插入USB轉串口到主機, 2、啟動 Linux,打開終端,檢查是否存在設備/dev/ttyUSB0,如果沒有就建立一個: mknod /dev/ttyUSB0 c 188 0 如果有多個USB口,可以類推,建立/dev/ttyUSB[1-n],注意從設備號要累加, 如:mknod /dev/ttyUSB[1-n] c 188 [1-n] 3、輸入命令:#setserial /dev/ttyS0 -aP (COM-1) 顯示內容:/dev/ttyS0, Line 0, UART: 16550A, Port: 0x3f8, irq: 4 Baud_base: 115200, clos_delay: 50, divisor: 0 closing_wait: 3000, closing_wait2: infinite Flags: spd_normal skip_test 4、輸入命令:#setserial /dev/ttyS2 -a (COM-3) 顯示內容:/dev/ttyS2, Line 2, UART: unknown, Port: 0x3e8, irq: 4 Baud_base: 115200, clos_delay: 50, divisor: 0 closing_wait: 3000, closing_wait2: infinite Flags: spd_normal skip_test 第3、4步操作的目的主要是對主機自帶串口及PCI擴展串口的區帶指別。區別在褲殲於4顯示的內容中UART:未知unknow。不過若您檢測這一步的時候 UART為16550A而不是unknow,證明你的系統已經認識了擴展的串口,不需要進一步設置,直接跳入第8步測試就可以了。 5、設置好了後是不是需要測試一下是否能夠通訊呢?最好的辦法是兩台pc相連。如果pc為windows操作系統就用超級終端,是linux呢就用minicom吧 6、裝有linux的機器,首先需要設置一下監聽的串口參數,輸入命令 #minicom -s 進入界面後有個框彈出來,如果你學過英文的話,就會知道選擇哪個的。應該是第三個吧,串口參數設置。 將第一行更改為 /dev/ttyUSB0 波特率也更改您所需要的。 更改完後保存,蠢純配保存的那個菜單應該是 save ... df1 最後exit 7.重啟minicom, 復位目標板,看是否有列印信息?如果沒有請確認:a)USB/串口線沒問題,b)確認你使用的USB口是第一個(一個個的試吧,一般電腦不會標示出來) 在另外一台機器發送數據,這台機器minicom界面就能夠收到信息了。另外不要把兩個COM順序弄翻了,如果弄錯了哪個是COM3 COM4測試可就不靈便咯。
⑤ linux怎麼檢測不到USB設備
方毀瞎法一拍旅:在/etc/init.d/rcS中添加mount -t usbfs none /proc/bus/usb. 方法二:在shell中輸入mount -t usbfs /proc/bus/usb /proc/bus/usb. 前提是在編譯內襲余凳核時選中usb device filesystem。
⑥ linux 如何判斷usb驅動是2.0
看設備信息。
lsusb 可以看到系統中的usb設備信息。
lsusb -v 具體輸出。裡面的bcdUSB是usb的版本號。
0x0110是usb1.1
0x0200是usb2.0
在初始化過程瞎穗中,除了F2812自身初始化外,還要完成對ISP1581各個端點使用的傳輸類型、傳輸包大小和中斷類型及方式等設備任務。F2812對 ISP1581的操作是通過寫/讀寄存器來實現的。初始化結束後,通過設置ISP1581方式寄存器中的軟體連接位(SOFTCT)可使外設連接到USB 匯流排上。《Linux就該這么學》一起學更多linux知識。
主機檢測到有設備連接後會進行匯流排復位。在此期間,ISP1581將發送高速(HS)模式檢測信號來判斷主控制器支持的是USB2.0還是 USB1.1規范,若接收到一個高速(HS)握手信號,則表明鍵臘有一個HS主磨亮卜機與匯流排相連,此此ISP1581將轉換到高速(HS)狀態,否則仍工作在全速(FS)狀態。
⑦ linux操作系統怎麼識別USB介面設備
linux系統會自動識別USB介面為串口磁碟sda(通常為sda1,可通過fdisk
-l命令查詢),掛載版就可用權。
例:新建掛載目錄mkdir
/mnt/usb,掛載mount
/dev/sda1
/mnt/usb,用完卸載掛起點unmount
/dev/sda1
/mnt/usb。
⑧ 嵌入式linux驅動識別設備的過程
驅動程序識別設備時,有以下兩種方法:
(1)驅動程序本身帶有設備的信息,比如開始地址、中斷號等:載入驅動程序時,就可以根據這些信息來識別設備。
(2)驅動程序本身沒有設備的信息,但是內核中已經(或以後)根據其他方式確定了很多設備的信息;載入驅動程序時,將驅動程序與這些設備逐個比較,確定兩者是否匹配(match)。如果驅動程序與某個設備匹配,就可以通過該驅動程序操作這個設備了。內核常使用第二種方法來識別設備,這可以將各種設備集中在-一個文件中管理,當開發板的配置改變時,便於修改代碼。在內核文件include/linux/platform _device.h 中,定義了兩個數據結構來表示這些設備和驅動程序: platform_ device 結構用來描述設備的名稱、ID、所佔用的資源(比如內存地址/大小、中斷號)等; platform_ driver 結構用來描述各種操作函數, 比如枚舉函數、移除設備函數、驅動的名稱等。內核啟動後,首先構造鏈表將描述設備的platform_device結構組織起來,得到一一個設備的列塵搜表:當載入某個驅動程序的platform_ driver 結構時清兄局,使用一.些匹配函數來答讓檢查驅動程序能否支持這些設備,常用的檢查方法很簡單:比較驅動程序和設備的名稱。
⑨ linux下怎麼查找usb對應的設備,比如滑鼠....
1、首先Linux 系統使用 /dev 目錄下特定的設備文件來標識插入的設備。會發現該目錄下的某些文件,包括 /dev/sda 或者 /dev/hda 表示第一個主設備,每個分區使用一個數字來表示,比如 /dev/sda1 或 /dev/hda1 表示主設備的第一個分區等。
⑩ 怎麼查看linux usb設備驅動
下面的信息都是在VMware中運行Ubuntu12-04系統上執行的。同樣該命令也支持在嵌入式系統中進行USB調試。
一、cat設備節點獲取信息
在一些嵌入式開發中需要調試USB功能,經常會cat /sys 下的相關設備節點來查看某些信息,比如說我們可以看到 /sys/bus/usb/devices 目錄有多個子目錄。進入到某個子目錄可以看到usb設備更加詳細的信息(可以理解為設備描述符)。
1、usb設備在匯流排上的信息
// usb設備在匯流排上的信息
root@ubuntu:/sys/kernel/debug# cd /sys/bus/usb/devices
root@ubuntu:/sys/bus/usb/devices# ll
total 0
drwxr-xr-x 2 root root 0 Nov 26 21:21 ./
drwxr-xr-x 4 root root 0 Nov 26 21:21 ../
lrwxrwxrwx 1 root root 0 Nov 26 21:21 1-0:1.0 -> ../../../devices/pci0000:00/0000:00:11.0/0000:02:03.0/usb1/1-0:1.0/
lrwxrwxrwx 1 root root 0 Dec 15 23:10 1-1 -> ../../../devices/pci0000:00/0000:00:11.0/0000:02:03.0/usb1/1-1/
lrwxrwxrwx 1 root root 0 Dec 15 23:18 1-1:1.0 -> ../../../devices/pci0000:00/0000:00:11.0/0000:02:03.0/usb1/1-1/1-1:1.0/
lrwxrwxrwx 1 root root 0 Nov 26 21:21 2-0:1.0 -> ../../../devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-0:1.0/
lrwxrwxrwx 1 root root 0 Nov 26 21:21 2-1 -> ../../../devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-1/
lrwxrwxrwx 1 root root 0 Nov 26 21:21 2-1:1.0 -> ../../../devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-1/2-1:1.0/
lrwxrwxrwx 1 root root 0 Nov 26 21:21 2-2 -> ../../../devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-2/
lrwxrwxrwx 1 root root 0 Nov 26 21:21 2-2:1.0 -> ../../../devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-2/2-2:1.0/
lrwxrwxrwx 1 root root 0 Nov 26 21:21 usb1 -> ../../../devices/pci0000:00/0000:00:11.0/0000:02:03.0/usb1/
lrwxrwxrwx 1 root root 0 Nov 26 21:21 usb2 -> ../../../devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/
其中 usbx/第x個匯流排,x-y:a.b/的目錄格式,x表示匯流排號,y表示埠,a表示配置,b表示介面。
具體解釋可以參照如下:
The names that begin with "usb" refer to USB controllers. More accurately, they refer to the "root hub" associated with each controller. The number is the USB bus number. In the example there is only one controller, so its bus is number 1. Hence the name "usb1".
"1-0:1.0" is a special case. It refers to the root hub's interface. This acts just like the interface in an actual hub an almost every respect; see below.
All the other entries refer to genuine USB devices and their interfaces. The devices are named by a scheme like this:
bus-port.port.port ...
In other words, the name starts with the bus number followed by a '-'. Then comes the sequence of port numbers for each of the intermediate hubs along the path to the device.
For example, "1-1" is a device plugged into bus 1, port 1. It happens to be a hub, and "1-1.3" is the device plugged into port 3 of that hub. That device is another hub, and "1-1.3.1" is the device plugged into its port 1.
The interfaces are indicated by suffixes having this form:
:config.interface
That is, a ':' followed by the configuration number followed by '.' followed by the interface number. In the above example, each of the devices is using configuration 1 and this configuration has only a single interface, number 0. So the interfaces show up as;
1-1:1.0 1-1.3:1.0 1-1.3.1:1.0
A hub will never have more than a single interface; that's part of the USB spec. But other devices can and do have multiple interfaces (and sometimes multiple configurations). Each interface gets its own entry in sysfs and can have its own driver.
2、特定設備的詳細信息
進入到某個目錄中去,可以看到該設備的詳細信息,可用cat命令獲取信息。
// usb設備的詳細信息
root@ubuntu:/sys/bus/usb/devices/usb1# ll
total 0
drwxr-xr-x 6 root root 0 Nov 26 21:21 ./
drwxr-xr-x 4 root root 0 Nov 26 21:21 ../
drwxr-xr-x 10 root root 0 Nov 26 21:21 1-0:1.0/
drwxr-xr-x 5 root root 0 Dec 15 23:10 1-1/
-rw-r--r-- 1 root root 4096 Dec 15 23:40 authorized
-rw-r--r-- 1 root root 4096 Dec 15 23:40 authorized_default
-rw-r--r-- 1 root root 4096 Dec 15 23:40 avoid_reset_quirk
-r--r--r-- 1 root root 4096 Nov 26 21:21 bcdDevice
-rw-r--r-- 1 root root 4096 Nov 26 21:21 bConfigurationValue
-r--r--r-- 1 root root 4096 Nov 26 21:21 bDeviceClass
-r--r--r-- 1 root root 4096 Nov 26 21:21 bDeviceProtocol
-r--r--r-- 1 root root 4096 Nov 26 21:21 bDeviceSubClass
-r--r--r-- 1 root root 4096 Dec 15 23:40 bmAttributes
-r--r--r-- 1 root root 4096 Dec 15 23:40 bMaxPacketSize0
-r--r--r-- 1 root root 4096 Dec 15 23:40 bMaxPower
-r--r--r-- 1 root root 4096 Dec 15 23:40 bNumConfigurations
-r--r--r-- 1 root root 4096 Dec 15 23:40 bNumInterfaces
-r--r--r-- 1 root root 4096 Nov 26 21:21 busnum
-r--r--r-- 1 root root 4096 Dec 15 23:40 configuration
-r--r--r-- 1 root root 65553 Nov 26 21:21 descriptors
-r--r--r-- 1 root root 4096 Dec 15 23:40 dev
-r--r--r-- 1 root root 4096 Nov 26 21:21 devnum
-r--r--r-- 1 root root 4096 Dec 15 23:40 devpath
lrwxrwxrwx 1 root root 0 Nov 27 20:06 driver -> ../../../../../bus/usb/drivers/usb/
drwxr-xr-x 3 root root 0 Dec 15 23:40 ep_00/
-r--r--r-- 1 root root 4096 Nov 26 21:21 idProct
-r--r--r-- 1 root root 4096 Nov 26 21:21 idVendor
-r--r--r-- 1 root root 4096 Dec 15 23:40 ltm_capable
-r--r--r-- 1 root root 4096 Nov 26 21:21 manufacturer
-r--r--r-- 1 root root 4096 Dec 15 23:40 maxchild
drwxr-xr-x 2 root root 0 Nov 26 21:21 power/
-r--r--r-- 1 root root 4096 Nov 26 21:21 proct
-r--r--r-- 1 root root 4096 Dec 15 23:40 quirks
-r--r--r-- 1 root root 4096 Nov 26 21:21 removable
--w------- 1 root root 4096 Dec 15 23:40 remove
-r--r--r-- 1 root root 4096 Nov 26 21:21 serial
-r--r--r-- 1 root root 4096 Nov 26 21:21 speed
lrwxrwxrwx 1 root root 0 Nov 26 21:21 subsystem -> ../../../../../bus/usb/
-rw-r--r-- 1 root root 4096 Nov 26 21:21 uevent
-r--r--r-- 1 root root 4096 Dec 15 23:40 urbnum
-r--r--r-- 1 root root 4096 Dec 15 23:40 version
二、使用debugfs
1、掛載 debugfs 到 /sys/kernel/debug 路徑下
root@ubuntu:mount -t debugfs none /sys/kernel/debug
2、執行上述步驟之後,在 /sys/kernel/debug 就會生成如下的文件
root@ubuntu:/sys/bus/usb/devices# cd /sys/kernel/debug/
root@ubuntu:/sys/kernel/debug# ll
total 0
drwx------ 22 root root 0 Nov 26 21:21 ./
drwxr-xr-x 7 root root 0 Nov 26 21:21 ../
drwxr-xr-x 2 root root 0 Nov 26 21:21 acpi/
drwxr-xr-x 32 root root 0 Dec 4 16:30 bdi/
drwxr-xr-x 2 root root 0 Nov 26 21:21 bluetooth/
drwxr-xr-x 2 root root 0 Nov 26 21:21 cleancache/
drwxr-xr-x 2 root root 0 Nov 26 21:21 dma_buf/
drwxr-xr-x 4 root root 0 Nov 26 21:21 dri/
drwxr-xr-x 2 root root 0 Nov 26 21:21 dynamic_debug/
drwxr-xr-x 2 root root 0 Nov 26 21:21 extfrag/
drwxr-xr-x 2 root root 0 Nov 26 21:21 frontswap/
-r--r--r-- 1 root root 0 Nov 26 21:21 gpio
drwxr-xr-x 3 root root 0 Nov 26 21:21 hid/
drwxr-xr-x 2 root root 0 Nov 26 21:21 kprobes/
drwxr-xr-x 3 root root 0 Nov 26 21:21 kvm-guest/
drwxr-xr-x 2 root root 0 Nov 26 21:21 mce/
drwxr-xr-x 2 root root 0 Nov 26 21:21 pinctrl/
-r--r--r-- 1 root root 0 Nov 26 21:21 pwm
drwxr-xr-x 2 root root 0 Nov 26 21:21 regmap/
drwxr-xr-x 3 root root 0 Nov 26 21:21 regulator/
-rw-r--r-- 1 root root 0 Nov 26 21:21 sched_features
-r--r--r-- 1 root root 0 Nov 26 21:21 sleep_time
-r--r--r-- 1 root root 0 Nov 26 21:21 suspend_stats
drwxr-xr-x 7 root root 0 Nov 26 21:21 tracing/
drwxr-xr-x 3 root root 0 Nov 26 21:21 usb/
drwxr-xr-x 2 root root 0 Nov 26 21:21 virtio-ports/
-r--r--r-- 1 root root 0 Nov 26 21:21 vmmemctl
-r--r--r-- 1 root root 0 Nov 26 21:21 wakeup_sources
drwxr-xr-x 2 root root 0 Nov 26 21:21 x86/
3、cat 設備節點
執行下述命令之後會以特定格式列印目前USB匯流排上所有USB設備的信息如下:
root@ubuntu:/sys/kernel/debug# cat usb/devices
T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 17/900 us ( 2%), #Int= 1, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0001 Rev= 3.13
S: Manufacturer=Linux 3.13.0-32-generic uhci_hcd
S: Proct=UHCI Host Controller
S: SerialNumber=0000:02:00.0
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0e0f ProdID=0003 Rev= 1.03
S: Manufacturer=VMware
S: Proct=VMware Virtual USB Mouse
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=02 Driver=usbhid
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=1ms
T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 3 Spd=12 MxCh= 7
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0e0f ProdID=0002 Rev= 1.00
S: Proct=VMware Virtual USB Hub
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=255ms
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 6
B: Alloc= 0/800 us ( 0%), #Int= 1, #Iso= 0
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0002 Rev= 3.13
S: Manufacturer=Linux 3.13.0-32-generic ehci_hcd
S: Proct=EHCI Host Controller
S: SerialNumber=0000:02:03.0
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 7 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs= 1
P: Vendor=0bda ProdID=0129 Rev=39.60
S: Manufacturer=Generic
S: Proct=USB2.0-CRW
S: SerialNumber=20100201396000000
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=06 Prot=50 Driver=rts5139
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=83(I) Atr=03(Int.) MxPS= 3 Ivl=64ms
至於信息的詳細解析可以參照 Linux源代碼中 Documentation/usb/proc_usb_info.txt 文件。現摘錄其中對該格式的詳細解釋:
| | |__Proct ID code
| |__Vendor ID code
|__Device info tag #2
String descriptor info:
S: Manufacturer=ssss
| |__Manufacturer of this device as read from the device.
| For USB host controller drivers (virtual root hubs) this may
| be omitted, or (for newer drivers) will identify the kernel
| version and the driver which provi