EDA

arduino:arduino_on_linux

Arduino on Linux

Managing permissions

Serial port permissions

Depending on your distribution, you may need to add permission to your user so it can access /dev/ttyACM* or whatever. On my Debian sid system, all I needed to do was add my user to the dialout group. The following did the trick (as root):

# usermod -a -G dialout <username>

USBtiny/USBtinyISP permissions

If you plan to use a USBtiny or USBtinyISP to program your Arduino instead of the more conventional approaches, you are likely to encounter a different permission error. On my Debian sid system, I encountered a “Warning: cannot open USB device: Permission denied” error that adding my user to the dialout group didn't fix.

I was able to clear it by adding the suggestion at the end of this Adafruit page. Specifically, as root create a file /etc/udev/rules.d/99-USBtiny.rules with the following single line:

SUBSYSTEM=="usb", ATTR{product}=="USBtiny", ATTR{idProduct}=="0c9f", ATTRS{idVendor}=="1781", MODE="0660", GROUP="dialout"

The next time you log in, your programmer should work as expected — unless the product, idProduct, and/or idVendor attributes aren't as expected. You can confirm their values by plugging in your USBtiny and running dmesg (as root):

# dmesg
[404467.789928] usb 2-1.2: New USB device found, idVendor=1781, idProduct=0c9f
[404467.789930] usb 2-1.2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[404467.789931] usb 2-1.2: Product: USBtiny

A USBtinyISP from a different vendor I used identified itself as “USBtinyISP” rather than “USBtiny”, and so the udev rule above didn’t work. The solution was to add an additional rule in a second line to /etc/udev/rules.d/99-USBtiny.rules:

SUBSYSTEM=="usb", ATTR{product}=="USBtiny", ATTR{idProduct}=="0c9f", ATTRS{idVendor}=="1781", MODE="0660", GROUP="dialout"
SUBSYSTEM=="usb", ATTR{product}=="USBtinyISP", ATTR{idProduct}=="0c9f", ATTRS{idVendor}=="1781", MODE="0660", GROUP="dialout"

Modify as needed for your USBtiny or USBtinyISP.

arduino/arduino_on_linux.txt · Last modified: 2019/12/29 05:37 by mithat