Minu visiitkaardil töötab Linux

Artikli tõlge keelest blogi postitus insener George Hilliard

Minu visiitkaardil töötab Linux
Klõpsatav

Olen manussüsteemide insener. Vabal ajal otsin sageli midagi, mida saaks tulevaste süsteemide kujundamisel kasutada või midagi oma huvidest.

Üheks selliseks valdkonnaks on odavad arvutid, millega saab käitada Linuxit, ja mida odavam, seda parem. Nii et kaevasin sügava jäneseaugu ebaselgetest protsessoritest.

Mõtlesin: "Need protsessorid on nii odavad, et neid saab praktiliselt tasuta ära anda." Ja mõne aja pärast tuli mõte teha Linuxile paljas kaart visiitkaardi kujul.

Kui ma selle peale mõtlesin, otsustasin, et see oleks väga lahe asi. Mul on juba nägin elektrooniline visiitkaardid kuni Käesoleva, ja neil oli mitmesuguseid huvitavaid võimalusi, nagu näiteks välkmälukaartide emuleerimine, vilkuvad lambipirnid või isegi traadita andmeedastus. Samas pole ma näinud Linuxi toega visiitkaarte.

Nii et ma tegin endale ühe.

See on toote valmis versioon. Täielik minimaalne ARM-arvuti, kus töötab minu kohandatud Buildrootiga ehitatud Linuxi versioon.

Minu visiitkaardil töötab Linux

Selle nurgas on USB-port. Kui ühendate selle arvutiga, käivitub see umbes 6 sekundiga ja on nähtav välkmälukaardina ja virtuaalse jadapordina, mille kaudu saate kaardi kesta sisse logida. Mälupulgal on README-fail, minu CV koopia ja mitu fotot minust. Shellil on mitu mängu, Unixi klassikud nagu fortune ja rogue, mängu 2048 väike versioon ja MicroPythoni tõlk.

Seda kõike tehakse väga väikese 8 MB välkkiibi abil. Alglaadur mahutab 256 KB, kernel võtab enda alla 1,6 MB ja kogu juurfailisüsteem 2,4 MB. Seetõttu jääb virtuaalse mälupulga jaoks palju ruumi. Seal on ka kodukataloog, kuhu saab kirjutada juhuks, kui keegi teeb midagi, mida soovib salvestada. See kõik on salvestatud ka välkkiibile.

Kogu seade maksab vähem kui 3 dollarit. See on piisavalt odav, et ära anda. Kui saite minult sellise seadme, tähendab see, et tõenäoliselt üritan teile muljet avaldada.

Disain ja ehita

Kujundasin ja panin kõik ise kokku. See on minu töö ja mulle meeldib see ning suur osa väljakutsetest on olnud hobi jaoks piisavalt odavate osade leidmine.

Protsessori valik oli kõige olulisem otsus, mis mõjutas projekti maksumust ja teostatavust. Pärast põhjalikku uurimistööd valisin Allwinnerilt suhteliselt vähetuntud protsessori F1C100s, mis on kuluoptimeeritud (st kuradi odav). Nii RAM kui ka CPU asuvad samas paketis. Ostsin Taobaost protsessorid. Kõik ülejäänud komponendid osteti LCSC-st.

Tahvlid tellisin JLC-st. Nad tegid mulle 8 dollari eest 10 koopiat. Nende kvaliteet on muljetavaldav, eriti hinna osas; mitte nii kena kui OSHParki oma, kuid näeb siiski hea välja.

Esimese partii tegin mati mustaks. Need nägid ilusad välja, kuid olid väga kergesti määrdunud.

Minu visiitkaardil töötab Linux

Esimese partiiga oli paar probleemi. Esiteks ei olnud USB-pistik piisavalt pikk, et see kindlalt USB-porti mahtuda. Teiseks olid välgujäljed valesti tehtud, aga sellest sain kontakte painutades mööda.

Minu visiitkaardil töötab Linux

Pärast kontrollimist, et kõik töötab, tellisin uue partii plaate; Fotot ühest neist näete artikli alguses.

Kõigi nende väikeste komponentide väiksuse tõttu otsustasin kasutada reflow-jootmist odav pliit. Mul on ligipääs laserlõikurile, nii et lõikasin sellega lamineerimiskilest välja jootešablooni. Šabloon tuli päris hästi välja. Protsessori kontaktide 0,2 mm läbimõõduga augud nõudsid kvaliteetse valmistamise tagamiseks erilist hoolt – ülioluline oli laseri õige fokuseerimine ja võimsuse valimine.

Minu visiitkaardil töötab Linux
Teised lauad hoiavad hästi tahvlit pasta pealekandmise ajal.

Kandsin peale jootepastat ja paigutasin komponendid käsitsi. Veendusin, et pliid ei kasutata kuskil protsessis – kõik plaadid, komponendid ja pasta vastavad standardile Vastavuses - et mu südametunnistus mind ei piinaks, kui ma neid inimestele jagan.

Minu visiitkaardil töötab Linux
Tegin selle partiiga väikese vea, kuid jootepasta annab vead andeks ja kõik läks hästi

Iga komponendi positsioneerimiseks kulus umbes 10 sekundit, seega püüdsin komponentide arvu minimaalsena hoida. Täpsemalt kaardikujunduse kohta saab lugeda teisest minu üksikasjalik artikkel.

Materjalide loetelu ja maksumus

Pidasin kinni rangest eelarvest. Ja visiitkaart sai nii nagu ette nähtud - ma ei viitsi seda ära anda! Muidugi ei anna ma seda kõigile välja, kuna iga eksemplari tegemine võtab aega ja minu aega visiitkaardi maksumuses arvesse ei võeta (see on omamoodi tasuta).

Komponent
Hind

F1C100s
$1.42

PCB
$0.80

8MB välkmälu
$0.17

Kõik muud komponendid
$0.49

Kogusummas
$2.88

Loomulikult on ka kulusid, mida on raske arvutada, näiteks tarne (kuna see jaguneb mitme projekti jaoks mõeldud komponentide vahel). Kuid Linuxi toetava plaadi jaoks on see kindlasti üsna odav. See jaotus annab ka hea ülevaate sellest, kui palju maksab ettevõtetel madalaimas hinnasegmendis seadmete valmistamine: võite olla kindel, et see maksab ettevõtetele isegi vähem kui mulle!

võimalusi

Mida öelda? Kaart käivitab väga tugevalt tühjendatud Linuxi 6 sekundiga. Vormiteguri ja maksumuse tõttu pole kaardil I/O-d, võrgutuge ega märkimisväärset salvestusruumi raskete programmide käitamiseks. Sellegipoolest õnnestus mul püsivara pilti toppida hunnik huvitavaid asju.

USB

USB-ga sai teha palju lahedaid asju, kuid valisin kõige lihtsama variandi, et inimestel oleks suurem tõenäosus see tööle panna, kui nad otsustasid minu visiitkaarti proovida. Linux võimaldab kaardil käituda toega "seadmena". Vidinate raamistik. Võtsin mõned draiverid eelmistest projektidest, mis sisaldasid seda protsessorit, nii et mul on juurdepääs kõigile USB-vidinate raamistiku funktsioonidele. Otsustasin emuleerida eelgenereeritud mälupulka ja anda shellile juurdepääsu virtuaalse jadapordi kaudu.

Koor

Pärast administraatorina sisselogimist saate jadakonsoolil käivitada järgmisi programme:

  • rogue: klassikaline Unixi koopasse roomamise seiklusmäng;
  • 2048: lihtne mäng 2048 konsoolirežiimis;
  • õnn: mitmesuguste pretensioonikate ütluste väljund. Otsustasin kogu tsitaatide andmebaasi siia mitte lisada, et jätta ruumi teistele funktsioonidele;
  • mikropüüton: Väga väike Pythoni tõlk.

Flash Drive'i emuleerimine

Kompileerimise ajal loovad ehitustööriistad väikese FAT32-pildi ja lisavad selle ühe UBI-sektsioonina. Linuxi vidinate alamsüsteem esitleb tema arvutit salvestusseadmena.

Kui soovite näha, mis mälupulgal kuvatakse, on lihtsaim viis seda teha lugedes allikatest. Seal on ka mitu fotot ja minu CV.

Ressursid

Allikad

Minu Buildrooti puu on postitatud GitHubi - thirtythreeforty/visiitkaart-linux. NOR-välkpildi genereerimiseks on olemas kood, mis installitakse protsessori USB allalaadimisrežiimi kasutades. Sellel on ka kõik mängude ja muude programmide pakettide määratlused, mille ma Buildrooti peale lükkasin pärast seda, kui kõik tööle sain. Kui olete huvitatud F1C100 kasutamisest oma projektis, oleks see suurepärane lähtepunkt (võite vabalt esita mulle küsimusi).
ma kasutasin kaunilt teostatud projekt Linux v4.9 for F1C100s, autor Icenowy, veidi ümber kujundatud. Minu kaardil töötab peaaegu standardne v5.2. See on GitHubis - thirtythreeforty/linux.
Arvan, et mul on täna maailma parim F1C100 jaoks mõeldud U-Boot port ja see põhineb osaliselt ka Icenowy tööl (üllatuslikult oli U-Booti korralikult tööle saamine üsna masendav ülesanne). Saate selle hankida ka GitHubist - thirtythreeforty/u-boot.

F1C100 dokumentatsioon

Leidsin F1C100 jaoks üsna hõredat dokumentatsiooni ja postitan selle siia:

Ma laadin selle üles neile, kes on uudishimulikud. minu projekti skeem.

Minu visiitkaardil töötab Linux

Järeldus

Õppisin selle projekti arendamise käigus palju – see oli minu esimene reflow-jootmisahju kasutanud projekt. Samuti õppisin, kuidas leida ressursse kehva dokumentatsiooniga komponentide jaoks.

Kasutasin oma olemasolevat kogemust manustatud Linuxi ja tahvli arendamise kogemusega. Projekt ei ole ilma puudusteta, kuid see näitab hästi kõiki minu oskusi.

Neile, kes on huvitatud manustatud Linuxiga töötamise üksikasjadest, soovitan lugeda minu artiklite seeriat selle kohta: Manustatud Linuxi valdamine. Seal räägin üksikasjalikult, kuidas luua nullist tarkvara ja riistvara pisikeste ja odavate Linuxi süsteemide jaoks, sarnaselt minu kõnekaardiga.

Allikas: www.habr.com

Lisa kommentaar