2011-03-23 49 views
23

工作系統看到的東西時,我插頭插入並拔出:AVRISP MKII不AVRDUDE在Linux上

[email protected]:/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:

[email protected]:/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" 

回答

30

事實證明,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 

Hooray!

+1

謝謝!這爲我節省了幾個小時的時間。 – 2011-03-25 21:44:14

+0

小錯誤:用「sudo service udev restart」重新啓動udev – 2011-11-05 23:59:42

+0

謝謝。我在linux mint上遇到了這個問題,也許它可以提供幫助。在linux mint中用ATTRS代替SYSFS – Nelstaar 2012-10-27 20:37:39

11

的Ubuntu 12.04,有必須進行到凱蒂發佈配置的微小的變化:

SYSFS所有出現應該ATTR

追加更換,如果你」仍然有問題,確保你已經安裝了所有需要的依賴庫。我發現我也必須安裝uisp包。

如果重新啓動udev並沒有什麼區別,拔掉程序員並插回去。

2

看來他們再次改變它在12.10
現在的子系統是「USB」

我發現了一個命令,它顯示了你所需要的。 對於您只需從插入設備 (使用的lsusb)

Bus 003 Device 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"

替換/修改科瑞編輯規則上面,一切都應該工作

如果還有其他問題命令會顯示給你,它會檢查規則(發現一個錯字:) :) 如果沒有錯誤,它不會顯示任何東西(沒想到一段時間)

7

更新的規則,對於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" 

+0

這也是我在檢查我的「udevadm info/dev/bus/usb/X/Y」輸出後想出來的。我使用的是Fedora 19/FC19系統,內核爲3.11.10。此外,udev restart已更改爲「udevadm control --reload-rules; udevadm trigger」。但重新插入設備也可以。 – EkriirkE 2014-01-04 07:27:05

+0

這是最近系統的答案! – secretformula 2015-09-09 23:23:51

0

我用下面的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」是不夠的。