Go Down

Topic: [C] Inviare dati ad Arduino (Read 2087 times) previous topic - next topic

nid69ita

#45
Dec 30, 2016, 06:15 pm Last Edit: Dec 30, 2016, 06:17 pm by nid69ita
Non ho capito la domanda. I driver sono inclusi nel kernel tree di linux, approvati da Linus Torvalds e staff. Altrimenti sono esterni, e come tali sono gestiti. Progetti autonomi, dei vari utenti o vendor.
Se attacco Arduino Uno mi pare Linux tipo Ubuntu trova da solo, ma se metto un clonazzo con chip CP201x non lo trova da solo, fa come Windows che cerca da solo in internet un driver adeguato ?

P.S. Usavo Ubuntu, ora รจ scassata e uso solo windows, poi Raspy con il suo Raspbian e openwrt su Yun.
my name is IGOR, not AIGOR

dally

#46
Dec 30, 2016, 06:33 pm Last Edit: Dec 30, 2016, 06:36 pm by dally
Se attacco Arduino Uno mi pare Linux tipo Ubuntu trova da solo
Se p.e. e' un chip FTDI o Prolific originale allora il core usb all'atto del probe vede dei descrittori compatibili con quanto descritto nei kernel module. UDEV li vede, capisce di cosa si tratta, a qual punto ha regole per caricare il corretto driver (facendo insmod /lib/$kernel_name/blablabla/driver/blablabla/$driver_tal_dei_tali.ko), e creare il corretto devicename in /dev/

ma se metto un clonazzo con chip CP201x non lo trova da solo
Se attacchi qualcosa che non ha regole UDEV, o che non ha descrittori corretti (proprio perche' e' un clone), non viene riconosciuto da nessuna regola, di conseguenza non viene caricato alcun kernel module, di conseguenza non c'e' niente in kernel space per gestirlo.

fa come Windows che cerca da solo in internet un driver adeguato ?
Non so se ubuntu sappia farlo, se c'e' un gestore di driver quella e' una applicazione in userspace, potenzialmente fattibilissima tanto quanto forzarti a scaricare le cose a mano da apt get, in ogni caso, a prescindere delle scelte della distro, c'e' un grosso problema con linux: i driver binari sono firmati con la versione del kernel, e questa cosa ha due impatti: o ti ricompili il driver dai sorgenti, oppure devi affidarti a chi gestisce la distro, sperando che te li fornisca per la versione del kernel che stai usando. Altrimenti devi aggiornare il kernel alla versione dei driver. O una, o l'altra.

E se chi gestisce la distro poi decide di non supportare piu' qualcosa (per problemi politici, commerciali, personali, boh) tu ti attacchi, oppure ti scarichi i sorgenti e provi a compilarli. Spesso dalle parole ai fatti pero' ti attacchi perche' tra una versione e l'altra il kernel cambia, a volte di poco, a volte di tanto, e ti tocca aggiustare il codice. A volte cambiano solo i nomi delle function, "pippo", diventa "Pippo", a volte sono cose piu' profonde e se non sai dove mettere le mani sono dolori.

Windows invece ha da sempre il metodo Cicciolina. Accetta di tutto. Driver anche vecchissimi, binari (i sorgenti non li ho mai visti), solitamente senza problemi.


nid69ita

Windows invece ha da sempre il metodo Cicciolina. Accetta di tutto.
:smiley-mr-green: :smiley-mr-green: :smiley-mr-green: :smiley-mr-green:
my name is IGOR, not AIGOR

SukkoPera

Sulle mie varie Slackware non ho mai dovuto installare alcun driver. 16U2, CHG340 o CP210x sono sempre stati visti subito ;).
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

Go Up