Подтвердить что ты не робот

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

Ответ 1

Оказывается, 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

Ура!

Ответ 2

Для Ubuntu 12.04 есть незначительные изменения, которые должны быть выполнены в конфигурации, которую Katy опубликовала:

Все вхождения SYSFS должны быть заменены на ATTR

Кроме того, если у вас все еще есть проблемы, убедитесь, что вы установили все необходимые зависимые библиотеки. Я обнаружил, что мне также нужно установить пакет uisp.

Если перезапуск udev не имеет значения, отключите программиста и подключите его обратно.

Ответ 3

Обновление правила, которое работает для 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"

Основываясь на предыдущих сообщениях об изменениях.

Ответ 4

Кажется, они изменили его снова в 12.10
Подсистема теперь "usb"

Я нашел команду, которая показывает, что вам нужно. Для этого вам просто нужно знать номер шины и устройства от подключенного устройства (используйте lsusb)

Шина 003 Устройство 010: ID 03eb: lsusb

Таким образом, мой номер шины из isp равен 003, а Device - 010 (отредактируйте конец /003/010 в соответствии с вашими потребностями)

udevadm info --attribute-walk --name = bus/usb/003/010


показывает много других вещей

SUBSYSTEM == "USB"

ATTR {idVendor} == "03eb"

ATTR {idProduct} == "2104"

Заменить/изменить созданное правило выше, и все должно работать

Если есть другие проблемы, Command покажет их вам, он проверяет правила (нашел опечатку таким образом:)) Если нет ошибки, он ничего не покажет (не понял в течение некоторого времени)

Ответ 5

Я использовал следующий файл правил 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" было недостаточно.