2017-10-27 8 views
1

학교에서 로봇 공학 프로젝트를위한 Variance VMU931 관성 측정 장치 (IMU)를 구입했으며 우분투에서 랩톱과 확실히 통신하기 위해 고심하고 있습니다. 나는 8n1 패리티 ㅋ ㅋ ㅋ ㅋ ㅋ를 사용하여 그것에 연결하는 termios와 C + +를 사용하고 있습니다. 내가 생각할 수있는 설정의 모든 순열을 시도하고, 나는 여전히 안정적으로 IMU에 명령을 보낼 수 없습니다.Windows와 Linux의 USB 시리얼의 차이점

나는 Variense 지원을 호출하여 소프트웨어를 작성한 엔지니어에게 말했으며, 알려진 문제라고 말했다. 분명히 그것은 Windows에서 완벽하게 작동합니다 (그리고 Windows 데모 소프트웨어는 내 장치에서 잘 작동 함). 그러나 Windows와 Linux의 USB 직렬 에뮬레이션 간에는 큰 차이가 없습니다.

이 파일의 맨 위에있는 생성자는 내가 열고 포트를 구성하고 방법을 보여줍니다

https://github.com/jsford/FFAST/blob/master/VMU931/src/vmu.cpp

어떤 도움이 좋을 것. 나는 이걸로 내 머리를 찢어 버렸어! 감사합니다.

답변

1

다른 매개 변수로 테스트를 실행하려면 cu 유틸리티를 사용하십시오.

문제를 디버깅하려면 Linux에서 직접 Wireshark를 사용하여 USB 패킷 캡처를 실행하고 VirtualBox/VmWare에서 실행되는 Windows VM에서도 실행하십시오. 트래픽을 비교하십시오.

해당 USB 장치에 대해 선택된 커널 모듈을 확인하십시오. 이를 위해서는 /sys/ 파일 시스템을 사용하십시오.이 가상 fs는 커널에서 사용 된 정보를 가지고 있습니다. 또한, lsmod -kind 명령은 커널 모듈 사용법을 보여줍니다. USB에 대한 드라이버 선택은 <usb-manufacturer-id>:<usb-product-id>과 같은 것에 달려 있습니다.

printf을 커널 모듈에 넣고 어디에서 실패했는지 확인하십시오. 커널 모듈을 다시 빌드하려면 DKMS 빌드 시스템을 사용하십시오. 리눅스 어딘가에 커널 모듈을 블랙리스트/화이트리스트에 등록하는 설정 파일이 있습니다. 올바른 파일이로드되었는지 확인하는 데 유용합니다.

USB 직렬 장치 드라이버를 수정하기 위해 내가 그랬습니다.