If you want to use avrdude with an AVRISPmkII from Atmel on your Ubuntu 14.04 machine, you need to use sudo
. If you don’t, you will receive an “Operation not permitted” message.
Unless you tweak UDEV.
You need to create a file in /etc/udev/rules.d
named 60-avrisp.rules
containing the following :
SUBSYSTEM!="usb_device", ACTION!="add", GOTO="avrisp_end"
# Atmel Corp.JTAG ICE mkII
ATTR{idVendor}=="03eb", ATTR{idProduct}=="2103", MODE="660", GROUP="dialout"
# Atmel Corp. AVRISP mkII
ATTR{idVendor}=="03eb", ATTR{idProduct}=="2104", MODE="660", GROUP="dialout"
# Atmel Corp. Dragon
ATTR{idVendor}=="03eb", ATTR{idProduct}=="2107", MODE="660", GROUP="dialout"
LABEL="avrisp_end"
Add yourself to dialout
group.
sudo adduser $USER dialout
Restart udev:
sudo restart udev
sudo service udev restart
And to check status:
sudo service udev status
Plug/unplug your AVRISPmkII from USB port, and then you may now use avrdude whithout root permissions.
$ avrdude -p m168 -c avrisp2
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e9406
avrdude: safemode: Fuses OK (H:01, E:DF, L:FF)
avrdude done. Thank you.
These commands apply on later versions as well.
For example, on Ubuntu 20.04, without these modifications, I was unable to use an AVRISP Mk2 within Arduino IDE to burn an updated boot sequence.
It might also apply to other Linux distros.