루트가 없는 직렬 포트 읽기/쓰기?

루트가 없는 직렬 포트 읽기/쓰기?

Fedora14의 직렬 포트에서 읽기/쓰기용 응용 프로그램을 작성 중인데 루트로 실행하면 제대로 작동합니다. 그런데 일반 사용자로 실행하면 장치(/dev/ttySx)에 액세스하는 데 필요한 권한을 얻을 수 없습니다. 정말 짜증나는 일이군요. 이제 Eclipse를 사용하여 실제로 디버깅할 수 없기 때문입니다.

sudo를 사용하여 Eclipse를 실행하려고 시도했지만 작업 공간이 손상되어 프로젝트를 열 수도 없었습니다. 그래서 일반 사용자가 액세스할 수 있도록 /dev/ttySx에 쓰기 위한 액세스 요구 사항을 낮출 수 있는지 궁금합니다. 가능합니까?

답변1

직렬 포트에 대한 액세스는 장치 파일(예: /dev/ttyS0)의 권한에 따라 결정됩니다. 따라서 당신이 해야 할 일은 장치를 당신이 소유하도록 준비하거나 (더 나은 방법으로) 장치를 소유한 그룹에 속하거나 (Fedora가 지원한다면 그렇게 생각합니다) 장치를 준비하는 것입니다. 로그인에 속합니다. 콘솔 사용자입니다.

예를 들어, 내 시스템(Fedora 아님)에서는 /dev/ttyS0사용자와 그룹이 소유하므로 직렬 장치에 액세스할 수 있도록 그룹에 자신을 추가합니다.rootdialoutdialout

usermod -a -G dialout $USER

답변2

또한 문제를 해결하려면 추가 조치를 취해야 합니다. 연결하려고 할 때 이 문제가 발생했습니다.마이크로:비트 포트에서 /dev/ttyACM0Debian 10을 사용합니다 .

ls -ld /dev/ttyACM0

보여주다:

crw-rw-rw- 1 root dialout 166, 0 Jan  5 16:13 /dev/ttyACM0

이것은 우리가 액세스를 위해 이 포트를 사용할 수 있는 이유를 설명합니다 sudo. 이 포트는 루트가 소유합니다. 또한 루트가 아닌 사용자를 다이얼아웃 그룹에 추가하면 루트가 아닌 사용자 액세스가 허용되는 이유도 설명합니다. 다음 명령을 사용하여 다이얼아웃 그룹에 내 사용자 계정을 추가했습니다 /etc/group.

sudo usermod -a -G 전화 걸기<사용자>

여전히 루트 권한 없이 직렬 포트 모니터를 사용하여 micro:bit에 연결할 수 없습니다.

micro:bit가 설치된 위치 /media:

ls -ld /미디어/<사용자>
drwxr-x---+ 2root4096 1월 5일 12:44<사용자>

이는 micro:bit에 의해 마운트된 디렉토리가 루트의 소유임을 나타냅니다. 이 디렉터리의 소유자와 그룹을 다음으로 변경해야 합니다. <user>:

조나 수도<사용자>/미디어/<사용자>
sudo chgrp   <사용자>/미디어/<사용자>

이제 sudo를 사용하지 않고 직렬 포트 모니터를 사용하여 micro:bit에 연결할 수 있습니다.

답변3

많은 배포판에서는 그룹 멤버십을 사용하여 직렬 포트에 대한 액세스를 활성화합니다. 하지만 아직 Fedora에 대한 자세한 내용은 모릅니다.

답변4

VSCode PlatformIO를 사용하여 ESP32에 연결하려고 할 때도 동일한 문제가 발생했습니다. 사용

sudo chmod -R 777 /dev -R

이 문제를 해결했습니다.

관련 정보