[Gulli] [PROGRAMMAZIONE] Contribuire al kernel di Linux
Daniele Forsi
dforsi@gmail.com
Ven 13 Ott 2017 18:28:29 CEST
= Premessa =
Vorrei leggere dei sensori collegati a un Arduino e li renda
disponibili in Linux in qualche modo standard, per evitare di dover
scrivere anche i programmi per visualizzare i dati, potrei usare
Blynk, ma non sarebbe integrato "in Linux".
= La difficoltà =
Arduino si collega con il computer tramite un driver standard che non
distingue tra un Arduino e un altro dispositivo seriale USB, mentre i
sensori gestiti da Linux usano driver specifici e personalizzati;
modificare uno di questi driver, oltre sarebbe complicato e sarebbe
una soluzione che richiederebbe quasi la stessa quantità di lavoro per
adattarsi ad altri casi (schede diverse da Arduino Uno o sensori
diversi).
= La soluzione semplice =
Non usare Arduino e collegare il sensore I2C al Raspberry e il sensore
/dovrebbe/ essere usabile senza troppi sforzi. Problema: ho prestato
il mio Raspberry, avrei potuto prendere quello del Gulli se ci avessi
pensato ieri sera... oppure usare un adattatore USB-I2C/SPI su un un
PC.
= La soluzione flessibile =
Studiando un po' mi sembra che la soluzione più flessibile sia
scrivere un driver UHID che è un programma in spazio utente e quindi
non richiede di essere ricompilato quando si aggiorna il kernel, a
differenza dei driver nello spazio del kernel che vanno ricompilati
per qualsiasi aggiornamento. Sarebbe anche piuttosto indipendente dal
modo in cui viene collegato il sensore.
= Il prossimo passo =
Il prossimo passo è studiare l'esempio di UHID che si trova nei
sorgenti ufficiali del kernel, non so ancora se è una buona idea usare
questo sistema, ma l'esempio ha degli errori, a partire dalla prossima
"puntata" proviamo a correggerli.
--
Daniele Forsi
Maggiori informazioni sulla lista
Gulli