识别连接的 USB 和内置 USB

5
我已经通过 USB 将 Android 手机连接到 Odroid。现在,当我在 Odroid 上执行 'lsusb' 命令时,会得到以下输出:

总线 001 设备 001:ID 1d6b:0002
总线 002 设备 001:ID 1d6b:0001
总线 001 设备 002:ID 0424:2514
总线 001 设备 004:ID 0bdb:190d
总线 001 设备 005:ID 1004:618e

sys/bus/usb/devices 的列表如下:

usb1
1-0:1.0
usb2
2-0:1.0
1-1
1-1:1.0
1-1.1
1-1.1:1.0
1-1.1:1.1
1-1.1:1.2
1-1.1:1.3
1-1.1:1.4
1-1.1:1.5

现在我需要知道哪个是内置的,哪个是连接的...

通过手动检查供应商ID和产品ID,我可以确定最后一个在lsusb中的是我的安卓手机,并且类似地检查“2-0:1.0”目录中的“uevent”文件。

编程上,我正在解析bDeviceClass、product、idVendor、product、manufacturer等信息来获取信息。

但是是否有任何标志或文件中的其他额外信息可以告诉我哪个USB是连接的,哪个USB是内置的?

希望我的问题清楚明了。


你在 lsusb -v 上得到了什么信息吗? - bgs
你找到这个问题的解决方案了吗?请帮帮我。 - Neha Shukla
1个回答

2
您可以使用dmesg的输出来查找已连接的设备。
   $ dmesg | grep usb
    [225415.950096] usb 1-1: new high speed USB device using ehci_hcd and address 10
    [225416.104344] usb 1-1: New USB device found, idVendor=0fce, idProduct=2149
    [225416.104358] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [225416.104369] usb 1-1: Product: SEMC HSUSB Device
    [225416.104376] usb 1-1: Manufacturer: SEMC
    [225416.104383] usb 1-1: SerialNumber: 43423531315133584454
    [225416.109151] scsi7 : usb-storage 1-1:1.1
    [226418.198922] usb 1-1: USB disconnect, address 10

谢谢您的回复。但是从输出中很难确定哪个已连接,哪个未连接...这不是清晰表述。同时,由于我的Odroid中的输出文本不同,因此在程序上解析也很困难,无法通用化。 - Vijay C
好的,没问题。我认为你应该尽量澄清一下你的问题。对我来说,“内置一个”是不清楚的,我可以猜测它是一个USB端口,但这仍然只是猜测。如果你以更一般的术语提问,那么有足够Linux内核知识的人会告诉你如何轮询USB设备及其连接状态。祝你好运! - Ярослав Рахматуллин
请查看此帖子中的链接(http://www.cygnal.org/ubb/Forum9/HTML/001544.html),并了解hal和udev。 - Ярослав Рахматуллин
Android没有udev,它使用一个init守护进程“ueventd”通过netlink套接字读取来自内核的uevents。 - m-ric

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接