Problema con l'esecuzione delle regole udev per avr-usb-jtag di olimex

4

Uso Ubuntu 12.04 per scopi di programmazione e di recente ho deciso di portare i miei precedenti progetti di microcontrollo di atmel da Win a Linux. Vale a dire AVR.

Ho installato la catena degli strumenti tutto bene. Include: avrdude binutils-avr gcc-avr avr-libc gdb-avr.

Per testare la mia connessione al microcontrollore ho usato un programmatore olimex avr-usb-jtag. Quando lo collego è visto come / dev / ttyUSB0 (essendo un chip usb-com FTDI). Il programmatore è compatibile con Atmel JTAGICE.

Ora quando proviamo a

avrdude -p c128 -c jtag1 -P /dev/ttyUSB0 -t

E otteniamo

avrdude: ser_open(): can't open device "/dev/ttyUSB0": Permission denied

Finora sembra che senza i permessi di root non possiamo scrivere né leggere dal dispositivo. E si dimostra vero quando proviamo

sudo avrdude -p c128 -c jtag1 -P /dev/ttyUSB0 -t

La risposta è:

avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e9781

Ora voglio abilitare gli utenti abituali (come ad esempio la programmazione degli IDE) ad accedere al programmatore senza dare loro i permessi di root. La PRIMA QUESTIONE per me è come farlo meglio?

Ho provato l'approccio udev e volevo che il sistema distinguesse il dispositivo collegato e applicasse le autorizzazioni al file del dispositivo (ttyUSB0 per impostazione predefinita per me). Ma l'unica opzione che funzionava era creare un nuovo file:

/etc/udev/rules.d/10-usb-avr-jtag.rules

Conteneva

KERNEL=="ttyUSB*" MODE="0666"

Questa configurazione funziona, ma sono curioso del fatto che qualcosa del genere qui sotto non funzioni per niente (viene visualizzato il ttyUSB0 predefinito, non vengono applicate regole al file)?:

SUBSYSTEM=="usb", ATTR{idProduct}=="6001", ATTR{idVendor}=="0403", MODE="0666"

Qualche idea su come farlo funzionare o perché non funziona affatto?

Ecco il mio output udevadm

    
posta Anton 06.06.2012 - 15:33

1 risposta

1

Se il primo funziona, sospetto che quest'ultimo dovrebbe leggere

SUBSYSTEM=="usb", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", MODE="0666"
    
risposta data RobotHumans 06.06.2012 - 16:01

Leggi altre domande sui tag