今の設定では、sudoを使い、root権限でなければ、avrdudeを実行できません。
後で設定するeclipsでの実行でも、ユーザー実行環境が必要になってきます。
ここでは、udevでusbデバイスを登録し、グループでの実行環境を構築してみます。

なお、USBaspについては、ファームウェアのバージョンアップが必要です。
(ファームウェアをバージョンアップしなくてもワーニングは出ますが使用することもできるようです。後で設定するプロダクトIDとベンダーIDを変更することで可能です)

まずはグループを作成します。
ここでは、所属するグループ名をavruserとします

$ sudo groupadd avruser
登録されたか確認します。
$ grep avruser /etc/group
avruser:x:1002:

ユーザーをavruserに登録します。
$ sudo gpasswd -a rika avruser
ユーザーが登録されたか確認します。
$ grep avruser /etc/group
avruser:x:1002:rika

無事登録できた見たいです。

つぎにudevに登録します。
登録についてはこちらのwindblueさんの”Android の実機を Ubuntu 12.04 に接続する”の
ブログを参考にさせていただきました。

まずは、既存のルールファイルを確認します。
$ ls /etc/udev/rules.d/
70-persistent-cd.rules  70-persistent-net.rules  README

このファイルの命名ルールは
70- :は実行される順番、若い番号が先に実行される。同じ番号にならないようにした
.rules :はルール定義ファイル

さて間のpersistent-cdのファイル名は任意みたいなので
ここでは、usbaspとしました

ということで、ファイル名は
60-usbasp.rulesとしました。

ルール記述ファイル60-usbasp.rulesを作成します。
$ sudo vim /etc/udev/rules.d/60-usbasp.rules
ルール内容は

SUBSYSTEM=="usb",ATTR{product}=="USBasp", ATTR{idVendor}=="16c0",ATTR{idProduct}=="05dc", MODE="0666", GROUP="avruser"

とします。
(ファームウェアをバージョンアップしていないときは、
ATTR{idVendor}=="03eb"
ATTR{idProduct}=="c7b4"とします)

udevをリスタートします
$ sudo restart udev
udev start/running, process 6264

USBaspを新しいファームウェアに更新します。
aitendoのホームページのUSB接続AVRライター(AVR-USBasp-b)を参考に
ファームウエアをバージョンアップします。

*ファームウェアのバージョンアップの詳細は略します^^;
(ファームウェアの変更により、ベンダーIDが16c0に プロダクトIDが05dcになります)

バージョンアップしたらUSBに接続します。

$ avrdude -p m88 -c usbasp -P usb -F
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e930f
avrdude: Expected signature for ATMEGA88 is 1E 93 0A
avrdude: safemode: Fuses OK
avrdude done. Thank you.

無事 ユーザーで動作するようになりました^^

ファームウェアをバージョンアップしないで、前述のIDをセットした場合は
$ avrdude -p m88 -c usbasp -P usb -F
avrdude: Warning: Found USB device "USBasp" with old VID/PID! Please update firmware of USBasp!
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e930f
avrdude: Expected signature for ATMEGA88 is 1E 93 0A
avrdude: safemode: Fuses OK
avrdude done. Thank you.

と、接続ができますが、 old VID/PID! Please update とワーニングが表されます。

補足:

接続したUSBaspのベンダーIDやプロダクトIDを確認する方法

$ udevadm monitor --env

を起動して、USBaspを接続、Ctrl+zで強制終了

ファームウェアバージョンアップ前は

PRODUCT=3eb/c7b4/100 となっています

バージョンアップすると

PRODUCT=16c0/5dc/104となり
avrdudeが要求するIDとなるようです。

 

おすすめの記事