My besigheidskaartjie gebruik Linux

Vertaling van 'n artikel uit blogpos ingenieur George Hilliard

My besigheidskaartjie gebruik Linux
Klikbaar

Ek is 'n ingebedde stelselingenieur. In my vrye tyd soek ek dikwels na iets wat gebruik kan word in die ontwerp van toekomstige stelsels, of iets uit my belangstellings.

Een so 'n area is goedkoop rekenaars wat Linux kan bestuur, en hoe goedkoper hoe beter. So ek het 'n diep konyngat van obskure verwerkers afgegrawe.

Ek het gedink: "Hierdie verwerkers is so goedkoop dat hulle feitlik gratis weggegee kan word." En na 'n ruk het die idee by my opgekom om 'n kaal kaart vir Linux te maak in die vormfaktor van 'n besigheidskaartjie.

Sodra ek daaroor gedink het, het ek besluit dit sou 'n baie oulike ding wees om te doen. Ek het reeds gesien het elektronies fasietekaartjies aan van hierdie, en hulle het verskeie interessante vermoëns gehad, soos om flitskaarte na te boots, gloeilampe te flikker of selfs draadlose data-oordrag. Ek het egter nie besigheidskaartjies met Linux-ondersteuning gesien nie.

So ek het vir myself een gemaak.

Dit is die voltooide weergawe van die produk. 'n Volledige minimale ARM-rekenaar wat my pasgemaakte weergawe van Linux bestuur wat met Buildroot gebou is.

My besigheidskaartjie gebruik Linux

Dit het 'n USB-poort in die hoek. As jy dit aan 'n rekenaar koppel, begin dit binne ongeveer 6 sekondes en is dit sigbaar as 'n flitskaart en 'n virtuele reekspoort waardeur jy by die kaartdop kan aanmeld. Op die flash drive is 'n README-lêer, 'n afskrif van my CV en verskeie foto's van my. Die dop het verskeie speletjies, Unix-klassieke soos fortuin en skelm, 'n klein weergawe van die speletjie 2048 en 'n MicroPython-tolk.

Dit alles word gedoen met 'n baie klein 8 MB flitsskyfie. Die selflaaiprogram pas in 256 KB, die kern neem 1,6 MB op en die hele wortellêerstelsel neem 2,4 MB op. Daarom is daar baie spasie oor vir die virtuele flash drive. Daar is ook 'n tuisgids wat skryfbaar is vir ingeval iemand iets doen wat hulle wil stoor. Dit word alles ook op 'n flitsskyfie gestoor.

Die hele toestel kos minder as $3. Dit is goedkoop genoeg om weg te gee. As jy so 'n toestel van my ontvang het, beteken dit dat ek heel waarskynlik jou probeer beïndruk.

Ontwerp en bou

Ek het alles self ontwerp en aanmekaar gesit. Dit is my werk en ek is mal daaroor, en baie van die uitdaging was om goedkoop genoeg onderdele vir die stokperdjie te vind.

Die keuse van verwerker was die belangrikste besluit wat die koste en uitvoerbaarheid van die projek beïnvloed het. Na uitgebreide navorsing het ek die F1C100s gekies, 'n relatief min bekende verwerker van Allwinner wat koste-geoptimaliseer is (dws verdomp goedkoop). Beide RAM en SVE is in dieselfde pakket geleë. Ek het verwerkers op Taobao gekoop. Alle ander komponente is by LCSC gekoop.

Ek het die planke by JLC bestel. Hulle het 8 kopieë vir my gemaak vir $10. Hulle kwaliteit is indrukwekkend, veral vir die prys; nie so netjies soos OSHPark s'n nie, maar lyk steeds goed.

Ek het die eerste bondel mat swart gemaak. Hulle het pragtig gelyk, maar was baie maklik vuil.

My besigheidskaartjie gebruik Linux

Daar was 'n paar probleme met die eerste bondel. Eerstens was die USB-aansluiting nie lank genoeg om veilig in enige USB-poorte te pas nie. Tweedens is die flitsspore verkeerd gemaak, maar ek het dit omseil deur die kontakte te buig.

My besigheidskaartjie gebruik Linux

Nadat ek gekontroleer het alles werk, het ek 'n nuwe bondel borde bestel; Jy kan 'n foto van een van hulle aan die begin van die artikel sien.

As gevolg van die klein grootte van al hierdie klein komponente, het ek besluit om terugvloeisoldeer te gebruik goedkoop stoof. Ek het toegang tot 'n lasersnyer, so ek het dit gebruik om 'n soldeerstensil uit die lamineerfilm uit te sny. Die stensil het redelik goed uitgekom. Die gate van 0,2 mm deursnee vir die verwerkerkontakte het spesiale sorg vereis om vervaardiging van hoë gehalte te verseker - dit was van kritieke belang om die laser korrek te fokus en sy krag te kies.

My besigheidskaartjie gebruik Linux
Ander planke werk goed om die bord vas te hou terwyl jy pasta aanwend.

Ek het soldeerpasta aangewend en die komponente met die hand geplaas. Ek het seker gemaak dat lood nêrens in die proses gebruik word nie – alle borde, komponente en pasta voldoen aan die standaard RoHS - sodat my gewete my nie sal pynig wanneer ek dit aan mense uitdeel nie.

My besigheidskaartjie gebruik Linux
Ek het 'n effense fout met hierdie bondel gemaak, maar die soldeerpasta vergewe foute, en alles het goed gegaan

Elke komponent het ongeveer 10 sekondes geneem om te posisioneer, so ek het probeer om die aantal komponente tot 'n minimum te beperk. Meer besonderhede oor kaartontwerp kan in 'n ander gelees word my gedetailleerde artikel.

Lys van materiaal en koste

Ek het by 'n streng begroting gehou. En die besigheidskaartjie het uitgedraai soos bedoel - ek gee nie om om dit weg te gee nie! Natuurlik sal ek dit nie aan almal gee nie, aangesien dit tyd neem om elke kopie te maak, en my tyd word nie by die koste van die besigheidskaartjie in ag geneem nie (dit is soort van gratis).

komponent
Prys

F1C100s
$1.42

PCB
$0.80

8 MB flits
$0.17

Alle ander komponente
$0.49

In totaal
$2.88

Natuurlik is daar ook koste wat moeilik is om te bereken, soos aflewering (aangesien dit versprei word onder komponente wat vir verskeie projekte bedoel is). Vir 'n bord wat Linux ondersteun, is dit egter beslis redelik goedkoop. Hierdie uiteensetting gee ook 'n goeie idee van hoeveel dit maatskappye kos om toestelle in die laagste pryssegment te maak: jy kan seker wees dat dit maatskappye selfs minder kos as wat dit my kos!

Vermoëns

Wat om te sê? Die kaart begin 'n baie swaar gestroopte Linux binne 6 sekondes. As gevolg van die vormfaktor en koste, het die kaart nie I/O, netwerkondersteuning of enige beduidende hoeveelheid berging om swaar programme uit te voer nie. Nietemin, ek het daarin geslaag om 'n klomp interessante dinge in die firmware-beeld te prop.

USB

Daar was baie oulike dinge wat met USB gedoen kon word, maar ek het die eenvoudigste opsie gekies sodat mense meer geneig was om dit te laat werk as hulle besluit om my besigheidskaartjie te probeer. Linux laat die kaart toe om soos 'n "toestel" met ondersteuning op te tree Gadget Raamwerk. Ek het van die drywers van vorige projekte geneem wat hierdie verwerker ingesluit het, so ek het toegang tot al die funksionaliteit van die USB-apparaatraamwerk. Ek het besluit om 'n voorafgegenereerde flash drive na te boots en doptoegang via 'n virtuele reekspoort te gee.

dop

Nadat u as root aangemeld het, kan u die volgende programme op die reekskonsole laat loop:

  • skelm: 'n klassieke Unix-kerkkruip-avontuurspeletjie;
  • 2048: 'n eenvoudige speletjie van 2048 in konsolemodus;
  • fortuin: uitset van verskeie pretensieuse gesegdes. Ek het besluit om nie die hele aanhalingsdatabasis hier in te sluit nie om ruimte te laat vir ander kenmerke;
  • mikropyton: 'n Baie klein Python-tolk.

Flash Drive-emulasie

Tydens samestelling genereer die bouhulpmiddels 'n klein FAT32-beeld en voeg dit as een van die UBI-partisies by. Die Linux Gadget Subsystem bied sy rekenaar as 'n stoortoestel aan.

As jy belangstel om te sien wat op die flash drive verskyn, is die maklikste manier om dit te doen deur te lees bronne. Daar is ook verskeie foto's en my CV.

Ресурсы

Bronne

My Buildroot-boom is op GitHub geplaas - drie-en-dertig/besigheidskaart-linux. Daar is kode vir die generering van 'n NOR-flitsbeeld, wat met die USB-aflaaimodus van die verwerker geïnstalleer word. Dit het ook al die pakketdefinisies vir speletjies en ander programme wat ek in Buildroot gedruk het nadat ek alles aan die werk gekry het. As jy belangstel om die F1C100s in jou projek te gebruik, sal dit 'n goeie beginpunt wees (voel vry vra my vrae).
ek het gebruik pragtig uitgevoer projek Linux v4.9 vir F1C100s deur Icenowy, effens herontwerp. My kaart loop amper standaard v5.2. Dit is op GitHub - drie-en-dertig/linux.
Ek dink ek het vandag die beste hawe van U-Boot vir F1C100's in die wêreld, en dit is ook deels gebaseer op Icenowy se werk (verbasend genoeg was dit nogal 'n frustrerende taak om U-Boot behoorlik te laat werk). Jy kan dit ook op GitHub kry - drie-en-dertig/u-stewel.

Dokumentasie vir F1C100s

Ek het nogal yl dokumentasie vir F1C100s gevind, en ek plaas dit hier:

Ek laai dit op vir die nuuskieriges. my projekdiagram.

My besigheidskaartjie gebruik Linux

Gevolgtrekking

Ek het baie geleer tydens die ontwikkeling van hierdie projek - dit was my eerste projek met 'n hervloei-soldeeroond. Ek het ook geleer hoe om hulpbronne te vind vir komponente met swak dokumentasie.

Ek het my bestaande ervaring met ingebedde Linux en bordontwikkelingservaring gebruik. Die projek is nie sonder gebreke nie, maar dit wys al my vaardighede goed.

Vir diegene wat belangstel in die besonderhede van die werk met ingebedde Linux, stel ek voor dat u my reeks artikels hieroor lees: Bemeester Embedded Linux. Daar praat ek in detail oor hoe om sagteware en hardeware van nuuts af te skep vir piepklein en goedkoop Linux-stelsels, soortgelyk aan my telefoonkaart.

Bron: will.com

Voeg 'n opmerking