dwc2
이 모듈과 함께 USB OTG를 사용하기 위해 Raspberry Pi Zero에 Raspbian Jessie를 설정했습니다 . 지금 내가 하고 싶은 일은주변 장치 측에서 들어오는 USB 트래픽을 스니핑합니다.. 커널 모듈을 찾아서 테스트했지만 usbmon
(분명히 제가 아는 한) 작동하지 않는 것 같습니다. 아무 것도 기록되지 않습니다.
테스트 목적으로 호스트 측(Linux의 다른 컴퓨터)에서 정확히 동일한 작업을 시도했지만 usbmon
불행히도 그것은 나에게 필요한 것이 아닙니다.
결론: 이것이 가능합니까? 그렇다면 어떻게? 이것을 사용할 수 있습니까 usbmon
, 아니면 다른 작업(예: 특정 옵션을 사용하여 커널을 다시 컴파일하는 등)을 수행해야 합니까?
답변1
도구가 USBMon
아직 완성되지 않았습니다.
동일한 이름을 가진 최신 커널 모듈이 있습니다.
커널 모듈 usbmon
을 로드할 수 있는지 확인 modprobe usbmon
하고( ) 다음을 사용하여 USB 트래픽을 스니핑할 수 있습니다.
usbdump
(커널 모듈의 프런트 엔드로usbmon
)- 지시를 따르다https://www.kernel.org/doc/Documentation/usb/usbmon.txt
- 라인샤크https://www.wireshark.org/CaptureSetup/USB
당신은 또한 볼 수 있습니다http://discussions.flightaware.com/ads-b-flight-tracking-f21/monitoring-usb-utilization-on-raspberry-pi-t20691.html
답변2
편리한 RPi가 없기 때문에 이것이 효과가 있는지 확실하게 말할 수는 없지만 다음 명령을 성공적으로 사용하여 원격 시스템에서 USB 트래픽을 모니터링 tcpdump
했습니다 .wireshark
$ ssh user@remotehost 'tcpdump -U -i usbmon2 -w -' | wireshark -k -i -
여기서는 연결된 USB 장치의 버스 ID usbmon2
입니다 . 2
로 이를 얻을 수 있습니다 lsusb
.
답변3
많은 조사 후에는 컨트롤러가 상태에 있을 때 USB 트래픽을 추적하는 것이 불가능해 보입니다(만약 그렇다면 어디에서도 정보를 찾을 수 없습니다).장비(또는 주변기기) 모드. 컨트롤러가 다음과 같이 구성된 경우에만주인.
추적이 생성되지 않기 때문에 usbmon
불행히도 처음부터 해당 추적이 필요하기 때문에 어떤 도구(Wireshark, dumpcap...)도 사용할 수 없습니다.
그래서 지금 해야 할 일은 libcomposite
커널 모듈을 수정하여 디버깅 정보를 추가하거나 심지어 스니핑용으로 설계된 특정 모듈을 작성하는 것입니다(그러나 이는 이 문제에 대한 현재 지식을 훨씬 뛰어넘습니다).