Lavorare su una scheda IPC WAFER 5822
Avete presente quelle schede madri delle dimensioni di un hard disk, ma che possiedono tutte le
caratteristiche di un PC moderno? In questi giorni per lavoro mi è capitato di mettere
le mani su una scheda WAFER 5822 prodotta dalla taiwanese ICP. Il mio lavoro consisteva appunto nell'installare
all'interno del DiskOnChip presente una
versione ridotta di Linux con la funzione iniziale di player MP3, che fosse in grado però
di reagire a segnali dall'esterno.
Il primo passo, una volta entrato in possesso del prototipo, è stato quello di
collegare un HD alla porta IDE ed installarci la RedHat 6.2: ho scelto
questa distribuzione perché la ritengo la più stabile di quelle con
kernel 2.2.x (il 2.4.x è a mio avviso ancora troppo immaturo per un progetto simile)
e perché comunque avevo bisogno almeno inizialmente di una distribuzione che riconoscesse
facilmente le varie componenti della scheda.
Il processore video è stato riconosciuto immediatamente (MediaGx) come pure la scheda di
rete (Realtek RTL8139), mentre per quanto riguarda l'audio ho dovuto configurare manualmente i
parametri dei moduli SoundBlaster. Il chipset viene riconosciuto e gestito senza problemi, come
pure le porte seriali, parallela e USB. Per quanto riguarda la gestione del
DiskOnChip il sito di produttore mette a
disposizione i driver e i programmi necessari per il suo funzionamento, completi di un dettagliatissimo
manuale per l'utente e per lo sviluppatore. Le uniche cose non supportate immediatamente da Linux sono
la porta I/O e
il sistema di watchdog.
Il manuale della scheda in compenso risulta essere molto tecnico e dettagliato, e fornisce tutte le informazioni
necessarie, pertanto sono riuscito facilmente a realizzare i driver per gestirle.
Una volta compilato un kernel monolitico con tutte le funzionalità che mi servivano ho
realizzato un'immagine compressa del disco da caricare al momento del boot
insieme al kernel. Risultato: in 8 mega di chip sono riuscito a far stare tutto il mio sistema,
comprensivo di Perl, interfaccia grafica e player MP3. Come supporto alla rete al momento ho
lasciato solo il server telnet, in attesa di ulteriori specifiche per la gestione degli
aggiornamenti dei file (probabilmente un programma scritto in Visual Basic che si
collegherà ad un server scritto in Perl).
Come disco finale per i dati viene usata una CompactFlash Card da 128 MB,
collegata via IDE tramite un adattatore che la fa vedere al sistema come se si trattasse di un
hard disk vero e proprio. Nella foto di questo prototipo si possono vedere due alimentatori
differenti, in quanto il primo è il circuito stabilizzato che verrà utilizzato nel
prodotto finale, e trasformerà i 24V della batteria dell'autobus nelle tensioni necessarie
al funzionamento della scheda; il trasformatore in fianco invece serve temporaneamente per collegare
il prototipo alla rete domestica.
RIFERIMENTI
-
Patch (tipo sconosciuto, 8164 byte) da applicare al kernel 2.2.20. Ho
verificato che tale patch è applicabile senza problemi anche alla versione 2.2.21; non
sono invece in grado di dire se funziona con versioni precedenti, ma consiglio caldamente
l'aggiornamento all'ultima versione.
-
Pagina del driver per la gestione del watchdog.
-
Pagina del driver per la gestione della porta I/O.
-
Configurazione (tipo sconosciuto, 10 KB) che ho usato per il kernel.
Sito di supporto dei DiskOnChip.
-
Sito del produttore della scheda.