Ubuntu 12.04에서 Arduino와 통신하려고 합니다. USB 케이블을 연결하면 Arduino의 직렬 포트가 /dev/ttyUSB0으로 발생합니다. 내가 그것을 사용하여 연결하려고 할 때모자이크, "/dev/ttyUSB0 장치를 열 수 없습니다" 오류가 표시되지만 시작할 때는 표시되지 않습니다.모자이크사용하여sudo. 루트가 아닌 일반 사용자가 직렬 장치에 액세스할 수 있도록 하려면 무엇을 구성해야 합니까?
답변1
여러 가지 옵션이 있습니다:
자동 ACL 할당
Ubuntu에서 실행 중인 systemd-logind 또는 ConsoleKit이 있을 가능성이 높습니다. 이는 현재 콘솔에 로그인되어 있는 사용자 계정에 따라 장치 노드에서 ACL을 자동으로 구성할 수 있습니다. 이러한 ACL은 일반적인 권한에 추가로 액세스 권한을 부여하며 를 사용하여 볼 수 있습니다 getfacl
.
이를 사용하려면 다음을 /etc/udev/rules.d/60-extra-acl.rules
1 에 추가하십시오 .
KERNEL=="ttyUSB[0-9]*", TAG+="udev-acl", TAG+="uaccess"
( 1 예, 파일을 생성합니다. 기본적으로 존재하지 않습니다. 전체 디렉터리는 관리자 사용자 정의를 위한 것입니다.)
그룹 기반 액세스
tty 장치는 일반적으로 특정 장치에 의해 읽기/쓰기 가능합니다.그룹"dialout" 또는 "uucp"와 같은 것입니다. 액세스 권한을 얻으려면 해당 그룹에 자신을 추가하세요.모두직렬 포트:
# gpasswd -a YourUsername dialout
그룹 변경 사항이 적용되도록 로그아웃했다가 다시 로그인하는 것을 잊지 마세요.
권한 또는 소유권 변경
위와 유사한 udev 규칙을 사용하여 "기본" 소유자 및 그룹은 물론 권한도 설정할 수 있습니다(이것이 기본 그룹이 처음에 설정되는 방식입니다). 예를 들어:
KERNEL=="ttyUSB[0-9]*", OWNER="YourUsername"
or: KERNEL=="ttyUSB[0-9]*", GROUP="users", MODE="0660"
or: KERNEL=="ttyUSB[0-9]*", MODE="0666"
OWNER, GROUP 및 MODE 매개변수에 할당할 수 있습니다.
임시 수동 변경
하기 위해서는한 번변경하고 평소 대로 chmod
및/또는 사용하세요.chown
# chown YourUsername /dev/ttyUSB0
or: # chmod a+rw /dev/ttyUSB0