USB CDC 장치에 연결할 수 없습니다

USB CDC 장치에 연결할 수 없습니다

USB를 통해 연결된 8채널 USB 릴레이 보드가 있습니다. 위원회 매뉴얼에는 다음과 같이 명시되어 있습니다.

Linux에서 이 제품을 사용하려면 USB CDC 드라이버를 커널에 컴파일해야 합니다. 다행히 대부분의 Linux 배포판(Ubuntu, Redhat, Debian 등)에는 이 드라이버가 사전 설치되어 제공됩니다.

USB CDC 드라이버를 포함하기 위해 커널을 다시 빌드해야 할 가능성은 매우 적습니다.

Linux 컴퓨터에 연결하면 제품이 /dev 디렉터리에 직렬 포트로 나타나야 합니다. 일반적으로 장치 이름은 ttyACMx이와 유사합니다. 이름은 사용 중인 Linux 배포판에 따라 다를 수 있습니다.

제 경우에는(젠투 실행) USB CDC ACM용 드라이버를 커널에 포함시켜야 했습니다.

릴레이를 연결하면 다음을 사용하여 이를 볼 수 있습니다 dmesg.

[76094.036163] usb 4-1: new full-speed USB device number 4 using uhci_hcd
[76094.618717] usb 4-1: New USB device found, idVendor=2a19, idProduct=0c02
[76094.618722] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[76094.618725] usb 4-1: Product: Numato Lab 8 Channel USB Relay Module
[76094.618728] usb 4-1: Manufacturer: Numato Systems Pvt. Ltd.

달리기 lsusbttyACM0나타납니다. 그러나 명령 문자열을 보내도 echo -ne 'string' > /dev/ttyACM0아무런 효과가 없습니다. 또한 ls -alof는 캐릭터 장치 파일 /dev이 아님을 나타냅니다 . ttyACM0실제로 다음과 같이 표시됩니다.

-rw-rw-rw- 1 root root 13 Nov 9 09:38 ttyACM0

다른 드라이버나 모듈을 활성화해야 합니까? 왜 ttyACM0문자 장치로 표시되지 않습니까 ? 명령을 보내는 방식에 문제가 있나요 ttyACM0?

회사에서 제공하는 Windows 드라이버를 설치한 후 Windows에서 릴레이가 성공적으로 실행되었습니다. PuTTY를 사용하여 아무 문제 없이 명령을 보낼 수 있지만 Linux에서는 내가 무엇을 하고 있지 않은지 알 수 없습니다.

답변1

이 장치 /dev/ttyACM0는 가상 직렬 포트입니다. PuTTY, minicom 또는 screen과 같은 터미널 에뮬레이터를 사용하여 연결해야 합니다. screen을 사용하면 다음과 같은 것을 실행할 수 있습니다.

screen /dev/ttyACM0 9600

여기서 9600은 전송 속도입니다. 이를 통해 이사회와 소통할 수 있는 대화형 세션이 제공됩니다.

답변2

USB CDC ACM용 드라이버를 커널에 포함해야 했습니다.

나는 당신이 그것을 어떻게 구현했는지 쓰지 않았지만 당신과 같은 문제에 직면했습니다.아날로그 입력이 있는 Numato 8채널 USB GPIO 모듈목록에 없음/dev/ttyACM0 나는 간단히 다음과 같이 해결했습니다.

sudo apt install linux-modules-extra-raspi

마지막으로 읽기/쓰기에 사용할 수 있는 /dev/ttyACM0이 있습니다.

주제를 정리하는 데 도움이 되기를 바랍니다.

관련 정보