2011-03-23 7 views
23

система видит что-то подключен, когда я подключать и отключать его: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-АКМ:

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

ответ

30

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

Check вы находитесь в исходящих звонков группа

groups 

Restart Udev

sudo service udev restart 

Ура!

+1

Спасибо! Это спасло меня несколько часов беспорядков сегодня. –

+0

Незначительная ошибка: перезагрузить udev с помощью «sudo service udev restart» –

+0

Спасибо. У меня была проблема с linux mint, может быть, это может помочь. В linux mint замените SYSFS на ATTRS – Nelstaar

11

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

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

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

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

2

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

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

Bus 003 Device 010: ID 03eb: lsusb

Так что мой автобус номер от исп 003 и устройства является 010 (изменить конец/003/010 для ваших нужд)

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


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

SUBSYSTEM=="usb"

ATTR{idVendor}=="03eb"

ATTR{idProduct}=="2104"

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

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

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" 

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

+0

Это тоже то, что я придумал после изучения моего вывода «udevadm info/dev/bus/usb/X/Y». Я нахожусь в системе Fedora 19/FC19, ядро ​​3.11.10. Кроме того, перезапуск udev был изменен на «udevadm control --reload-rules», триггер udevadm ». Но повторное включение устройства также работает. – EkriirkE

+0

Это ответ последних систем! – secretformula

0

Я использовал следующий 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».

 Смежные вопросы

  • Нет связанных вопросов^_^