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