USB 포트에 처음으로 설정 권한이 거부되었습니다-우분투 14.04


18

방금 arduino를 꽂고 표시등이 켜져 있지만 깜박임 테스트를 업로드하지 못했습니다. 여기 내 오류가 있습니다 :

Arduino : 1.6.7 (Linux), 보드 : "Arduino / Genuino Uno"

스케치는 1,030 바이트 (3 %)의 프로그램 저장 공간을 사용합니다. 최대 값은 32,256 바이트입니다. 전역 변수는 9 바이트 (0 %)의 동적 메모리를 사용하므로 지역 변수에는 2,039 바이트가 남습니다. 최대 값은 2,048 바이트입니다. avrdude : ser_open () : "/ dev / ttyUSB0"장치를 열 수 없습니다 : 권한이 거부되었습니다 ioctl ( "TIOCMGET") : 장치에 부적절한 ioctl 보드에 업로드하는 데 문제가 있습니다. 제안 사항 은 http://www.arduino.cc/en/Guide/Troubleshooting#upload 를 참조 하십시오 .

이 보고서에는 파일> 환경 설정에서 "컴파일 중 자세한 출력 표시"에 대한 자세한 정보가 있습니다.

usb  ubuntu 


2
@ IgnacioVazquez-Abrams-대답으로 바꿀 수 있습니까? 우리는 비율을 높이려고 노력하고 있습니다. :) 아마도 약간의 복사 및 붙여 넣기가 가능하므로 링크 전용이 아닙니다.
Nick Gammon

나는 모든 단계를 수행했으며 처음으로 효과가있었습니다. 이제 두 번째 프로그램을 업로드하려고하면 'avrdude : ser_open () : "/ dev / ttyUSB0"장치를 열 수 없습니다 : 권한이 거부되었습니다'라는 메시지가 나타납니다. roquet @ roquet-HP-ENVY-x360-m6 -Convertible : ~ $ sudo adduser roquet dialout 사용자 roquet' is already a member of 다이얼 아웃. roquet @ roquet-HP-ENVY-x360-m6- 컨버터블 : ~ $ sudo chmod a + rw / dev / ttyUSB0 roquet @ roquet-HP-ENVY-x360-m6- 컨버터블 : ~ $ ls -l / dev / ttyUSB * crw -rw-rw- 1 루트 다이얼 아웃 188, 0 1 월 20 일 13:12 / dev / ttyUSB0 roquet @ roquet-HP-ENVY-x360-m6-Convertible : ~ $ 그러나 여전히 '권한 거부
Roque Zabalet

답변:


26

에서 문서 :

터미널을 열고 다음을 입력하십시오.

ls -l /dev/ttyACM*

당신은 다음과 같은 것을 얻을 것입니다 :

crw-rw---- 1 root dialout 188, 0 5 apr 23.01 ttyACM0

ACM 끝의 "0"은 다른 숫자이거나 여러 항목이 반환 될 수 있습니다. 필요한 데이터는 "dialout"입니다 (파일의 그룹 소유자 임).

이제 사용자를 그룹에 추가하면됩니다.

sudo usermod -a -G dialout $USER

그때:

sudo chmod a+rw /dev/ttyACM0

이 변경 사항을 적용하려면 로그 아웃했다가 다시 로그인해야합니다.

위의 내용은 이전 우분투 지침입니다. ConsoleKit을 사용하는 최신 배포판 /etc/udev/rules.d/01-ttyusb.rules에서 다음을 포함 하는 파일 을 만든 다음 udev 규칙을 다시로드하고 Arduino 장치를 다시 연결하십시오.

SUBSYSTEMS=="usb-serial", TAG+="uaccess"

좋은 대답입니다. 최신 설치에서는 udev 규칙을 다시로드 할 필요가 없습니다. Udev는 /etc/udev/rules.d에서 변경 사항을 감시합니다. arduino를 다시 연결해야합니다.
ppareit

@ppareit "최신 설치"로 간주되는 것은 무엇입니까? 우분투 16.04에서는 (을 통해 sudo udevadm control --reload) 규칙을 다시로드하거나하지 않고 작동하지 않습니다 .
Desty

1
보드가 "usb-serial"하위 시스템이 아닌 "tty"에 속하는 것으로 식별 되었기 때문에 작동하지 않았다고 생각합니다. : 어쨌든, 대신 나를 위해 일한 다음 udev에 규칙 만들기 SUBSYSTEM=="tty", ATTRS{idVendor}=="(vendor)", ATTRS{idProduct}=="(product)", ATTRS{serial}=="(serial)", SYMLINK+="ttyUSB.arduino", GROUP="adm", (공급 업체)와 (제품)에서 가져옵니다 lsusb및 (시리얼)을의 출력에서 가져온됩니다 udevadm info -a -n /dev/ttyACM0|grep '{serial}'|head -n1.
Desty

적어도 우분투 16.04에서는 민트 18.1 에서이 문제를 보지 못했습니다. 해결책을 찾았다는 것을 알게되어 기쁩니다!
ppareit

응원 해 !!!! 찬성했습니다. 나는 17.04 배포판을 가지고 있으며 첫 번째 솔루션은 영구적이지 않았습니다!
tony gil

3

Ignacio Vazquez-Abrams의 답변에 설명 된대로 전화 걸기 그룹에 자신을 추가하기 만하면됩니다. 이것은 터미널에서 다음을 입력하여 수행됩니다.

sudo usermod -a -G dialout $USER

사용할 필요는 없습니다 chmod. 이렇게하면 그룹 구성원뿐만 아니라 모든 사용자에게 읽기 / 쓰기 액세스 권한이 부여됩니다. 그러나 연결을 시도하기 전에 로그 아웃했다가 다시 로그인 해야합니다 . 다시 로그인하면 전화 걸기 그룹의 구성원으로 인식되어 장치를 열 수 있습니다.



0

위의 어떤 것도 도움이되지 않았습니다. 파일, 공식 사이트에서 설치하면 시작되지 않습니다. 그런 다음 "linux app store"에서 Arduino IDE를 설치하고 작동했지만 친구와 같은 문제가 발생했습니다. 그래서 나는 그것을 제거하고 터미널을 통해 설치 sudo apt install arduino했으며 이제는 작동합니다. 건배.


-1

또는 chown 명령을 사용하십시오.

sudo chown <username> /dev/ttyACM*

이것은 나를 위해 일했다


1
이 질문은이 사이트에서 여러 번 요청되었으며 다른 사용자가 동일한 답변을 제공했습니다. 이 부분에 대해서는 Chris Stratton을 인용하겠습니다. 특히 udev 또는 이와 유사한 관리 / dev 노드가있는 일반적인 동적으로 구성된 Linux에서는 장치를 연결할 때마다 수행해야합니다. 대신 적절한 그룹에 사용자를 추가하십시오. 이는 지속적인 수정입니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.