USB 设备连接时在 dmesg 中不显示任何内容,禁用端口

USB 设备连接时在 dmesg 中不显示任何内容,禁用端口

我有一个嵌入式linuxUSB主机它拒绝检测我的一些 USB 设备。主机运行Ubutun 20.04LTS

检测失败期间 dmesg 中不会显示任何内容,之后 USB 端口将无法用于任何 USB 设备,直到主机重新启动。

主机检测到一些设备,包括大容量存储设备和网络摄像头(具有图像和音频接口)。失败的设备包括 Zoom H1n 录音机、USB 转串口适配器电缆和这个设备。我的 Windows 笔记本电脑、Ubuntu 台式机和 Windows 笔记本电脑均成功检测到所有失败的设备另一个运行 Debian 的基于 sama5d27 的嵌入式 Linux SBC

据我了解,这不是缺少内核模块的问题,因为仍应在 dmesg 中报告无法识别/不受支持的设备。

我安装了 usbmon 并在连接一台设备时捕获了此跟踪。这是一个 pcap 表示

c24a4900 803906549 S Ci:1:001:0 s a3 00 0000 0001 0004 4 <
c24a4900 803906679 C Ci:1:001:0 0 4 = 00010000
c24a4900 803906728 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
c24a4900 803906760 C Ci:1:001:0 0 4 = 01050100
c24a4900 803906792 S Co:1:001:0 s 23 01 0010 0002 0000 0
c24a4900 803906822 C Co:1:001:0 0 0
c24a4900 803906849 S Ci:1:001:0 s a3 00 0000 0003 0004 4 <
c24a4900 803906874 C Ci:1:001:0 0 4 = 00010000
c1e14580 804020108 S Ii:1:001:1 -115:2048 4 <
c24a4900 804020218 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
c24a4900 804020293 C Ci:1:001:0 0 4 = 01050000
c24a4900 804020409 S Co:1:001:0 s 23 03 0004 0002 0000 0
c24a4900 804020472 C Co:1:001:0 0 0
c24a4400 804100105 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
c1e14580 804100183 C Ii:1:001:1 0:2048 1 = 04
c1e14580 804100209 S Ii:1:001:1 -115:2048 4 <
c24a4400 804100749 C Ci:1:001:0 0 4 = 01051000
c24a4400 804100826 S Co:1:001:0 s 23 03 0004 0002 0000 0
c24a4400 804100875 C Co:1:001:0 0 0
c24a4400 804320164 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
c24a4400 804320239 C Ci:1:001:0 0 4 = 00010100
c24a4400 804540102 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
c24a4400 804540175 C Ci:1:001:0 0 4 = 00010100
c24a4400 804760112 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
c24a4400 804760185 C Ci:1:001:0 0 4 = 00010100
c24a4400 804980144 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
c24a4400 804980220 C Ci:1:001:0 0 4 = 00010100
c24a4400 804980262 S Co:1:001:0 s 23 01 0014 0002 0000 0
c24a4400 804980294 C Co:1:001:0 0 0
c24a4400 804980329 S Co:1:001:0 s 23 01 0001 0002 0000 0
c24a4400 804980359 C Co:1:001:0 0 0
c24a4400 804980413 S Co:1:001:0 s 23 01 0001 0002 0000 0
c24a4400 804980447 C Co:1:001:0 0 0
c24a4400 804980517 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
c24a4400 804980556 C Ci:1:001:0 0 4 = 00010100
c24a4400 804980586 S Co:1:001:0 s 23 01 0010 0002 0000 0
c24a4400 804980616 C Co:1:001:0 0 0
c24a4400 804980648 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
c24a4400 804980678 C Ci:1:001:0 0 4 = 00010000
c24a4400 805030147 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
c24a4400 805030221 C Ci:1:001:0 0 4 = 00010000
c24a4400 805080107 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
c24a4400 805080176 C Ci:1:001:0 0 4 = 00010000
c24a4400 805130098 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
c24a4400 805130167 C Ci:1:001:0 0 4 = 00010000
c24a4400 805180127 S Ci:1:001:0 s a3 00 0000 0002 0004 4 <
c24a4400 805180195 C Ci:1:001:0 0 4 = 00010000
c1e14580 805180329 C Ii:1:001:1 -2:2048 0

最后一行表示错误状态 -2 ENOENT,这意味着“指定的接口或端点不存在或未启用”,这是由设备发送到主机的。这是什么意思?

为什么主机无法检测到该设备?

答案1

事实证明,这是因为制造商提供的设备树包含 EHCI 但不包含 OHCI。因此,仅检测到高速 USB 设备,而不是全速设备。

相关内容