我有一个乐器通过 USB 连接到 OpenSuse (11.1 32) 计算机。按照供应商的说明,我向 udev 添加了一条规则:
ATTR{idVendor}=="0e0d", ATTR{idProduct}=="0003", MODE="0666"
有时,USB 会从 USB 2.0 更改为 1.1,但我不知道如何诊断问题。
将仪器插入带有标签“usb1”的端口后,我可以读到:
$ lsusb -t
1-1:1.0: No such file or directory
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/4p, 480M
|__ Port 1: Dev 109, If 0, Class=vend., Driver=, 480M
此时仪器控制正常启动,我们可以用它来采集和处理数据。
但突然通讯中断,但 USB 高速不可用。重复最后一个命令,我得到:
2-1:1.0: No such file or directory
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
|__ Port 1: Dev 25, If 0, Class=vend., Driver=, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/4p, 480M
我不太明白,但好像它以某种方式改变了公交车。但该仪器仍然在带有“usb1”标签的物理位置。
将其连接到带有标签“usb2”的端口我有:
1-2:1.0: No such file or directory
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/4p, 480M
|__ Port 2: Dev 116, If 0, Class=vend., Driver=, 480M
控制恢复的地方。如果我连接回“usb1”,它会更改为:
1-1:1.0: No such file or directory
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/4p, 480M
|__ Port 1: Dev 117, If 0, Class=vend., Driver=, 480M
该仪器需要有一个 USB 2.0 端口才能工作,我不知道什么会导致这种变化。没有连接其他 USB 小工具,据我所知,没有人干扰计算机的正常运行。
我该如何诊断?如何解决这个问题将是一个优点......它与“没有这样的文件或目录“消息何时收到?列表?
正在接听山姆B评论一下,这是一个工业环境。计算机有一个PCI机箱是一个8端口PCI背板,带有一个刀刃包含计算机本身。它有 1 个 cPCI甚至接收卡已堵塞。
我理解这提出了关于不寻常系统的问题。但它运行的是 OpenSuse 11.1,除了事件接收器的驱动程序之外没有任何特殊的东西。
我有更新的更新。我没有考虑如何修改特定端口的速度,而是尝试找到如何从命令行断开和连接 USB 端口,类似于拔出并再次插入它。在我找到的许多网站之间一个带有 bash 简单示例的它尽了自己的一份力量。
# cd /sys/bus/pci/drivers/ehci_hcd
# ll ????:??:??.?
lrwxrwxrwx 1 root root 0 Jun 9 11:32 0000:00:1d.7 -> ../../../../devices/pci0000:00/0000:00:1d.7
# sudo echo -n "0000:00:1d.7" > unbind
# sudo echo -n "0000:00:1d.7" > bind
通过对脚本进行少量修改,我可以恢复 USB 端口速度并重新启动探戈 设备服务器控制仪器并进行数据采集。现在的问题是我需要 root 权限才能执行此操作,但这会有所帮助,因为这些设备没有非常实用的物理访问权限。