Minu visiitkaardil töötab Linux

Artikli tÔlge blogis insener George Hilliardilt

Minu visiitkaardil töötab Linux
KlÔpsatav

Mina olen sisseehitatud sĂŒsteemide insener. Vabal ajal otsin sageli asju, mida saaks tulevaste sĂŒsteemide projekteerimisel kasutada, vĂ”i midagi minu huvide valdkonnast.

Üks selline valdkond on odavad arvutid, mis toetavad Linuxit, ja mida odavam, seda parem. SeetĂ”ttu sĂŒvenesin ma tĂ”eliselt vĂ€hemtuntud protsessorite maailma.

MÔtlesin: "Need protsessorid on nii odavad, et neid vÔiks lausa tasuta jagada." Peagi tuli mul mÔte luua Linuxi toega paljas kaart visiitkaardi formaadis.

Kuna ma sellest mÔtlesin, olin kindel, et see oleks vÀga lahe teostada. Olin juba nÀinud elektronilisi visiitkaarte, kuni sellestmillel olid erinevad huvitavad funktsioonid, nagu mÀlukaardite emuleerimine, LEDide vilkumine vÔi isegi juhtmeta andmete edastamine. Siiski ei olnud ma kohanud visiitkaarte, mis toetaksid Linuxit.

Nii et ma tegin endale sellise.

See on valmis toote versioon. TÀisvÀÀrtuslik minimaalne arvuti ARM-il, millel töötab minu spetsiaalne Linuxi versioon, loodud Buildrooti abil.

Minu visiitkaardil töötab Linux

Üksuses on USB-port. Kui seda arvutiga ĂŒhendada, kĂ€ivitub ta umbes 6 sekundiga ja seda nĂ€hakse nagu mĂ€lukaarti ja virtuaalset seeriaporti, mille kaudu saab kaardile siseneda. MĂ€lukaardil on README fail, koopia minu CV-st ja mĂ”ned minu fotod. Shellis on mitu mĂ€ngu, Unix'i klassika nagu fortune ja rogue, vĂ€ike versioon mĂ€ngust 2048 ja MicroPython'i tĂ”lk.

Kogu see teos on tehtud vĂ€ikese 8 MB mĂ€lukiibi abil. Toite allikas mahtus 256 KB-sse, tuum vĂ”tab 1,6 MB ja kogu juurt failisĂŒsteem – 2,4 MB. SeepĂ€rast jÀÀb virtuaalsele mĂ€lukaardile palju ruumi. Seal on ka kirjutamiseks avatud kodudirektor – kui keegi teeb midagi, mida soovib salvestada. Ka see salvestatakse mĂ€lukiibile.

Kogu seade maksab vĂ€hem kui 3 dollarit. See on nii odav, et seda vĂ”iks jagada. Kui sa said minult sellise seadme, tĂ€hendab see, et ma tĂ”enĂ€oliselt ĂŒritan sind muljet avaldada.

Projeteerimine ja kokkupanek

Kavandasin ja kokkupanin kÔik ise. See on minu töö, ja ma naudin seda; enamus raskustest seisnes piisavalt odavate osade leidmises sellise hobi jaoks.

Protsessori valimine oli kĂ”ige olulisem otsus, mis mĂ”jutas projekti maksumust ja teostatavust. PĂ€rast aktiivset uurimist valisin F1C100s, suhteliselt vĂ€he tuntud odavate komponentide tootja Allwinneri protsessori, mis oli optimeeritud kulude osas (st uskumatult odav). Ühes korpuses on nii RAM kui ka CPU. Ostsin protsessorid Taobaost. KĂ”ik ĂŒlejÀÀnud komponendid on ostetud LCSC-lt.

Tellijad tellisin JLC-st. $8 eest tehti mulle 10 eksemplari. Nende kvaliteet on muljetavaldav, eriti sellise hinna eest; nad ei ole nii ideaalsed kui OSHPark, kuid siiski nÀevad head vÀlja.

Esimene partii oli mattmust. Need nÀgid ilusad vÀlja, kuid olid vÀga mÀÀrduvad.

Minu visiitkaardil töötab Linux

Esimese partii puhul oli paar probleemi. Esiteks, USB-konnektor ei olnud piisavalt pikk, et kindlalt igasse USB-porti istuda. Teiseks, mÀlukiibi rajad olid vale kujundusega, aga ma lahendasin selle, kummardades kontakte.

Minu visiitkaardil töötab Linux

PĂ€rast kĂ”ike töö kontrollimist tellisin ma uue partii plaate; ĂŒhte neist nĂ€ete artikli alguses.

Kuna kĂ”ik need vĂ€iksed komponendid on nii vĂ€ikesed, otsustasin kasutada sulamispunkti solderdamist [reflow solder] odava pliidi abil. Mul on ligipÀÀs lasergraveerijale, seega lĂ”ikasin sellega lamineerimise filmist solderdamise ĆĄablooni. Ć abloon tuli ĂŒsna hĂ€sti vĂ€lja. Protsessori kontaktide augud, mille lĂ€bimÔÔt on 0,2 mm, nĂ”udsid erilist tĂ€helepanu kvaliteetseks valmistamiseks – kriitiliselt oluline oli Ă”igesti fokuseerida laser ja valida selle vĂ”imsus.Plaadi hoidmiseks pastade pealekandmise ajal on hĂ€sti sobilikud teised plaadid.

Minu visiitkaardil töötab Linux
Kandsin peale solderdamise pastat ja paigaldasin komponente kĂ€sitsi. Ma hoolitsesin selle eest, et protsessi ei kasutataks ĂŒhtegi pliidi, – kĂ”ik plaadid, komponendid ja pasta vastavad

RoHS standardile – et mul ei oleks sĂŒĂŒmepiinu, kui ma neid inimestele jagan. Selle partii puhul tegin ma mĂ”ned vead, kuid solderdamise pasta andis vead andeks ja kĂ”ik kokkusobitus normaalselt.

Minu visiitkaardil töötab Linux
Iga komponendi paigaldamiseks kulus umbes 10 sekundit, seega proovisin nende arvu minimeerida. TĂ€iendavate ĂŒksikasjade kohta kaardi projekteerimisest vĂ”ite lugeda mu teises

ĂŒksikasjalikus artiklis Materjalide loetelu ja kulud.

Kaupade loetelu ja kulud

Ma jĂ€rgin ranget eelarvet. Visiitkaart tuli selline, nagu ette kujutasin – ma ei kahetse selle jagamiseks! Loomulikult ei hakka ma seda igaĂŒhele jagama, kuna iga eksemplari valmistamine vĂ”tab aega, ja mu aeg ei lisandu visiitkaardi hinnale (see on nagu tasuta).

Komponent
Hind

F1C100s
$1.42

PCB
$0.80

8MB flash
$0.17

KĂ”ik ĂŒlejÀÀnud komponendid
$0.49

Kokku
$2.88

Muidugi on veel kulusid, mida on keeruline arvutada, nĂ€iteks kohaletoimetamine (sest see jaotub komponentide vahel, mis on mĂ”eldud mitme projekti jaoks). Kuid Linuxi toetava plaadi puhul on see kindlasti vĂ€ga odav. Samuti annab see jaotus hea ĂŒlevaate, kui palju maksab ettevĂ”tetele madala hinnaklassi seadmete tootmine: vĂ”ite olla kindel, et see maksab neile veelgi vĂ€hem kui mulle!

VÔimalused

Mis ma oskan öelda? Kaart laeb vĂ€ga kĂ€rbitud Linuxi 6 sekundi jooksul. Formaadi ja hinna tĂ”ttu ei ole kaardil I/O-d, vĂ”rgu tuge ega tĂ”sist salvestusruumi raskete programmide kĂ€ivitamiseks. Sellegipoolest suutsin ma sĂŒstida tarkvarapildile palju huvitavat.

USB

USB kaudu sai mÔelda palju huvitavat, kuid valisin kÔige lihtsama variandi, et inimestel oleks suur tÔenÀosus, et see töötab, kui nad otsustavad proovida mu visiitkaarti. Linux vÔimaldab kaardil kÀituda nagu "seade", millel on tugi Gadget Framework. MÔningaid draivereid vÔtsin varasematest projektidest, mis kasutasid seda protsessorit, seega on mul ligipÀÀs kogu USB gadget framework'i funktsionaalsusele. Otsustasin simuleerida eelnevalt genereeritud USB-mÀlupulka ja anda juurdepÀÀsu juhtimispaneelile virtuaalse seerianumbri kaudu.

Kest

PÀrast root-kasutajana sisselogimist seeria terminali saab kÀivitada jÀrgmised programmid:

  • rogue: klassikaline Unix'i seiklusmĂ€ng, mis rÀÀgib kaevandustest;
  • 2048: lihtne 2048 mĂ€ng konsoolireĆŸiimis;
  • fortune: erinevate uhkete tsitaatide vĂ€ljastamine. Otsustasin siia mitte kĂ”iki tsitaate lisada, et jÀÀks ruumi teistele funktsioonidele;
  • micropython: vĂ€ga vĂ€ike Python'i tĂ”lk.

Flash Drive'i emulatsioon

Kompileerimise ajal genereerivad kogumise tööriistad vĂ€ikese FAT32 pildi ja lisavad selle ĂŒhe UBI partitsioonina. Linuxi gadget-subsĂŒsteem esitleb seda PC-na seadmena.

Kui teid huvitab, mida USB-mÀlupolt sisaldab, siis kÔige lihtsam on sellega tutvuda allikakoodidega. Seal on ka mÔned fotod ja mu CV.

Ressursid

Allikakoodid

Mu Buildroot'i puu on ĂŒles laaditud GitHub'i — thirtythreeforty/businesscard-linux. Seal on NOR-mĂ€lupildi genereerimise kood, mis installitakse lĂ€bi USB laadimisreĆŸiimi protsessoril. Seal on ka kĂ”ik mĂ€ngude ja muude programmide paketide mÀÀratlused, mille ma Buildroot'i lisasin pĂ€rast seda, kui kĂ”ik töötas. Kui soovite kasutada F1C100s oma projektis, on see suurepĂ€rane lĂ€htepunkt (Ă€rge kartke kĂŒsimusi kĂŒsida).
Ma kasutasin suurepĂ€raselt teostatud projekt Linux v4.9 F1C100s jaoks, mille autor on Icenowy, natuke muudetud. Mu kaardil töötab peaaegu standardne v5.2. See on GitHub'is — thirtythreeforty/linux.
Arvan, et mul on sel pĂ€eval maailma parim U-Booti port F1C100s jaoks, ja see pĂ”hineb osaliselt Icenowy tööl (ootamatult, U-Booti kĂ€itmine Ă”igesti osutus vĂ€ga keeruliseks ĂŒlesandeks). Samuti on saadaval GitHub'is — thirtythreeforty/u-boot.

Dokumendid F1C100s-i kohta

Leidsin ĂŒsna nappe dokumente F1C100s-i kohta ja joonisin selle siia:

KĂŒsimisel jagan ma mu projekti skeemi.

Minu visiitkaardil töötab Linux

KokkuvÔte

Ma Ă”ppisin selle projekti arendamise kĂ€igus palju – see on mu esimene projekt, kus kasutasin ahju pliidi sulamispuhastamiseks. Samuti Ă”ppisin leidma ressursside kohta, millel on halb dokumentatsioon.

Kasutasin oma varasemaid kogemusi sisseehitatud Linuxi ja trĂŒkkplaatide arendamisega. Projekt ei ole ilma puudusteta, kuid demonstreerib hĂ€sti kĂ”iki mu oskusi.

Neile, kes on huvitatud lisainfost sisseehitatud Linuxi kohta, soovitan lugeda minu artiklite seeriat: Mastering Embedded Linux. Seal rÀÀgin ma detailselt, kuidas luua tarkvara ja riistvara nullist vĂ€ikestele ja odavatele Linuxi sĂŒsteemidele, mis sarnanevad sellele minu visiitkaardile.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster