Linux & Ubuntu
Ubuntu 환경에서 시리얼 포트 사용법
안모
2023. 6. 23. 23:57
ubuntu 환경에서 USB포트에 하드웨어 보드를 연결하고 platformIO를 사용해 업로드하면 시리얼 포트를 찾을 수 없어 에러가 발생한다.
기본적으로 우분투 환경은 시리얼 포트 사용 권한이 허가되어 있지 않음. 따라서 시리얼 포트를 사용할 수 있는 그룹에 유저를 추가해야 함.
문제는 시리얼 포트를 사용 권한을 주려고 해도 ttyUSB0가 없거나 다른 원인으로 막히는 경우가 많음.
우선 룰을 추가해서 확인해보고, 문제가 생기는 부분을 remove해야 한다.
PlatformIO에서 소개하는 시리얼 포트 개방법은 다음과 같다.(https://docs.platformio.org/en/latest/core/installation/udev-rules.html#platformio-udev-rules)
1. 시리얼 포트에 대한 룰을 생성해야 한다. 터미널에 해당 커맨드를 입력하면 룰 파일이 생성된다.
curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/develop/platformio/assets/system/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules
2. udev를 재시작 한다.
sudo service udev restart
3. 유저를 시리얼포트 이용 권한을 가진 그룹에 추가한다. $USER에는 현재 이용중인 유저이름을 입력한다. lock은 해당 그룹이 없다고 에러가 날 수 있다.
sudo usermod -a -G dialout $USER
sudo usermod -a -G plugdev $USER
sudo usermod -a -G uucp $USER
sudo usermod -a -G lock $USER
이 과정을 마치고 변경사항을 적용하기 위해 재시작한다.
추가로 usb를 연결하면 sudo dmesg | grep tty 커맨드 입력시 ttyUSB0가 보여야 하는데 생성되지 않을 경우가 있다.
sudo apt remove brltty 명령어로 brltty를 제거하면 제대로 인식된다고 한다.