Lần đầu tiên thiết lập - quyền bị từ chối đối với cổng USB - Ubuntu 14.04


18

Tôi chỉ cắm arduino của tôi vào và đèn sáng, nhưng thử nghiệm nhấp nháy không tải lên được. đây là lỗi của tôi

Arduino: 1.6.7 (Linux), Hội đồng quản trị: "Arduino / Genuino Uno"

Phác thảo sử dụng 1.030 byte (3%) không gian lưu trữ chương trình. Tối đa là 32.256 byte. Biến toàn cục sử dụng 9 byte (0%) bộ nhớ động, để lại 2.039 byte cho biến cục bộ. Tối đa là 2.048 byte. avrdude: ser_open (): không thể mở thiết bị "/ dev / ttyUSB0": Quyền bị từ chối ioctl ("TIOCMGET"): ioctl không phù hợp cho thiết bị Sự cố khi tải lên bảng. Xem http://www.arduino.cc/en/Guide/Troubledh Boot # upload để được gợi ý.

Báo cáo này sẽ có thêm thông tin với "Hiển thị đầu ra dài dòng trong quá trình biên dịch" được bật trong Tệp> Tùy chọn.

usb  ubuntu 


2
@ IgnacioVazquez-Abrams - bạn có thể biến điều đó thành câu trả lời không? Chúng tôi đang cố gắng để có được tỷ lệ phần trăm của chúng tôi trả lời lên. :) Có thể với một chút sao chép và dán, vì vậy nó không chỉ liên kết.
Nick Gammon

Tôi đã làm tất cả các bước và nó đã làm việc lần đầu tiên. Bây giờ tôi cố gắng tải lên chương trình thứ hai của mình và tôi nhận được Thông báo này 'avrdude: ser_open (): không thể mở thiết bị "/ dev / ttyUSB0": Quyền bị từ chối' tôi đã làm điều này: roquet @ roquet-HP-ENVY-x360-m6 -Convertible: ~ $ sudo adduser roout dialout Người dùng quay số roquet' is already a member of '. roquet @ roquet-HP-ENVY-x360-m6-Convertible: ~ $ sudo chmod a + rw / dev / ttyUSB0 roquet @ roquet-HP-ENVY-x360-m6-Convertible: ~ $ ls -l / dev / ttyUS -rw-rw- 1 quay số gốc 188, 0 ngày 20 tháng 1 13:12 / dev / ttyUSB0 roquet @ roquet-HP-ENVY-x360-m6-Convertible: ~ $ nhưng vẫn nhận được 'quyền từ chối
Roque Zabalet

Câu trả lời:


25

Từ tài liệu :

Mở Terminal và gõ:

ls -l /dev/ttyACM*

bạn sẽ nhận được một cái gì đó như:

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

"0" ở cuối ACM có thể là một số khác hoặc nhiều mục có thể được trả về. Dữ liệu chúng tôi cần là "dialout" (là chủ sở hữu nhóm của tệp).

Bây giờ chúng tôi chỉ cần thêm người dùng của chúng tôi vào nhóm:

sudo usermod -a -G dialout $USER

sau đó:

sudo chmod a+rw /dev/ttyACM0

Bạn sẽ cần phải đăng xuất và đăng nhập lại để thay đổi này có hiệu lực.

Lưu ý rằng trước đó là hướng dẫn Ubuntu cũ. Trên các bản phân phối hiện đại sử dụng ConsoleKit, hãy tạo tệp /etc/udev/rules.d/01-ttyusb.ruleschứa các mục sau đây và sau đó tải lại các quy tắc udev và cài đặt lại thiết bị Arduino:

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

Câu trả lời chính xác. Trên các bản cài đặt mới hơn, bạn không phải tải lại các quy tắc udev. Udev sẽ xem /etc/udev/rules.d để biết các thay đổi. Bạn phải cắm lại arduino.
ppareit

@ppareit cái gì được coi là "cài đặt mới hơn"? Điều này không hoạt động với tôi trên Ubuntu 16.04 có hoặc không tải lại các quy tắc (thông qua sudo udevadm control --reload).
Desty

1
Tôi nghĩ rằng nó không hoạt động vì bảng được xác định là thuộc hệ thống con "tty" chứ không phải "usb-serial". Dù sao, việc tạo quy tắc udev sau đây hoạt động với tôi thay vào đó : SUBSYSTEM=="tty", ATTRS{idVendor}=="(vendor)", ATTRS{idProduct}=="(product)", ATTRS{serial}=="(serial)", SYMLINK+="ttyUSB.arduino", GROUP="adm", nơi (nhà cung cấp) và (sản phẩm) được lấy từ lsusbvà (nối tiếp) được lấy từ đầu ra của udevadm info -a -n /dev/ttyACM0|grep '{serial}'|head -n1.
Desty

Ít nhất là với Ubuntu 16.04, tôi không thấy vấn đề này trên Mint 18.1. Vui mừng khi biết rằng bạn đã tìm thấy một giải pháp!
ppareit

NAILED IT !!!! TĂNG CƯỜNG. Tôi có một bản phân phối 17.04 và giải pháp thứ 1 không bền bỉ!
tony gil

3

Tất cả những gì bạn cần làm là thêm chính mình vào nhóm quay số như được mô tả trong câu trả lời của Ignacio Vazquez-Abrams. Điều này được thực hiện trong thiết bị đầu cuối bằng cách gõ:

sudo usermod -a -G dialout $USER

Bạn không cần sử dụng chmod. Điều này cho phép truy cập đọc / ghi cho tất cả người dùng và không chỉ các thành viên của nhóm. Tuy nhiên, trước khi thử kết nối, bạn phải đăng xuất và đăng nhập lại . Khi bạn đăng nhập lại, bạn sẽ được công nhận là thành viên của nhóm quay số và sẽ có thể mở thiết bị.


1

Trên Ubuntu 18.04, cách duy nhất tôi thấy cài đặt Arduino IDE hoạt động ngay lập tức, là sử dụng các bước tài liệu được mô tả ở đây:

https://www.arduino.cc/en/Guide/Linux/

Không có nhóm thay đổi cũng không cần quyền.


0

Không có gì ở trên đã giúp tôi. Khi tôi đã cài đặt từ tập tin, từ trang web chính thức, nó thậm chí không bắt đầu. Sau đó, tôi đã cài đặt Arduino IDE từ "cửa hàng ứng dụng linux" và đang hoạt động nhưng gặp sự cố như bạn của chúng tôi từ đầu. Vì vậy, tôi đã gỡ cài đặt nó và cài đặt qua thiết bị đầu cuối sudo apt install arduinovà bây giờ nó đang hoạt động. Chúc mừng.


-1

Hoặc chỉ sử dụng lệnh chown.

sudo chown <username> /dev/ttyACM*

Điều này làm việc cho tôi


1
Câu hỏi này đã được hỏi nhiều lần trong trang web này và câu trả lời tương tự đã được đưa ra bởi một người dùng khác. Tôi sẽ trích dẫn Chris Stratton trên subjedt này: Đây là một ý tưởng tồi, đặc biệt là trên một linux được cấu hình động điển hình với các nút udev hoặc quản lý / dev tương tự bạn sẽ phải thực hiện mỗi khi kết nối thiết bị. Thêm người dùng của bạn vào nhóm thích hợp thay vào đó, đó là một sửa chữa lâu dài.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.