atmega328p - AVRISP MKII no funciona con AVRDUDE en Linux
avrdude usbasp (5)
El sistema ve que hay algo enchufado cuando lo conecto y desenchufé:
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 debe confiar en cdc-acm:
bluehat@Matapan:/dev$ modinfo cdc-acm -V
module-init-tools version 3.12
Por lo tanto, debería poder verlo bien y, sin embargo, no puedo escribirle.
avrdude -p m1280 -c avrispmkII -P usb -U test.hex
Devoluciones
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"
Para Ubuntu 12.04, hay un cambio menor que se debe realizar en la configuración que Katy publicó:
Todas las ocurrencias de SYSFS deben reemplazarse con ATTR
Además, si aún tiene problemas, asegúrese de haber instalado todas las bibliotecas dependientes necesarias. Descubrí que también tenía que instalar el paquete uisp .
Si reiniciar udev no hace una diferencia, desenchufe el programador y vuelva a conectarlo.
Parece que lo cambiaron de nuevo en 12.10
El subsistema ahora es "usb"
Encontré un comando que muestra lo que necesitas. Para eso solo necesita saber el número de Bus y Dispositivo del dispositivo conectado (use lsusb)
Bus 003 Dispositivo 010: ID 03eb: lsusb
Así que mi número de bus de la ISP es 003 y el dispositivo es 010 (edite el final / 003/010 según sus necesidades)
udevadm info --attribute-walk --name = bus / usb / 003/010
muestra entre muchas otras cosas
SUBSISTEMA == "usb"
ATTR {idVendor} == "03eb"
ATTR {idProduct} == "2104"
Reemplace / cambie la regla creada arriba y todo debería funcionar
Si hay otros problemas, el Comando se los mostrará, comprueba las reglas (encontró un error tipográfico de esa manera :)) Si no hay ningún error, no mostrará nada (No se dio cuenta durante algún tiempo)
Regla actualizada que funciona para 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"
Basado en publicaciones anteriores sobre cambios.
Resulta que Ubuntu reconocerá que el objeto está allí, pero no jugará bien con él hasta que arregles algunas de las reglas de udev. Gracias a http://steve.kargs.net/bacnet/avr-isp-mkii-on-ubuntu-hardy/ que proporcionaba archivos que solo necesitaban una pequeña actualización.
Crear nuevo archivo /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"
Ahora crea un enlace virtual al archivo y dale una prioridad de regla
cd /etc/udev/rules.d
sudo ln ../avrisp.rules 60-avrisp.rules
Comprueba que estás en el grupo dialout
groups
Reiniciar udev
sudo service udev restart
¡Hurra!
Usé el siguiente archivo de reglas de udev para que funcione en 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"
Como puede ver, algunas cosas menores son diferentes de lo que se sugiere anteriormente. También tuve que reiniciar la computadora. Usar "udevadm control --reload" no fue suficiente.