23

当我插拔它时,系统看到有东西插入:

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"
4

5 回答 5

31

事实证明,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

万岁!

于 2011-03-24T03:54:10.240 回答
11

对于 Ubuntu 12.04,必须对 Katy 发布的配置进行一些小的更改:

所有出现的SYSFS都应替换为ATTR

此外,如果您仍然遇到问题,请确保您已安装所有必需的依赖库。我发现我也必须安装uisp包。

如果重新启动 udev 没有任何影响,那么拔下编程器并重新插入就可以了。

于 2012-06-03T10:33:21.850 回答
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"

基于之前关于更改的帖子。

于 2013-11-19T22:11:27.553 回答
2

似乎他们在 12.10 中再次更改了
子系统现在是“usb”

我找到了一个显示您需要的命令。为此,您只需要知道插入设备的总线和设备编号(使用 lsusb)

总线 003 设备 010:ID 03eb:lsusb

所以我来自 isp 的总线号是 003,设备是 010(根据您的需要编辑结尾 /003/010)

udevadm 信息 --attribute-walk --name=bus/usb/003/010


显示在许多其他事情中

SUBSYSTEM=="usb"

ATTR{idVendor}=="03eb"

ATTR{idProduct}=="2104"

替换/更改上面创建的规则,一切都应该工作

如果还有其他问题,命令将向您显示它们,它会检查规则(以这种方式发现错字:))如果没有错误,它将不会显示任何内容(有一段时间没有意识到)

于 2013-01-13T21:14:12.560 回答
1

我使用以下 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”是不够的。

于 2014-10-15T10:13:05.853 回答