Salve a tutti.
Finalmente è arrivato Arduino Uno sono felicissimo, ma la felicità si è un po' morzata perchè ho il primo problema, Linux non mi riconosce l'usb ed infatti quando parte l'ide non è selezionabile la voce Tools -> Serial Port.
Su /dev/ non c'è nessuna voce ttyUSB o altro, per cui penso che non venga riconosciuto. Ho provato anche a seguire un reset hardware ma occorre poter caricare almeno uno sketch e non mi riesce ovviamente.
Qualche idea? Lavoro su Debian Sid 6.0 gnome.
Grazie mille perchè non so dove sbattere la testa ![]()
Si anche a me faceva così. Lavoro su Ubuntu. Inizialmente ho scaricato la versione delle repository e avevo il tuo stesso problema!!
Se hai fatto cosi anche tu, eliminala e scarica la 22 dal sito ufficiale (questo), la estrai ed entri. via di ./arduino e sei pronto a lavorare!
http://www.arduino.cc/playground/Learning/Linux
Segui le istruzioni. Arduino non "va" da solo, ha bisogno di software vario.
Prova anche a mettere l'IDE di Arduino presente nei repo della tua distro: anche se è una versione vecchia, non devi tenerla, ti serve solo per scaricare il software e configurare il sistema. Fatto questo, togli quella versione e scarichi la ultima 0022.
Avevo già seguito le istruzioni e mi installa tutto correttamente, l'IDE parte ma la voce tools->serial port non è abilitata, quindi quando provo a fare un upload mi dice COM1 non trovata, ho cercato su dev/tty ma non trovo ttyUSB o simili, quindi penso che non mi riconosca l'usb.
Ho provato anche a cambiare cavo e porta, niente. Ho provato anche il binario sul sito ma niente, la 22 comunque me lo installa anche da repository.
Altre soluzioni? ![]()
Se hai la UNO la porta è /dev/ttyACMx, non ttyUSB. Cmq l'unica altra cosa da controllare è l'appartenenza al gruppo abilitato ad accedere ai dispositivi tty (controlla sempre nella pagina che ti ho linkato). Altro non so.
Su alcuni computer sembra che la Uno stia dando problemi sotto Linux, e consigliano di fare un hard reset e riprogrammare l'Atmega8U2 (è quel chippettino quadrato appena dietro al connettore USB sulla scheda) per sistemare questo bug. Io sinceramente non ho avuto problemi su 3 computer differenti (un desktop addirittura di una decina d'anni fa) per cui non so assolutamente da cosa possa dipendere.
Rieccomi ![]()
Facendo un dmesg vedo il seguente codice:
[ 447.848039] usb 3-1: new full speed USB device using uhci_hcd and address 2
[ 448.046079] usb 3-1: New USB device found, idVendor=2341, idProduct=0001
[ 448.046085] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 448.046089] usb 3-1: Product: Arduino Uno
[ 448.046092] usb 3-1: Manufacturer: Arduino (www.arduino.cc)
[ 448.046096] usb 3-1: SerialNumber: 64932343638351F08251
Quindi l'usb si attiva, solo che non capisco perchè non mi crea in /dev/ nulla.
Qualche idea di come attivare una porta virtuale?
Ho provato ad inserire gli ID con:
modprobe ftdi_sio vendor=0x2341 product=0x1
Ed ora compare la voce "tools -> serialport" ma con 2 USB, quando provo ad uploadare su una delle due uno sketch qualsiasi mi da:
ioctl("TIOCMGET"): Broken pipe
avrdude: stk500_recv(): programmer is not responding
E qui mi blocco. ![]()
stesso problema un mio amico oggi (che sia una coicidenza?!?!?)
vai su Sistema->amministrazione->utenti e gruppi -> gestisci gruppi -> scegli "dialout" dal menu -> proprieties -> metti la spunta al tuo utente -> ok -> ok-> ok -> etc...
FINITO! ![]()
in pratica hai dato al tuo utente i permessi di usare la seriale, e visto che il tuo utente lancia arduino IDE, anche arduino IDE ora può finalmente usare la seriale (o meglio la pseudoseriale, mavebè)
Grazie delle info ma avevo già provato, tuttora è abilitato ma non serve ![]()
riavvia il pc che quel modprobe forzato di sicuro non aiuta. (la UNO NON usa l'FTDI...)
ah se non funziona ancora prova a lancire arduino da root, se lì funziona allora è solo un problema di permessi, se no potrebbe essere un problema delle politicy di UDEV
lancia l'ide con sudo o da super user
lesto:
ah se non funziona ancora prova a lancire arduino da root, se lì funziona allora è solo un problema di permessi, se no potrebbe essere un problema delle politicy di UDEV
great minds think alike.. no? ![]()
No, anche da root mi da lo stesso problema.
dunque, dici che non compare ttyACMX (dove X è un numero) quando connetti l'usb? e che anche da root non va?
Prima di tutto controlliamo che stai usando la sun JDK e non la open, che sarà open ma non sarebbe la prima volta che crea problemi con la seriale (in realtà con processing, ma essendo l'IDE arduino basata su di essa....)
quindi:
apt-get install sun-java6-jdk
update-java-alternatives -s java-6-sun
Probabilmente non funzionerà, ma dobbiamo escludere tutti i possibili errori uno per uno.
Non disperare, avevo lo stesso problema, nel mio caso era UDEV che anzichè mettere ttyUSB in /dev lo metteva in una sotto-cartella:
Prima di tutto controlliamo se questo è il caso
- accendi il pc (importante, se no i comandi successivi potrebbero essere "spuri" dalle cose fatte prima, e quindi più macelloso.
- da terminale: "ls -la /dev > /tmp/output1"
- collega arduino
- da terminale: "ls -la /dev > /tmp/output2"
- da terminale: "diff /tmp/output1 /tmp/output2"
- a questo punto sai come si chiama il file creato. Non è molto utile, ma sappiamo che almeno non è un problema di driver.
Ora che abbiamo escluso un errore più subdolo passiamo alla parte di "aggiustazione"
- da terminale vai nella cartella /etc/udev/rules.d/ Da ora in poi lavori come root, quindi occhio.
- crea un file che inizi per numero a 2 cifre bello grosso trattino in mezzo(-) nome a caso .rules
esempio: 99-UNO.rules - apri il file e scrivici:
SUBSYSTEMS=="usb", ATTRS{idProduct}=="0001", ATTRS{idVendor}=="2341", SYMLINK+="ttyACM%n"
salva il file - sempre da terminale come root: udevadm control --reload-rules
fine.
lesto:
dunque, dici che non compare ttyACMX (dove X è un numero) quando connetti l'usb? e che anche da root non va?
Sì, non compare nulla.
lesto:
Prima di tutto controlliamo che stai usando la sun JDK e non la open, che sarà open ma non sarebbe la prima volta che crea problemi con la seriale (in realtà con processing, ma essendo l'IDE arduino basata su di essa....)
quindi:
apt-get install sun-java6-jdk
update-java-alternatives -s java-6-sun
Facendo l'update mi compaiono questi errori:
update-alternatives: errore: nessuna alternativa per firefox-javaplugin.so.
update-alternatives: errore: nessuna alternativa per iceape-javaplugin.so.
update-alternatives: errore: nessuna alternativa per iceweasel-javaplugin.so.
update-alternatives: errore: nessuna alternativa per midbrowser-javaplugin.so.
update-alternatives: errore: nessuna alternativa per mozilla-javaplugin.so.
update-alternatives: errore: nessuna alternativa per xulrunner-1.9-javaplugin.so.
update-alternatives: errore: nessuna alternativa per xulrunner-javaplugin.so.
update-alternatives: errore: nessuna alternativa per firefox-javaplugin.so.
update-alternatives: errore: nessuna alternativa per iceape-javaplugin.so.
update-alternatives: errore: nessuna alternativa per iceweasel-javaplugin.so.
update-alternatives: errore: nessuna alternativa per midbrowser-javaplugin.so.
update-alternatives: errore: nessuna alternativa per mozilla-javaplugin.so.
update-alternatives: errore: nessuna alternativa per xulrunner-1.9-javaplugin.so.
update-alternatives: errore: nessuna alternativa per xulrunner-javaplugin.so.
lesto:
6. a questo punto sai come si chiama il file creato. Non è molto utile, ma sappiamo che almeno non è un problema di driver.
la differenza è nulla, solo l'orario, nessun file.
lesto:
...
4. sempre da terminale come root: udevadm control --reload-rules
Niente, ho provato togliendo e rimettendo il plug ma niente. ![]()
Una frase che hai detto su l'udev che mette il file in un altro posto mi ha fatto venire il dubbio, ho fatto ls e diff con l'opzione -R per vedere le sottocartelle, e mi da questo file che viene creato e cancellato quando connetto e disconnetto arduino: /dev/bus/usb/003/004
Può essere utile?
lancia un lsusb da root e posta il risultato con arduino attaccato
si, il diff (o meglio l'ls) era inteso per essere fatto CON -R!!! mae culpa!!!
allora è proprio UDEV!! segui pure il resto della guida!
edit: spiego bene il problema:
i vari errori di update-alternatives è perchè quei programmi non hanno il plugin adatto per usare sun java ma solo openjdk, anche se mi sebra un pò strano (forse hai messo la jdk 32 bit su un sistema 64?)
Niente, ho provato togliendo e rimettendo il plug ma niente.
prova anche un riavvio del pc, comunque stiamo parlando di modifiche quasi al cuore del sistema
/dev/bus/usb/003/004
bene, arduino anzichè come /dev/ttyACMX viene visto come /dev/bus/usb/003/004... non è errato, bisogna solo dire ad udev (con il file cui sopra) che vogliamo un link a quel file di nome ttyACMX
E' successo un casino, al riavvio mi dice "run/udev> read only file system" e se parte x non mi carica la tastiera ed il mouse, quindi e' tutto bloccato... ora sono su partedmagic ma devo prima risolvere questo... qualche idea? oggi non e' proprio giornata...
bhe ritornare al punto di partenza...
ma sembra moooolto strano, il file è impostato per beccare arduino....
per tornare indietro, semplicemente cancella il file da live cd. Se il sistema persiste, sempre da live:
da terminale live monta la partizione che contiene ubuntu
mettuamo il caso un cui la partizione è montata in /media/ubuntu;
mount -t proc none /media/ubuntu/proc
mount --rbind /dev /media/ubuntu/dev
chroot /media/ubuntu /bin/bash
udevadm control --reload-rules
exit
questo sbatti in pratica avvia ubuntu dall'hard-disk con chroot, e esegue il comando di aggiornamento delle regole UDEV
riavvia il pc ![]()
Ho cancellato il file e fatto il reload ma niente. Credo dipenda da qualcos'altro che ho fatto...