La meva targeta de visita funciona amb Linux

Traducció d'un article de bloc l'enginyer George Hilliard

La meva targeta de visita funciona amb Linux
Es pot fer clic

Sóc enginyer de sistemes integrats. En el meu temps lliure, sovint busco alguna cosa que es pugui utilitzar en el disseny de futurs sistemes, o alguna cosa dels meus interessos.

Una d'aquestes àrees són els ordinadors barats que poden executar Linux, i com més barats, millor. Així que vaig cavar un forat profund de processadors obscurs.

Vaig pensar: "Aquests processadors són tan barats que pràcticament es poden regalar de forma gratuïta". I després d'un temps, em va venir la idea de fer una targeta nua per a Linux en forma de targeta de visita.

Un cop ho vaig pensar, vaig decidir que seria una cosa genial. Ja tinc he vist electrònica targetes de visita до el, i tenien diverses capacitats interessants, com ara emular targetes flash, bombetes intermitents o fins i tot transmissió de dades sense fil. Tanmateix, no he vist targetes de visita amb suport de Linux.

Així que em vaig fer un.

Aquesta és la versió acabada del producte. Un ordinador ARM mínim complet que executa la meva versió personalitzada de Linux construïda amb Buildroot.

La meva targeta de visita funciona amb Linux

Té un port USB a la cantonada. Si el connecteu a un ordinador, arrenca en uns 6 segons i és visible com una targeta flash i un port sèrie virtual a través del qual podeu iniciar sessió al shell de la targeta. A la unitat flaix hi ha un fitxer README, una còpia del meu currículum i diverses fotos meues. El shell té diversos jocs, clàssics Unix com Fortune i Rogue, una versió petita del joc 2048 i un intèrpret MicroPython.

Tot això es fa amb un xip flash de 8 MB molt petit. El carregador d'arrencada té 256 KB, el nucli ocupa 1,6 MB i tot el sistema de fitxers arrel ocupa 2,4 MB. Per tant, queda molt d'espai per a la unitat flash virtual. També hi ha un directori d'inici que es pot escriure per si algú fa alguna cosa que vulgui desar. Tot això també es guarda en un xip flash.

Tot el dispositiu costa menys de 3 dòlars. És prou barat per regalar. Si heu rebut aquest dispositiu de mi, vol dir que el més probable és que estic intentant impressionar-vos.

Dissenyar i construir

Vaig dissenyar i muntar tot jo mateix. És la meva feina i m'encanta, i gran part del repte ha estat trobar peces prou barates per a l'afició.

L'elecció del processador va ser la decisió més important que va afectar el cost i la viabilitat del projecte. Després d'una investigació exhaustiva, vaig triar el F1C100s, un processador relativament poc conegut d'Allwinner que té un cost optimitzat (és a dir, molt barat). Tant la RAM com la CPU es troben al mateix paquet. Vaig comprar processadors a Taobao. Tots els altres components es van comprar a LCSC.

Vaig demanar els taulers a JLC. Em van fer 8 còpies per 10 dòlars. La seva qualitat és impressionant, sobretot pel preu; no és tan net com l'OSHPark, però encara es veu bé.

Vaig fer el primer lot de negre mat. Tenien un aspecte bonic, però s'embrutaven molt fàcilment.

La meva targeta de visita funciona amb Linux

Hi va haver un parell de problemes amb el primer lot. En primer lloc, el connector USB no era prou llarg per encaixar de manera segura a cap port USB. En segon lloc, les pistes de flaix es van fer incorrectament, però vaig evitar això doblegant els contactes.

La meva targeta de visita funciona amb Linux

Després de comprovar que tot funcionava, vaig demanar un nou lot de taulers; Podeu veure una foto d'un d'ells al principi de l'article.

A causa de la petita mida de tots aquests petits components, vaig decidir recórrer a la soldadura per reflux estufa barata. Tinc accés a un tallador làser, així que el vaig utilitzar per tallar una plantilla de soldadura de la pel·lícula laminadora. La plantilla va sortir força bé. Els forats de 0,2 mm de diàmetre per als contactes del processador requerien una cura especial per garantir una fabricació d'alta qualitat: era fonamental enfocar correctament el làser i seleccionar-ne la potència.

La meva targeta de visita funciona amb Linux
Altres taulers funcionen bé per subjectar el tauler mentre s'aplica la pasta.

Vaig aplicar pasta de soldadura i vaig col·locar els components a mà. Em vaig assegurar que el plom no s'utilitzava en cap lloc del procés: totes les plaques, components i pasta compleixen l'estàndard RoHS - perquè la meva consciència no em turmenti quan els distribueixi a la gent.

La meva targeta de visita funciona amb Linux
Vaig cometre un lleu error amb aquest lot, però la pasta de soldadura perdona els errors i tot va anar bé.

Cada component va trigar uns 10 segons a posicionar-se, així que vaig intentar mantenir el nombre de components al mínim. Es poden llegir més detalls sobre el disseny del mapa en un altre el meu article detallat.

Llista de materials i cost

Vaig seguir un pressupost estricte. I la targeta de visita va resultar tal com estava previst: no m'importa regalar-la! Per descomptat, no el donaré a tothom, ja que es necessita temps per fer cada còpia, i el meu temps no es té en compte en el cost de la targeta de visita (és una mica gratuïta).

Component
Preu

F1C100
$1.42

PCB
$0.80

Flash de 8 MB
$0.17

Tots els altres components
$0.49

En total
$2.88

Naturalment, també hi ha costos difícils de calcular, com ara el lliurament (ja que es distribueix entre components destinats a diversos projectes). Tanmateix, per a un tauler que admet Linux, definitivament és força barat. Aquest desglossament també dóna una bona idea de quant costa a les empreses fabricar dispositius en el segment de preu més baix: pots estar segur que costa a les empreses encara menys del que em costa a mi!

Capacitats

Què dir? La targeta arrenca un Linux molt despullat en 6 segons. A causa del factor de forma i el cost, la targeta no té E/S, suport de xarxa ni cap quantitat d'emmagatzematge important per executar programes pesats. No obstant això, vaig aconseguir incloure un munt de coses interessants a la imatge del firmware.

USB

Hi havia moltes coses interessants que es podrien fer amb USB, però vaig triar l'opció més senzilla perquè la gent tingués més probabilitats de fer-ho funcionar si decidia provar la meva targeta de visita. Linux permet que la targeta es comporti com un "dispositiu" amb suport Marc de gadgets. Vaig agafar alguns dels controladors de projectes anteriors que incloïen aquest processador, així que tinc accés a totes les funcionalitats del marc de gadget USB. Vaig decidir emular una unitat flaix pregenerada i donar accés al shell mitjançant un port sèrie virtual.

Shell

Després d'iniciar sessió com a root, podeu executar els programes següents a la consola sèrie:

  • rogue: un clàssic joc d'aventures de rastreig de masmorres Unix;
  • 2048: un joc senzill de 2048 en mode consola;
  • fortuna: sortida de diverses dites pretencioses. Vaig decidir no incloure aquí tota la base de dades de cites per deixar espai per a altres funcions;
  • micropitó: Un intèrpret de Python molt petit.

Emulació d'unitat flash

Durant la compilació, les eines de compilació generen una petita imatge FAT32 i l'afegeixen com una de les particions UBI. El Linux Gadget Subsystem presenta el seu ordinador com a dispositiu d'emmagatzematge.

Si esteu interessats a veure què apareix a la unitat flaix, la manera més senzilla de fer-ho és llegint fonts. També hi ha diverses fotografies i el meu currículum.

Recursos

Fonts

El meu arbre Buildroot es publica a GitHub - trenta-tres quaranta/targeta-linux. Hi ha codi per generar una imatge flash NOR, que s'instal·la mitjançant el mode de descàrrega USB del processador. També té totes les definicions de paquets per a jocs i altres programes que vaig introduir a Buildroot després que tot funcionés. Si esteu interessats a utilitzar els F1C100 al vostre projecte, aquest seria un gran punt de partida (no dubteu a fes-me preguntes).
jo solia projecte ben executat Linux v4.9 per a F1C100s d'Icenowy, lleugerament redissenyat. La meva targeta funciona gairebé amb la v5.2 estàndard. Està a GitHub - trenta-tres quaranta/linux.
Crec que avui tinc el millor port d'U-Boot per a F1C100 del món, i també es basa en part en el treball d'Icenowy (sorprenentment, fer que U-Boot funcioni correctament va ser una tasca força frustrant). També el podeu obtenir a GitHub - trenta-tres quaranta/u-boot.

Documentació per als F1C100

He trobat documentació força escassa per als F1C100 i la penjo aquí:

El penjo per als curiosos. diagrama del meu projecte.

La meva targeta de visita funciona amb Linux

Conclusió

Vaig aprendre moltes coses durant el desenvolupament d'aquest projecte: va ser el meu primer projecte utilitzant un forn de soldadura per reflux. També vaig aprendre a trobar recursos per a components amb una documentació deficient.

Vaig utilitzar la meva experiència actual amb Linux incrustat i experiència de desenvolupament de taulers. El projecte no està exempt de defectes, però mostra bé totes les meves habilitats.

Per a aquells que estiguin interessats en els detalls de treballar amb Linux incrustat, suggereixo llegir la meva sèrie d'articles sobre això: Dominar Linux incrustat. Allà parlo amb detall sobre com crear programari i maquinari des de zero per a sistemes Linux petits i barats, semblant a la meva targeta de visita.

Font: www.habr.com

Afegeix comentari