USB-Serial 사용시 /dev/ttyUSB 장치가 생성되지 않는 경우
적용 대상
- ComfilePi (예: CPi-S070WR)
- Debian 11 (Bullseye) 기반 Linux
- Raspberry Pi OS 계열
증상
- 기존 소스 코드에서 시리얼 포트 오픈 오류 발생
- /dev/ttyUSB0 장치가 보이지 않음
- ls /dev/ttyUSB* 실행 시 “No such file or directory” 출력
예시 코드:
portID = string.Format("/dev/ttyUSB{0}", _nUsbID); _serialPort = new BaseSerialPort(portID, 38400, Parity.None, 8, StopBits.One); _serialPort.Open();
원인
USB-Serial 어댑터가 연결되지 않으면 Linux에서 /dev/ttyUSB* 장치 파일이 생성되지 않습니다.
즉, 하드웨어가 연결되어 있어야 해당 장치 파일이 자동으로 생성됩니다.
확인 방법
1) USB-Serial 어댑터를 연결합니다.
2) 아래 명령을 실행합니다.
lsusb ls -alh /dev/ttyUSB* dmesg | grep tty
정상 동작 시:
- /dev/ttyUSB0 또는 /dev/ttyUSB1 등의 장치가 표시됩니다.
해결 방법
- USB-Serial 어댑터를 먼저 연결합니다.
- /dev/ttyUSB* 생성 여부를 확인합니다.
- 필요 시 USB-Serial 칩셋(FTDI, CH340 등) 드라이버 인식 여부를 확인합니다.
핵심 정리
- /dev/ttyUSB* 장치는 자동으로 생성되지 않습니다.
- USB-Serial 어댑터가 물리적으로 연결되어야 생성됩니다.
- 장치 파일이 없다면 소프트웨어 문제가 아닌 하드웨어 미연결 문제일 가능성이 높습니다.
