Minu visiitkaardil töötab Linux

Artikli tÔlge blogist insener George Hilliardi

Minu visiitkaardil töötab Linux
Klika

Olen sisseehitatud sĂŒsteemide insener. Vabal ajal otsin sageli, mida vĂ”iks kasutada tulevaste sĂŒsteemide projekteerimiseks, vĂ”i midagi, mis on minu huvide valdkonnast.

Üks sellistest valdkondadest on odavad arvutid, mis suudavad toetada Linuxit, ja mida odavam, seda parem. SeetĂ”ttu sĂŒvenesin ma vĂ€he tuntud protsessorite sĂŒgavasse kĂŒĂŒslauku.

MÔtlesin: "Need protsessorid on nii odavad, et neid vÔiks praktiliselt tasuta jagada." Ja mÔne aja pÀrast tuli mul idee teha Linuxi alusel paljas kaart visiitkaardi formaadis.

Niipea kui ma sellele mÔtlesin, otsustasin, et see oleks vÀga lahe teostada. Olen juba nÀinud elektronilisi visiitkaarte kuni selle, millel on erinevad huvitavad vÔimalused, nÀiteks mÀlukaartide emuleerimine, tuled, mis vilguvad, vÔi isegi andmete edastamine juhtmeta. Kuid visiitkaarte, mis toetaks Linuxit, ma ei ole kohanud.

N nii ma tegime endale sellise.

See on toote lÔplik versioon. TÀisfunktsionaalne minimaalne arvuti ARM-i peal, millel töötab minu spetsiaalne Linuxi versioon, mis on loodud Buildrooti abil.

Minu visiitkaardil töötab Linux

Nurgas on USB-port. Kui ĂŒhendate selle arvutiga, laadib see umbes 6 sekundiga ja see kuvatakse nagu mĂ€lukaart ja virtuaalne seerianumber, mille kaudu saab siseneda kaardi shelli. MĂ€lus on README fail, koopia minu elulooks ja mĂ”ned minu fotod. Shellis on mitmeid mĂ€nge, Unix klasikalised mĂ€ngud nagu fortune ja rogue, vĂ€iksem versioon mĂ€ngust 2048 ja MicroPython interpreter.

KĂ”ik see on tehtud vĂ€ga vĂ€ikese 8 MB mĂ€luchiipiga. KĂ€ivitaja mahub 256 KB-sse, kernel vĂ”tab 1,6 MB ja kogu juurefailisĂŒsteem 2,4 MB. Seega jÀÀb virtuaalsele mĂ€lukaardile palju ruumi. Seal on ka kirjutamiseks ligipÀÀsetav kodukaust – kui keegi teeb midagi, mida soovib salvestada. KĂ”ik see salvestatakse ka mĂ€luchipi peale.

Kogu seade maksab alla 3 dollari. See on piisavalt odav, et seda saaks tasuta jagada. Kui saate minult sellise seadme, tĂ€hendab see tĂ”enĂ€oliselt, et ma ĂŒritan teid muljet avaldada.

Projekteerimine ja kokkupanek

Projekteerisin ja kogusin kÔik ise. See on minu töö ja mulle see meeldib, ja suur osa raskustest seisnes piisavalt odavate komponentide leidmises selliseks hobiks.

Protsessori valimine oli kĂ”ige tĂ€htsam otsus, mis mĂ”jutas projekti hinda ja teostatavust. PĂ€rast aktiivset uurimistulemuste analĂŒĂŒsi valisin F1C100s, Allwinneri tootmises oleva suhteliselt vĂ€hetuntud protsessori, mis on hinna poolest optimeeritud (st ĂŒliodav). Ühes korpuses asuvad nii RAM kui ka CPU. Ostsin protsessorid Taobaost. KĂ”ik teised komponente soetasin LCSC-lt.

Plaate tellisin JLC-lt. 8 dollari eest tehti mulle 10 koopiat. Nende kvaliteet on muljetavaldav, eriti selle hinna eest; nad ei ole nii korralikud kui OSHParki omad, aga siiski nÀevad head vÀlja.

Esimese seeria tegin mattmustaks. Need nÀgid ilusad vÀlja, kuid olid vÀga mÀÀrduvad.

Minu visiitkaardil töötab Linux

Esimese seeriaga olin silmitsi paariprobleemidega. Esiteks, USB-pistik oli liiga lĂŒhike, et usaldusvÀÀrselt mistahes USB-portidesse sobida. Teiseks, mĂ€lurajad olid valesti tehtud, kuid ma ĂŒmbersuunasin selle, painutades kontakte.

Minu visiitkaardil töötab Linux

Kontrollides kĂ”ik tööle, tellisin uue partiiplaneeringu; foto ĂŒhest neist on nĂ€ha artikli alguses.

Kuna kĂ”ikide nende vĂ€ikeste komponentide suurus on vĂ€ike, otsustasin kasutada jootmist pehmendamise meetodil [reflow solder] koos odava ahjuga. Mul on juurdepÀÀs laseriga lĂ”ikusele, seega lĂ”ikasin selle jaoks laminaatori kilest jootmisĆĄablooni. Tuli saadud ĆĄabloon piisavalt hea. Protsessori kontaktide aukude diameeter oli 0,2 mm, mis nĂ”udis erilist tĂ€helepanu kvaliteetses valmistamises – kriitiliselt oluline oli laser Ă”igesti fookusse seadistada ja selle vĂ”imsust Ă”igesti valida.

Minu visiitkaardil töötab Linux
Plaadi hoidmiseks pastade mÀÀrimisel sobivad hÀsti teised plaadid

Kandsin jootmispastat ja paigaldasin komponente kĂ€sitsi. Olin mures, et kuskil protsessi kĂ€igus ei kasutata pliid – kĂ”ik plaadid, komponendid ja pasta vastavad standardile RoHS – et mu sĂŒdametunnistus ei piinanud mind, kui jagan neid inimestele.

Minu visiitkaardil töötab Linux
Selle partii puhul tegin veidi viga, kuid jootmispasta andestab vead ja kÔik sai korralikult kokku pandud.

Iga komponendi paigutamiseks kulus umbes 10 sekundit, seega ĂŒritasin nende arvu vĂ”imalikult madalana hoida. Rohkem detaile kaardistamise kujundamise kohta saab lugeda minu teises detailsem artiklis.

Materjalide loend ja hind

Ma pidin ranget eelarvet. Visiitkaart tuli selline, nagu plaanisin – ma ei kahetse selle jagamist! Loomulikult ei kavatse ma seda kĂ”igile jagada, kuna iga eksemplari valmistamiseks kulub aega, ja minu aeg kaardihinna sisse ei arvata (see on nagu tasuta).

Komponent
Hind

F1C100s
$1.42

PCB
$0.80

8MB flash
$0.17

KÔik teised komponendid
$0.49

KokkuvÔttes
$2.88

Muidugi on veel kulusid, mida on raske arvutada, nĂ€iteks saatmine (kuna see jagunes komponentide vahel, mis on mĂ”eldud mitme projekti jaoks). Kuid Linuxi toetava plaadi puhul on see kahtlemata ĂŒsna odav. Samuti annab see jagamine hea ĂŒlevaate, kui palju maksab ettevĂ”tetele madalaima hinnaklassi seadmete valmistamine: vĂ”ite olla kindel, et ettevĂ”tetele on see veelgi odavam, kui mulle!

VÔimalused

Mida öelda? Kaart laadib 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 salvestusmahtu raskete programmide kÀivitamiseks. Siiski Ônnestus mul jaotisesse laadida palju huvitavat.

USB

USB abil oleks saanud palju huvitavat vÀlja mÔelda, kuid valisin kÔige lihtsama variandi, et inimestel oleks suure tÔenÀosusega kÔik töötaks, kui nad otsustavad proovida mu visiitkaarti. Linux vÔimaldab kaardil kÀituda nagu 'seade' toetamisel Gadget Framework. MÔned draiverid vÔtsin varasematest projektidest, mis hÔlmasid seda protsessorit, seega on mul juurdepÀÀs kogu USB gadget framework'i funktsionaalsusele. Otsustasin emuleerida ettevalmistatud mÀlupulka ja anda juurdepÀÀsu keskkonnale lÀbi virtuaalse seeria porta.

KĂ€surea liides

PÀrast juurdepÀÀsu saamist kasutajanimega root vÔivad jÀrjestikuse konsooli kÀivitada jÀrgmised programmid:

  • rogue: klassikaline Unix'i seiklusmĂ€ng kaevanduste teemal;
  • 2048: lihtne 2048 mĂ€ng konsooli reĆŸiimis;
  • fortune: erinevate uhkete ĂŒtluste kuvamine. Otsustasin siia mitte lisada kogu tsitaatide baasi, et jÀÀks ruumi teistele funktsioonidele;
  • micropython: vĂ€ga vĂ€ike Python'i tĂ”lk.

Flash Drive'i emulatsioon

Kompilatsiooni ajal genereerivad ehitustooted vĂ€ikese FAT32 pildi ja lisavad selle ĂŒheks UBI jaotamiseks. Linuxi gadget alamsĂŒsteem esitleb seda PC-na seadmena.

Kui te olete huvitatud selle vaatamisest, mis mÀlupulgal on, siis on kÔige lihtsam tutvuda allikakoodiga. Seal on ka mÔned fotod ja minu CV.

Resursid

Algfailid

Minu Buildroot'i puu on ĂŒles laaditud GitHubi — thirtythreeforty/businesscard-linux. Seal on NOR-pilte genereerimise kood, mis installitakse protsessori USB allalaadimisreĆŸiimi abil. Samuti on seal kĂ”ik mĂ€ngude ja muude programmide paketide mÀÀratlused, mille ma Buildrooti lisasin pĂ€rast seda, kui kĂ”ik toimis. Kui soovite kasutada F1C100s oma projektis, on see suurepĂ€rane lĂ€htepunkt (Ă€rge kartke kĂŒsida minult kĂŒsimusi).
Olen kasutanud hĂ€sti teostatud projekt Linux v4.9 F1C100s jaoks autoriks Icenowy, natuke selle kohandatud. Minu kaardil töötab peaaegu standardne v5.2. See on ĂŒles laaditud GitHubi — thirtythreeforty/linux.
Ma arvan, et mul on tĂ€naseks maailma parim U-Booti port F1C100s jaoks, ja see pĂ”hineb osaliselt ka Icenowy tööl (ootamatult, U-Booti tööle saamine osutus ĂŒsna Ă€rritavaks ĂŒlesandeks). Samuti on saadaval GitHubis — thirtythreeforty/u-boot.

Dokumentatsioon F1C100s kohta

Leidsin ĂŒsna napid dokumentatsioonid F1C100s, ja panen need siia:

Uudishimulikele laadisin ĂŒles oma projekti skeemi.

Minu visiitkaardil töötab Linux

KokkuvÔte

Ma Ă”ppisin palju selle projekti arendamise kĂ€igus – see on minu esimene projekt, kus kasutasin sulatuspurgi jootmise. Samuti Ă”ppisin leidma komponente, mille dokumentatsioon on kehv.

Ma kasutasin oma olemasolevat kogemust sisseehitatud Linuxi ja plaadi arendamise alal. Projekt pole veatu, kuid nÀitab hÀsti kÔiki minu oskusi.

Sisseehitatud Linuxi töö ĂŒksikasjadest huvitatud isikutele soovitan lugeda minu artiklite seeriat selle kohta: Mastering Embedded Linux. Seal rÀÀgin ĂŒksikasjalikult, kuidas luua tarkvara ja riistvara nullist vĂ€ikesteks ja odavateks Linuxi sĂŒsteemideks, nagu see minu visiitkaart.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster