avrdude: / dev / ttyACM0 बदलती अनुमतियों के साथ समस्या


2

मैं समस्याओं के बिना अपने आर्क लिनक्स लैपटॉप पर Arduino IDE का उपयोग कर रहा था, कुछ समय / महीनों के बाद मैं अनुमति के स्केच अपलोड नहीं कर पा रहा हूँ:

avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied

मैं डिवाइस के साथ एक्सेस और लिख सकता हूं minicom समस्याओं के बिना, क्योंकि अनुमति अच्छी है:

crw-rw-rw- 1 root uucp

मेरे उपयोगकर्ता में है uucp समूह। लेकिन जब मैं स्केच अपलोड करना शुरू करता हूं, तो dmesg, usb डिवाइस को फिर से जोड़ा जा रहा है और उस क्षण में मैं विभिन्न अनुमतियाँ देख सकता हूँ

rw------- 1 root root

और कुछ समय (सेकंड) के बाद अनुमति वापस आ जाती है जैसे वे थे। dmesg यहाँ उत्पादन:

[  313.042695] usb 2-1.2: USB disconnect, device number 3
[  313.253085] usb 2-1.2: new full-speed USB device number 4 using ehci-pci
[  313.352387] cdc_acm 2-1.2:1.0: ttyACM0: USB ACM device
[  321.234517] usb 2-1.2: USB disconnect, device number 4
[  321.439445] usb 2-1.2: new full-speed USB device number 5 using ehci-pci
[  321.541392] cdc_acm 2-1.2:1.0: ttyACM0: USB ACM device
...

मैंने कई कस्टम udev नियमों के साथ इसे हल करने की कोशिश की है, लेकिन बिना सफलता

SUBSYSTEMS="usb", ATTRS{idVendor}== "2341", GROUP="uucp", MODE="0666"
KERNEL=="ttyACM[0-9]*", SYMLINK+="%k", GROUP="uucp", MODE="0666"

सिस्टम में दिखाई देने पर पहले क्षण से समूह या मोड को कैसे बाध्य करें? मुझे उम्मीद है कि यह Arduino 1.8.3 में सिर्फ एक बग नहीं है। कर्नेल संस्करण 4.11.9-1-ARCH।

EDIT # 1 :

मैंने पाया कि बाहर निकलने के बाद USB पुन: संयोजन व्यवहार होता है minicom भी, लेकिन के मामले में avrdude यह समस्या है क्योंकि यह तब हो रहा है जब प्रोग्राम को डिवाइस तक पहुंचने की आवश्यकता होती है।

स्क्रीनकास्ट यहाँ

EDIT # 2 :

कुछ समय बाद मैं इस मुद्दे पर वापस आया और मैंने पाया कि मुझे अभी समस्या है ttyACM0 (यूं / माइक्रो / आदि। माइक्रोयूएसबी केबल के साथ जुड़ा हुआ है) और ttyUSB0 (USB-B से जुड़ा हुआ) ठीक है। लेकिन यहां तक ​​कि यह दिलचस्प सुराग है मैं इसे समझ नहीं सकता।

मैं tty उपकरणों पर अधिकारों की निगरानी कर रहा हूँ:

watch -n 0.1 'ls -la /dev/ttyUSB* /dev/ttyACM*'
  • जब अपलोड करने के लिए ttyUSB0 बस तारीख / समय बदल रहा है और सब कुछ काम कर रहा है
  • जब अपलोड करने के लिए ttyACM0 डिवाइस एक पल के लिए गायब हो गया, फिर गलत अधिकारों के साथ एक नया (और root:root ) बनाया गया है, अपलोड विफल हो गया है और फिर udv (के साथ) ठीक से सेट किए गए हैं root:uucp ) ... और फिर एक और चक्र (गायब-गलत-सही)

मेरे उपयोगकर्ता में है lock तथा uucp समूह, मैंने कुछ udv नियमों को जोड़ने या उन्हें अक्षम करने की कोशिश की है, लेकिन सफलता के बिना ...

मैं 99% के लिए यकीन है कि यह कुछ है इससे पहले कि udv नियम इसे छू रहा है


क्या आपने कभी /etc/rc.local पर बदलती अनुमतियों को जोड़ने की कोशिश की है? इस स्क्रिप्ट को बूट अनुक्रम के अंत में कहा जाता है। यह स्क्रिप्ट रूट अनुमति के साथ निष्पादित की जाती है, इसलिए आपको ACM0 डिवाइस को चोदने में सक्षम होना चाहिए
Genaro Morales

AFAIK ArchLinux में कोई rc.local नहीं है, लेकिन यहां तक ​​कि इसे रोका नहीं जा सकता है avrdude अपलोड पर पोर्ट रीसेट करने से।
dmnc

मैं इसके बारे में निश्चित नहीं हूं, लेकिन मुझे लगता है कि आप किसी दिन यहां पा सकते हैं wiki.archlinux.org/index.php/User:Herodotus/Rc-Local-Systemd
Genaro Morales

मुझे पता है कि अभी भी अवार्ड लंबित है, मैं उस पर एक नज़र रखने जा रहा हूं।
Genaro Morales
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.