임베디드 리눅스가 있어요USB 호스트일부 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 장치만 감지되며 최고 속도 장치는 감지되지 않습니다.