Linux(Fedora)에서 자동 직렬 포트 감지 비활성화

Linux(Fedora)에서 자동 직렬 포트 감지 비활성화

내가 사용하고 있는 장치는 usb-com 직렬 어댑터를 통해 내 Linux(Fedora21) PC에 연결되어 있습니다. 장치가 연결되고 시스템에 /dev/ttyACM0이 생성되면 시스템은 초기화를 위해 일련의 모뎀 AT 명령을 보냅니다.

내 장치는 모뎀이 아니기 때문에 해당 동작을 비활성화하고 싶습니다.

그렇다면 문제는 이러한 탐지를 비활성화하는 방법입니다.

답변1

포트를 조사하는 것은 NetworkManager 제품군의 일부인 ModemManager일 가능성이 높습니다.

시스템에 모뎀(클래식 또는 wwan)이 설치되어 있지 않은 경우 가장 쉬운 방법은 시스템에서 ModemManager를 제거하는 것입니다. 그러한 모뎀이 있는 경우 udev 규칙을 추가하여 장치가 모뎀이 아니며 이를 조사해서는 안 된다는 것을 ModemManager에 알릴 수 있습니다.

ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", ENV{ID_MM_DEVICE_IGNORE}="1"

1234장치의 공급업체 ID와 제품 ID는 어디에 있습니까(다음을 사용하여 5678찾을 수 있음)lsusb

답변2

이것은 --filter-policy=strictModemManager 1.10.0(Ubuntu 18.04)을 사용하는 데 도움이 된 솔루션 입니다.
ModemManager -V

더 자세히 알아볼 수 있습니다:일반적인 udev 태그

파일을 만들고 /etc/udev/rules.d/49-stm32.rules다음 내용을 추가합니다.

# 0483:5740 - STM32 in USB Serial Mode (CN5)
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", ENV{ID_MM_TTY_BLACKLIST}="1"
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", ENV{MTP_NO_PROBE}="1"
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", ENV{ID_MM_PORT_IGNORE}="1"
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", ENV{ID_MM_TTY_MANUAL_SCAN_ONLY}="1"

파일을 저장하고 실행한 후:
sudo udevadm control --reload-rules

그리고 (필요하지 않을 수도 있음):
sudo systemctl restart ModemManager.service

USB 장치를 다시 연결하고(물리적으로 USB 포트를 분리했다가 다시 연결) 즐기세요.

PS 이것은 STM32 CDC Virtual Com 포트를 위한 솔루션입니다. 필요한 경우 PID/VID 및 udev 태그를 변경할 수 있습니다.

관련 정보