$ dmesg | grep usb
... 显示插入/拔出 USB 时的状态变化
$ lsusb -v
将 USB 列为“集线器”
$ usb-devices
没有给我想要的输出:
T: Bus=02 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 6 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=06c2 ProdID=007b Rev=01.01
S: Manufacturer=Phidgets Inc.
S: Product=PhidgetStepper
S: SerialNumber=267330
C: #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=96mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
... 但反而:
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 3
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0002 Rev=03.05
S: Manufacturer=Linux 3.5.0-mt9v034+ ehci_hcd
S: Product=OMAP-EHCI Host Controller
S: SerialNumber=ehci-omap.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
有什么想法可以解释为什么低级内核能够识别 USB 的变化...但却无法对设备进行更高级别的识别(例如usb-devices
)?
还值得注意的是,这是试图控制 phidgets 步进机,并在 Linux 上进行了验证正确的安装这些方向。
在主机启动时我也碰巧通过以下方式收到此错误dmesg
:
[ 0.152526] usbhs_omap usbhs_omap: xclk60mhsp2_ck set parentfailed error:-22
我刚刚发现这个新命令:
$ hwinfo --usb
恰巧给出了一个充满错误的输出:
hal.1: read hal dataprocess 1711: arguments to dbus_move_error() were incorrect, assertion "(dest) == NULL || !dbus_error_is_set ((dest))" failed in file ../../dbus/dbus-errors.c line 282.
This is normally a bug in some application using the D-Bus library.
libhal.c 3483 : Error unsubscribing to signals, error=The name org.freedesktop.Hal was not provided by any .service files
07: USB 00.0: 10a00 Hub
[Created at usb.122]
Unique ID: k4bc.qEeA4IsuqFC
SysFS ID: /devices/platform/usbhs_omap/ehci-omap.0/usb1/1-0:1.0
SysFS BusID: 1-0:1.0
Hardware Class: hub
Model: "Linux 3.5.0-mt9v034+ ehci_hcd OMAP-EHCI Host Controller"
Hotplug: USB
Vendor: usb 0x1d6b "Linux 3.5.0-mt9v034+ ehci_hcd"
Device: usb 0x0002 "OMAP-EHCI Host Controller"
Revision: "3.05"
Serial ID: "ehci-omap.0"
Driver: "hub"
Driver Modules: "usbcore"
Speed: 480 Mbps
Module Alias: "usb:v1D6Bp0002d0305dc09dsc00dp00ic09isc00ip00"
Config Status: cfg=new, avail=yes, need=no, active=unknown
编辑:
安装 hal 后
$ sudo apt-get install hal
输出
$ hwinfo --usb
清理:
07: USB 00.0: 10a00 Hub
[Created at usb.122]
UDI: /org/freedesktop/Hal/devices/usb_device_1d6b_2_ehci_omap_0_if0
Unique ID: k4bc.qEeA4IsuqFC
SysFS ID: /devices/platform/usbhs_omap/ehci-omap.0/usb1/1-0:1.0
SysFS BusID: 1-0:1.0
Hardware Class: hub
Model: "Linux 3.5.0-mt9v034+ ehci_hcd OMAP-EHCI Host Controller"
Hotplug: USB
Vendor: usb 0x1d6b "Linux 3.5.0-mt9v034+ ehci_hcd"
Device: usb 0x0002 "OMAP-EHCI Host Controller"
Revision: "3.05"
Serial ID: "ehci-omap.0"
Driver: "hub"
Driver Modules: "usbcore"
Speed: 480 Mbps
Module Alias: "usb:v1D6Bp0002d0305dc09dsc00dp00ic09isc00ip00"
Config Status: cfg=new, avail=yes, need=no, active=unknown
启动似乎也引发了一个问题:
$ dmesg grep | USB
启动时显示这两个错误:
[ 0.067077] usbhs_omap: alias fck already exists
...
[ 0.152496] usbhs_omap usbhs_omap: xclk60mhsp2_ck set parentfailed error:-22
根据要求:
$ sudo uname -a
Linux statler 3.5.0-mt9v034+ #1 PREEMPT Thu May 30 22:23:53 UTC 2013 armv7l armv7l armv7l GNU/Linux
... 以及来自:$ sudo lsusb -v 的输出
答案1
您的 USB 是否在 BIOS 和 Linux 中配置为传统模式和/或 USB 3.0?看起来它可能正在尝试使用其中之一,但两者都未设置。
查找 hwinfo --usb 输出中给出的供应商 ID 表明您的视频和/或 USB 驱动程序配置不正确。由于您需要 EHCI 才能使 USB 正常工作,并且这表明您的 HAL 正在抛出错误,因此可以肯定地说,您的 USB 问题就是由此引起的。
更新:看来该主板的某些版本可能不支持 USB 2.0 或者可能需要内置 USB_OTG 支持。我找到了一些 Beagle 主板指南,应该涵盖了你可能拥有的任何设置,但可能性太多,无法在此全部涵盖。
PS 如果您正在使用 beagleboard 之外的东西,这些仍然会为该芯片提供良好的信息,但当然您不会想将任何东西直接刷入您的设备。
要了解某些 USB 类型之间的差异以及它们的功能,请参见: http://elinux.org/BeagleBoard#EHCI
适用于不同 USB 配置的主板的 uboot 补丁:
https://groups.google.com/forum/#!topic/beagleboard/2xhpUT2jzLE/discussion
适用于 OMAP 的核心 Linux USB 驱动程序:
http://cateee.net/lkddb/web-lkddb/MFD_OMAP_USB_HOST.html
希望这可以帮助!