[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