我有一个硬件产品,它向液晶显示器发送信号。硬件盒(未知芯片组)具有USB-A插座,并连接到LCD显示器上的USB-B插座。液晶显示器在一秒间隔内显示不同的值。我需要用任何基于Linux的机器从硬件盒中读取值。我试过一种Raspberry,它可以连接每个USB和硬件盒。但是,当我试图通过lsusb枚举usb设备时,设备不会出现。它只是显示了我的键盘和鼠标。
当我看到dmesg的输出时,我得到了以下信息:
[ 2.411997] usb 1-1.3: new low-speed USB device number 6 using dwc_otg
[ 2.511983] usb 1-1.3: device descriptor read/64, error -32
[ 2.731995] usb 1-1.3: device descriptor read/64, error -32
[ 3.192015] usb 1-1.3: new low-speed USB device number 8 using dwc_otg
[ 3.292089] usb 1-1.3: device descriptor read/64, error -32
[ 3.512305] usb 1-1.3: device descriptor read/64, error -32
[ 4.292059] usb 1-1.3: new low-speed USB device number 9 using dwc_otg
[ 4.732030] usb 1-1.3: device not accepting address 9, error -32
[ 4.832062] usb 1-1.3: new low-speed USB device number 10 using dwc_otg
[ 5.272043] usb 1-1.3: device not accepting address 10, error -32
[ 5.272238] usb 1-1-port3: unable to enumerate USB device我试过了吡咯烷酮,但不知道从哪个设备读取。我没有得到idVendor和idProduct,我不知道是否有一个驱动程序可以更新或其他什么。
我已经阅读了很多文档,将usb驱动程序的速度设置为1(通过dwc_otg.speed=1也没有帮助)。我在这里尝试了所有的东西:https://www.raspberrypi.org/documentation/configuration/cmdline-txt.md,但是没有任何帮助。我有两个问题:
lsusb列出并在dmesg中出现错误的USB设备?这对我的研究是非常重要的,所以任何帮助都是非常感谢的。
发布于 2020-01-25 05:56:17
您看到的错误消息来自于一个低级的USB故障,基本的USB协议还没有完成,所以Linux可能还不知道idVendor/idProduct。这也是为什么lsusb没有展示它,它还没有真正连接起来。
这里的第一个奇怪之处是它有一个USB A端口,通常在计算机/“主机”端(而B在设备/“小工具”上)。这听起来就像它和显示器一样,是“硬件产品”的功能,就像一台计算机,并且控制着显示器。这听起来像是你试图连接两个USB A端口在一起,这是不应该工作的(或物理上可能的)。
如果你想让你的Pi像显示器一样工作,你很可能需要做很多工作才能让它显示出来。这叫做USB小工具模式。编写程序来实现这一点将是在堆栈溢出时要问的问题;这肯定是软件开发。
如果您的硬件设备也应该连接到计算机,那么它可以实现这两种模式(通常称为USB On-Go)。如果是这样的话,它应该能够与Pi对话,但这不起作用。第一个调试步骤是查看它是否在PC上工作--甚至在Windows上。如果没有,那么我怀疑除了与供应商联系之外,还有更多的事情要做。如果是这样的话,你的Pi可能无法提供足够的电源;确保你使用的是一个好的USB电源与Pi。
顺便说一句:研究这两种设备通信方式的另一件事是将显示器插入你的Pi或计算机中。您可以使用普通USB电缆;看看它是什么类型的设备。如果它显示为监视器(而不是串口).祝好运!
https://unix.stackexchange.com/questions/563998
复制相似问题