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 어댑터가 물리적으로 연결되어야 생성됩니다.
  • 장치 파일이 없다면 소프트웨어 문제가 아닌 하드웨어 미연결 문제일 가능성이 높습니다.

FAQ : 자주 묻는 질문