Sul mio biglietto da visita c'è Linux

Traduzione dell'articolo di un blog ingegnere George Hilliard

Sul mio biglietto da visita c'è Linux
Cliccabile

Sono un ingegnere di sistemi embedded. Nel tempo libero, cerco spesso ciò che posso utilizzare nella progettazione di futuri sistemi o qualcosa che rientri nei miei interessi.

Una di queste aree sono i computer economici in grado di supportare Linux, e più sono economici, meglio è. Così, mi sono immerso in una profonda tana di coniglio di processori poco conosciuti.

Ho pensato: "Questi processori sono così economici che quasi potrebbero essere distribuiti gratuitamente". E dopo un po' mi è venuta l'idea di realizzare una scheda nuda per Linux nel formato di un biglietto da visita.

Appena ho pensato a questo, ho deciso che sarebbe stato molto affascinante farlo. Avevo già visto biglietti da visita , e avevano varie funzioni interessanti, come l'emulazione di schede flash, il lampeggiare di luci o persino la trasmissione di dati senza fili. Tuttavia, non avevo mai visto biglietti da visita con supporto per Linux. fino a di questoQuindi ho deciso di crearne uno per me.

Questa è la versione finita del prodotto. Un computer minimale completamente funzionante su ARM, che esegue la mia particolare versione di Linux, creata con Buildroot.

In un angolo, ha una porta USB. Se la colleghi a un computer, si avvia in circa 6 secondi ed è visibile come una scheda flash e una porta seriale virtuale, tramite la quale è possibile accedere alla shell della scheda. Nella flash c'è un file README, una copia del mio curriculum e alcune mie foto. Nella shell ci sono alcuni giochi, classici di Unix tipo fortune e rogue, una versione ridotta del gioco 2048 e un interprete MicroPython.

Sul mio biglietto da visita c'è Linux

Tutto questo è realizzato con un piccolo chip flash da 8 MB. Il bootloader occupa 256 KB, il kernel 1,6 MB e l'intero filesystem root 2,4 MB. Pertanto, rimane molto spazio per la flash virtuale. C'è anche una directory home, disponibile per la scrittura – se qualcuno fa qualcosa che desidera salvare. Anche questo viene salvato sul chip flash.

L'intero dispositivo costa meno di $3. È così economico da poter essere distribuito. Se hai ricevuto un dispositivo del genere da me, significa che probabilmente sto cercando di impressionarti.

Progettazione e assemblaggio

Ho progettato e assemblato tutto da solo. Questo è il mio lavoro, mi piace, e gran parte delle difficoltà consisteva nel trovare componenti sufficientemente economici per un hobby del genere.

Ho progettato e assemblato tutto da solo. Questo è il mio lavoro, mi piace, e gran parte delle difficoltà è consistita nel trovare ricambi abbastanza economici per un hobby del genere.

La scelta del processore è stata la decisione più importante, influenzando i costi e la fattibilità del progetto. Dopo ricerche approfondite, ho scelto l'F1C100s, un processore relativamente sconosciuto prodotto da Allwinner, ottimizzato per il costo (cioè estremamente economico). In un unico case ci sono sia la RAM che la CPU. Ho acquistato i processori su Taobao. Tutti gli altri componenti sono stati acquistati su LCSC.

Le schede le ho ordinate da JLC. Per $8 me ne hanno fatte 10 copie. La loro qualità è impressionante, specialmente per un prezzo così; non sono precise come quelle di OSHPark, ma comunque appaiono bene.

La prima partita l'ho realizzata in nero opaco. Erano molto belle, ma molto suscettibili alle impronte.

Sul mio biglietto da visita c'è Linux

Con la prima partita ci sono stati un paio di problemi. In primo luogo, il connettore USB non era abbastanza lungo per inserirsi saldamente in qualsiasi porta USB. In secondo luogo, i percorsi per la flash erano stati realizzati in modo errato, ma ho aggirato il problema piegando i contatti.

Sul mio biglietto da visita c'è Linux

Dopo aver testato tutto in funzione, ho ordinato una nuova partita di schede; puoi vedere una foto di una di esse all'inizio dell'articolo.

A causa delle piccole dimensioni di tutti questi componenti, ho deciso di ricorrere alla saldatura per rifusione [reflow solder] utilizzando un forno economico. Ho accesso a un laser cutter, quindi ho realizzato un template per la saldatura da una pellicola per laminazione. Il risultato è stato un template abbastanza buono. I fori per i contatti del processore con un diametro di 0,2 mm richiedevano particolare attenzione per una produzione di qualità: era fondamentale mettere a fuoco correttamente il laser e scegliere la potenza giusta.

Sul mio biglietto da visita c'è Linux
Per tenere ferma la scheda durante l'applicazione della pasta, sono utili altre schede

Ho applicato la pasta saldante e posizionato i componenti manualmente. Mi sono assicurato che in nessuna fase fosse utilizzato piombo: tutte le schede, i componenti e la pasta sono conformi allo standard RoHS – per non avere rimorsi quando le distribuirò alle persone.

Sul mio biglietto da visita c'è Linux
Con questa partita ho avuto un piccolo problema, ma la pasta saldante perdona gli errori e tutto si è assemblato correttamente.

Ci sono voluti circa 10 secondi per posizionare ogni componente, quindi ho cercato di mantenere al minimo il numero di componenti. Maggiori dettagli sulla progettazione della scheda possono essere letti in un altro mio articolo dettagliato.

Elenco dei materiali e costi

Ho rispettato un rigoroso budget. E il biglietto da visita è venuto esattamente come lo avevo pensato – non mi dispiace regalarlo! Certo, non lo darò a tutti, poiché ci vuole tempo per produrre ogni esemplare, e il mio tempo non è contabilizzato nel costo del biglietto da visita (è come se fosse gratuito).

Componente
Prezzo

F1C100s
$1.42

PCB
$0.80

8MB flash
$0.17

Tutti gli altri componenti
$0.49

Totale
$2.88

Naturalmente, ci sono anche altre spese che sono difficili da calcolare, come la spedizione (poiché è stata ripartita tra i componenti destinati a diversi progetti). Tuttavia, per una scheda con supporto Linux, è decisamente molto economico. Inoltre, questa suddivisione offre una buona idea del costo per le aziende nella produzione di dispositivi nella fascia di prezzo più bassa: potete essere certi che per le aziende questo costosità è ancora inferiore a quella che ho sostenuto io!

Funzionalità

Che dire? La scheda carica un Linux molto ridotto in 6 secondi. A causa del fattore di forma e del costo, la scheda non ha I/O, supporto di rete, né una quantità significativa di spazio di archiviazione per eseguire programmi pesanti. Tuttavia, sono riuscito a inserire un sacco di cose interessanti nell'immagine del firmware.

USB

Con USB si potevano inventare molte cose interessanti, ma ho scelto l'opzione più semplice, affinché le persone avessero una elevata probabilità che tutto funzionasse, se decidessero di provare il mio biglietto da visita. Linux consente alla scheda di comportarsi come un 'dispositivo' con supporto. Gadget Framework. Alcuni driver li ho presi da progetti precedenti, che includevano questo processore, quindi ho accesso a tutte le funzionalità della piattaforma USB gadget framework. Ho deciso di emulare una chiavetta USB pre-generata e fornire accesso alla shell tramite una porta seriale virtuale.

Shell

Dopo il login come utente root sulla console seriale, si possono eseguire i seguenti programmi:

  • rogue: un classico gioco di avventura dungeon per Unix;
  • 2048: un semplice gioco 2048 in modalità console;
  • fortune: visualizza varie citazioni melodrammatiche. Ho deciso di non includere qui l'intero database di citazioni, per lasciare spazio ad altre funzioni;
  • micropython: un interprete Python molto piccolo.

Emulazione Flash Drive

Durante la compilazione, gli strumenti di building generano una piccola immagine FAT32 e la aggiungono come una delle partizioni UBI. Il sottosistema gadget di Linux la presenta al PC come un dispositivo di archiviazione.

Se siete interessati a vedere cosa c'è sulla chiavetta, il modo più semplice per farlo è dare un'occhiata a i sorgenti. Qui ci sono anche alcune fotografie e il mio curriculum.

Risorse

Sorgenti

Il mio albero Buildroot è disponibile su GitHub — thirtythreeforty/businesscard-linux. Qui troverete il codice per la generazione dell'immagine flash NOR, che viene installata tramite la modalità di download USB del microcontrollore. Ci sono anche tutte le definizioni dei pacchetti per i giochi e altri programmi che ho incluso in Buildroot una volta che tutto ha funzionato. Se desiderate utilizzare F1C100s nel vostro progetto, questo sarà un ottimo punto di partenza (non esitate a farmi domande).
Ho usato un progetto ben realizzato Linux v4.9 per F1C100s di Icenowy, un po' modificato. Sulla mia scheda funziona quasi standard v5.2. È disponibile su GitHub — thirtythreeforty/linux.
Credo di avere oggi il miglior port U-Boot per F1C100s al mondo, ed è parzialmente basato sul lavoro di Icenowy (inaspettatamente, far funzionare U-Boot come si deve si è rivelata una sfida non da poco). Potete trovarlo su GitHub — thirtythreeforty/u-boot.

Documentazione su F1C100s

Ho trovato una documentazione piuttosto scarsa su F1C100s e la carico qui:

Per chi è curioso carico lo schema del mio progetto.

Sul mio biglietto da visita c'è Linux

Conclusione

Ho imparato molto durante lo sviluppo di questo progetto: è il mio primo progetto in cui ho utilizzato un forno per la saldatura per rifusione. Ho anche imparato a cercare risorse per componenti con documentazione insufficiente.

Ho utilizzato la mia esperienza con Linux embedded e lo sviluppo di schede. Il progetto non è privo di difetti, ma mostra bene tutte le mie capacità.

A chi è interessato ai dettagli del lavoro con Linux embedded consiglio di leggere la mia serie di articoli su questo tema: Mastering Embedded Linux. Qui spiego in dettaglio come creare software e hardware da zero per piccoli e economici sistemi Linux, simili a questa mia scheda.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster