プラグを差し込んだり抜いたりすると、システムは何かが差し込まれていると認識します。
bluehat@Matapan:/dev$ tail -f /var/log/syslog
Mar 23 15:36:35 Matapan kernel: [156082.112874] usb 7-1: new full speed USB device using uhci_hcd and address 6
Mar 23 15:47:19 Matapan kernel: [156726.248081] usb 7-1: USB disconnect, address 6
Mar 23 15:47:29 Matapan kernel: [156736.200148] usb 6-1: new full speed USB device using uhci_hcd and address 3
AVRISP MKIIはcdc-acmに依存する必要があります:
bluehat@Matapan:/dev$ modinfo cdc-acm -V
module-init-tools version 3.12
だからそれはそれをうまく見ることができるはずですが、それでも私はそれに書き込むことができません。
avrdude -p m1280 -c avrispmkII -P usb -U test.hex
戻り値
avrdude: usb_open(): cannot read serial number "error sending control message: Operation not permitted"
avrdude: usb_open(): cannot read product name "error sending control message: Operation not permitted"
avrdude: usbdev_open(): error setting configuration 1: could not set config 1: Operation not permitted
avrdude: usbdev_open(): did not find any USB device "usb"
Ubuntuはオブジェクトが存在することを認識しますが、いくつかのudevルールを修正するまで、オブジェクトはうまく機能しません。 http://steve.kargs.net/bacnet/avr-isp-mkii-on-ubuntu-hardy/ のおかげで、わずかな更新のみが必要なファイルが提供されました。
新しいファイル/etc/udev/avrisp.rulesを作成します
SUBSYSTEM!="usb", 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"
次に、ファイルへの仮想リンクを作成し、ルールに優先順位を付けます
cd /etc/udev/rules.d
Sudo ln ../avrisp.rules 60-avrisp.rules
ダイヤルアウトグループに参加していることを確認します
groups
Udevを再起動します
Sudo service udev restart
やったー!
Ubuntu 12.04の場合、Katyが投稿した構成に対して実行する必要があるマイナーな変更があります。
[〜#〜] sysfs [〜#〜]はすべて[〜#〜] attr [〜#〜]で置き換える必要があります
さらに、問題が解決しない場合は、必要な依存ライブラリがすべてインストールされていることを確認してください。 ispパッケージもインストールする必要があることがわかりました。
Udevを再起動しても違いがない場合は、プログラマーのプラグを抜いて、プラグインしてください。
13.10で機能する更新されたルール:
SUBSYSTEM!="usb", 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"
変更に関する以前の投稿に基づいています。
12.10で再び変更したようです
サブシステムは「usb」になりました
必要なものを示すコマンドを見つけました。そのためには、接続されたデバイスからバスとデバイスの番号を知る必要があります(lsusbを使用)
バス003デバイス010:ID 03eb:lsusb
Ispからのバス番号は003で、デバイスは010です(必要に応じて末尾/ 003/010を編集してください)。
udevadm info --attribute-walk --name = bus/usb/003/010
他の多くのものの中で表示されます
SUBSYSTEM == "usb"
ATTR {idVendor} == "03eb"
ATTR {idProduct} == "2104"
上記で作成したルールを置き換え/変更すると、すべてが機能するはずです
コマンドがそれらを表示する他の問題がある場合、コマンドはルールをチェックします(そのようにタイプミスを見つけました:))エラーがない場合、何も表示しません(しばらくの間気づきませんでした)
次のudevルールファイルを使用して、 Fedora 19 で動作させました。
SUBSYSTEM!="usb", 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"
ご覧のように、いくつかのマイナーな点が上記の提案とは異なります。また、コンピューターを再起動する必要がありました。 「udevadm control --reload」を使用するだけでは不十分でした。