u-Blox USB GPS 장치를 BusyBox 기반 임베디드(armel) Linux 2.6.32 시스템에 연결하려고 합니다. 장치에는 기본 CDC ACM USB 인터페이스가 있습니다. 시스템에는 cdc_acm이 포함되어 있지 않았기 때문에 이를 크로스 컴파일하고 전송하고 설치했는데 성공적으로 로드되었습니다( 에서 확인 dmesg
).
장치를 연결하면 USB 드라이버가 장치의 주소를 올바르게 열거하고 파일을 생성한 드라이버 001:003
에 할당했습니다 . 그러나 직렬 터미널을 사용하거나 명령으로 장치를 열면 ASCII NMEA 명령을 인쇄하는 대신 쓰레기가 인쇄됩니다(이는 다른 두 시스템에서 작동하는 것으로 확인되었습니다).cdc_acm
/dev/ttyACM0
cat
stty
파일을 실행하면 오류가 없습니다(그러나 장치가 직렬 장치가 아닌 USB 장치이기 때문에 보고된 데이터는 분명히 유효하지 않거나 임의적입니다). lsusb -v -s 1:3
또한 장치에 대한 올바른 정보를 보고합니다.
이 문제를 더 이상 디버깅하는 방법을 모르겠습니다. 문제를 식별하고 해결하려면 어떤 조치를 취해야 합니까?
답변1
터미널 설정에 문제가 있는 것 같습니다.
올바른 전송 속도와 원시 모드를 수동으로 설정함으로써 장치에서 의미 있는 데이터를 얻기 시작했습니다.
stty -F /dev/ttyACM0 57600
stty -F /dev/ttyACM0 raw