PÄ mitt visitkort körs Linux

ÖversĂ€ttning av artikeln av blogg ingenjör George Hilliard

PÄ mitt visitkort körs Linux
Klickbar

Jag Àr ingenjör inom inbyggda system. PÄ min fritid söker jag ofta efter saker som kan anvÀndas i designen av framtida system, eller nÄgot relaterat till mina intressen.

Ett av dessa omrÄden Àr billiga datorer som kan stödja Linux, och ju billigare, desto bÀttre. DÀrför grÀvde jag ner mig i en djup kaninhÄl av mindre kÀnda processorer.

Jag tÀnkte: "Dessa processorer Àr sÄ billiga att de nÀstan kan delas ut gratis." Och efter en tid kom idén att skapa ett avskalat kort för Linux i visitkortformat.

SÄ snart jag tÀnkte pÄ det beslutade jag att det skulle vara vÀldigt coolt att göra. Jag hade redan sett elektroniska visitkort till detta, och de hade olika intressanta funktioner, som att emulera flashkort, blinka lampor eller till och med trÄdlös datatransmission. Men jag hade inte sett visitkort som stöder Linux.

SÄ jag gjorde mig ett sÄdant.

Detta Àr den fÀrdiga versionen av produkten. En komplett minimal dator pÄ ARM, dÀr min sÀrskilda version av Linux körs, skapad med hjÀlp av Buildroot.

PÄ mitt visitkort körs Linux

I hörnet finns en USB-port. NÀr den kopplas till en dator, startar den pÄ ungefÀr 6 sekunder och syns som ett flashkort och en virtuell seriell port via vilken man kan komma Ät kortets skal. PÄ flashen finns en README-fil, en kopia av mitt CV och nÄgra av mina fotografier. I skalet finns nÄgra spel, klassiska Unix-spel som fortune och rogue, en liten version av spelet 2048 och en MicroPython-tolk.

Allt detta Ă€r gjort med hjĂ€lp av ett mycket litet 8 MB flashchip. Laddaren fĂ„r plats i 256 KB, kĂ€rnan tar 1,6 MB, och hela rotfilsystemet Ă€r 2,4 MB. DĂ€rför finns det mycket utrymme kvar för det virtuella flashkortet. Det finns Ă€ven en hemdirectory som Ă€r skrivbar – om nĂ„gon gör nĂ„got som de vill spara. Det sparas ocksĂ„ pĂ„ flashchippet.

Hela enheten kostar mindre Àn $3. Den Àr tillrÀckligt billig för att kunna delas ut. Om du har fÄtt en sÄdan enhet av mig, betyder det att jag förmodligen försöker imponera pÄ dig.

Design och montering

Jag designade och byggde allt sjÀlv. Det Àr mitt arbete, och jag gillar det, och största delen av svÄrigheterna lÄg i att hitta tillrÀckligt billiga komponenter för ett sÄdant hobby.

Valet av processor var det mest avgörande beslutet som pÄverkade kostnaden och genomförbarheten av projektet. Efter omfattande forskning valde jag F1C100s, en relativt okÀnd processor frÄn Allwinner, optimerad för kostnad (d.v.s. extremt billig). RAM och CPU finns i ett och samma chassi. Jag köpte processorerna pÄ Taobao. Alla övriga komponenter köptes pÄ LCSC.

Jag bestÀllde korten frÄn JLC. För 8 dollar fick jag 10 kopior. Kvaliteten imponerar, sÀrskilt till det priset; inte lika noggranna som de frÄn OSHPark, men de ser ÀndÄ bra ut.

Den första omgÄngen gjorde jag mattsvarta. De sÄg bÄde snygga ut, men var mycket smutsiga.

PÄ mitt visitkort körs Linux

Det fanns ett par problem med den första omgÄngen. För det första var USB-kontakten inte tillrÀckligt lÄng för att passa ordentligt i alla USB-portar. För det andra var banorna för flashminnet felaktigt gjorda, men jag löste det genom att böja kontakterna.

PÄ mitt visitkort körs Linux

Efter att ha kontrollerat allt i drift bestÀllde jag en ny omgÄng kort; bilden av ett av dem kan du se i början av artikeln.

PĂ„ grund av den lilla storleken pĂ„ alla dessa smĂ„ komponenter beslutade jag mig för att anvĂ€nda reflow-lödning med hjĂ€lp av en billig ugn. Jag har tillgĂ„ng till en lasercutter, sĂ„ jag skar ut en lödmask av lamineringens plast. Jag fick en mask ganska bra. HĂ„len för processoranslutningarna med en diameter pĂ„ 0,2 mm krĂ€vde sĂ€rskild noggrannhet vid tillverkningen – det var kritiskt att korrekt fokusera lasern och vĂ€lja rĂ€tt effekt.

PÄ mitt visitkort körs Linux
Andra kort Àr bra för att hÄlla fast kortet medan jag applicerade pastan.

Jag applicerade lödpasta och placerade komponenterna för hand. Jag var noga med att inget innehöll bly – alla kort, komponenter och pasta uppfyllde RoHS – sĂ„ att jag inte skulle fĂ„ dĂ„ligt samvete nĂ€r jag delar ut dem till folk.

PÄ mitt visitkort körs Linux
Med denna omgÄng missade jag lite, men lödpastan förlÄter misstag, och allt fungerade bra.

Det tog ungefÀr 10 sekunder för att placera varje komponent, sÄ jag försökte hÄlla antalet sÄ lÄgt som möjligt. Mer information om designen av kortet kan lÀsas i en annan av mina detaljerade artiklar.

Materiallista och kostnad

Jag höll mig till en strikt budget. Och visitkortet blev precis som jag tĂ€nkt – jag har inga problem med att dela ut det! Naturligtvis kommer jag inte att dela ut det till alla och envar, eftersom det tar tid att tillverka varje exemplar, och min tid Ă€r inte inkluderad i kostnaden för visitkortet (den Ă€r pĂ„ nĂ„got sĂ€tt gratis).

Komponent
Pris

F1C100s
$1.42

PCB
$0.80

8MB flash
$0.17

Alla andra komponenter
$0.49

Sammanfattningsvis
$2.88

Naturligtvis finns det andra kostnader som Àr svÄra att berÀkna, som frakt (eftersom det fördelas mellan komponenterna avsedda för flera projekt). Men för kortet som stöder Linux Àr det definitivt mycket billigt. Dessutom ger denna uppdelning en bra uppfattning om vad det kostar för företag att tillverka enheter i det lÀgsta prissegmentet: du kan vara sÀker pÄ att det kostar företagen Ànnu mindre Àn det kostar mig!

Funktioner

Vad ska man sĂ€ga? Kortet laddar ett mycket nedskalat Linux pĂ„ 6 sekunder. PĂ„ grund av formfaktorn och kostnaden har kortet ingen I/O, nĂ€tverksstöd eller nĂ„got betydande lagringsutrymme för att köra tunga program. ÄndĂ„ lyckades jag stoppa in en massa intressanta saker i firmwareavbildningen.

USB

Det fanns mycket intressant man kunde göra med USB, men jag valde det enklaste alternativet sÄ att mÀnniskor med stor sannolikhet fÄr det att fungera om de bestÀmmer sig för att prova mitt visitkort. Linux gör det möjligt för kortet att bete sig som en "enhet" med stöd för Gadget Framework. Vissa drivrutiner tog jag frÄn tidigare projekt som inkluderat denna processor, sÄ jag har tillgÄng till hela funktionaliteten i USB gadget framework. Jag bestÀmde mig för att emulera ett förgenererat flash-minne och ge Ätkomst till en shell via en virtuell seriell port.

Tolk

Efter inloggning som anvÀndaren root pÄ den seriella konsolen kan följande program startas:

  • rogue: en klassisk Ă€ventyrsspel för Unix om fĂ€ngelsehĂ„lor;
  • 2048: ett enkelt 2048-spel i konsollĂ€ge;
  • fortune: visar olika storslagna citat. Jag beslutade att inte inkludera hela citat-databasen för att fĂ„ plats för andra funktioner;
  • micropython: en mycket liten Python-tolk.

Emulering av Flash Drive

Under kompileringen genererar byggverktygen en liten FAT32-avbildning och lÀgger till den som en av partitionerna i UBI. Linux gadget subsystem presenterar den för PC:n som en lagringsenhet.

Om du Àr intresserad av att se vad som finns pÄ USB-minnet, Àr det enklast att göra det genom att bekanta dig med kÀllkoden. DÀr finns Àven flera bilder och mitt CV.

Resurser

KĂ€llkoden

Mitt Buildroot-trĂ€d Ă€r publicerat pĂ„ GitHub — thirtythreeforty/businesscard-linux. DĂ€r finns koden för att generera en NOR flash-avbildning, som installeras via USB-nedladdningslĂ€get hos processorn. DĂ€r finns ocksĂ„ alla paketdefinitioner för spel och andra program som jag stoppade in i Buildroot efter att allt fungerade. Om du vill anvĂ€nda F1C100s i ditt projekt blir detta en utmĂ€rkt utgĂ„ngspunkt (tveka inte att stĂ€lla frĂ„gor till mig).
Jag anvĂ€nde ett vĂ€l genomfört projekt Linux v4.9 för F1C100s av Icenowy, som jag modifierade lite. PĂ„ mitt kort fungerar nĂ€stan standard v5.2. Det ligger pĂ„ GitHub — thirtythreeforty/linux.
Jag tror att jag idag har den bĂ€sta U-Boot-porten för F1C100s i vĂ€rlden, och den grundar sig delvis ocksĂ„ pĂ„ Icenowys arbete (ovĂ€ntat nog var det en ganska otrevlig uppgift att fĂ„ U-Boot att fungera korrekt). Den kan ocksĂ„ hĂ€mtas frĂ„n GitHub — thirtythreeforty/u-boot.

Dokumentation för F1C100s

Jag har hittat ganska mager dokumentation för F1C100s, och lÀgger upp den hÀr:

För de nyfikna laddar jag upp schemat för mitt projekt.

PÄ mitt visitkort körs Linux

Slutsats

Jag har lĂ€rt mig mycket under utvecklingen av detta projekt – detta Ă€r mitt första projekt dĂ€r jag anvĂ€nt en lödugn för att smĂ€lta lödtenn. Dessutom lĂ€rde jag mig att hitta resurser för komponenter med dĂ„lig dokumentation.

Jag anvÀnde min tidigare erfarenhet av inbyggt Linux och kortutveckling. Projektet Àr inte utan brister, men det visar ganska bra mina fÀrdigheter.

För dem som Àr intresserade av detaljer kring arbete med inbyggt Linux rekommenderar jag att lÀsa min artikelserie om detta: Mastering Embedded Linux. DÀr förklarar jag detaljerat hur man skapar mjukvara och hÄrdvara frÄn grunden för smÄ och billiga Linux-system, liknande detta mitt visitkort.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster