AVRISP MKII не работает с AVRDUDE в Linux

Система видит, что что-то подключено, когда я подключаю и отключаю это:

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"

5 ответов

Решение

Оказывается, 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 есть небольшое изменение, которое необходимо внести в конфигурацию, которую выложила Кэти:

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

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

Если перезапуск 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, а Device - 010 (отредактируйте end /003/010 для ваших нужд)

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


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

SUBSYSTEM=="USB"

Атр {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" было недостаточно.

Другие вопросы по тегам