티스토리 뷰



우분투는 기본적으로 root 사용자가 아닌 일반 사용자로 로그인하도록 하기 때문에 시스템 관련 작업을 할때면 가끔은 귀챦을 때도 있습니다. 시리얼(직렬) 포트와 같은 시스템 장치를 다루는 것도 마찬가지로 기본 사용자로는 권한이 없어서 단순한 프로그램인데도 왜 안되지? 하는 혼란에 빠질 수 있습니다. 이런 경우 대부분은 접근 권한이 없기 때문입니다.

"dmesg | grep tty" 명령은 시스템에 사용 가능한 시리얼 포트가 무엇이 있는지 확인할 수 있는 명령입니다. 위의 예제를 보면 ttyS0가 있는 것을 확인할 수 있습니다. 윈도우같으면 COM1 쯤 되는 것입니다. 그런데 시스템 디바이스가 있는 /dev/ttyS0를 ls -l로 조회해보면 소유자(root)와 그룹(dialout)에만 접근 권한이 있으므로 기본 사용자로는 접근할 수가 없습니다.

id -Gn

위의 명령을 입력하면 현재 사용자가 속한 그룹들을 확인할 수 있는데 시리얼 포트 장치의 dialout 그룹이 포함되어 있지 않다면 다음의 명령으로 현재 사용자가 dialout 그룹이 포함되도록 해야 합니다.

sudo adduser $USER dialout 

dialout 그룹에 현재 사용자를 추가한 다음에는 반드시 로그아웃 했다가 다시 로그인해야 적용되므로 주의해야 합니다.

다시 로그인한 다음에 "id -Gn" 명령으로 dialout 그룹에 현재 사용자가 포함되어 있는지 확인한다음에 시리얼 포트에 대한 작업을 수행하면 됩니다.

PC통신에 사용했던 것과 같은 시리얼 통신용 프로그램은 minicom을 활용하면 시리얼 포트 동작을 기본적인 검증할 수 있습니다.


댓글
댓글쓰기 폼