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