Na moji vizitki deluje Linux

Prevod članka iz blog inženjera Džordža Hiliarda

Na moji vizitki deluje Linux
Klikabilno

Ja sam inženjer ugrađenih sistema. U slobodno vreme često tražim šta bi moglo da se koristi u projektovanju budućih sistema, ili nešto iz oblasti mojih interesovanja.

Jedna od takvih oblasti su jeftini računari koji podržavaju Linux, i što je jeftinije, to bolje. Zato sam se upustio u duboku kr rabbit-hole malo poznatih procesora.

Pomislio sam: „Ovi procesori su tako jeftini da se praktično mogu deliti besplatno“. I nakon nekog vremena došla mi je ideja da napravim 'golu' kartu za Linux u formatu vizit kartice.

Čim sam pomislio na to, odlučio sam da bi bilo jako kul to napraviti. Već sam video elektronske vizitke do tega, i imale su razne zanimljive mogućnosti, poput emulacije flash kartica, treptanja lampica ili čak bežičnog prenosa podataka. Međutim, vizitke sa podrškom za Linux nisam video.

Tako da sam napravio jednu za sebe.

Ovo je konačna verzija proizvoda. Potpuni minimalni računar na ARM-u, na kojem radi moja posebna verzija Linux-a, napravljena uz pomoć Buildroot-a.

Na moji vizitki deluje Linux

U uglu se nalazi USB port. Kada je povežete sa računarom, pokreće se za oko 6 sekundi i vidi se kao flash kartica i virtuelni serijski port, preko kojeg se može ući u shell kartice. Na flash-u se nalazi README datoteka, kopija mog CV-a i nekoliko mojih fotografija. U shell-u postoji nekoliko igara, klasika iz Unixa kao što su fortune i rogue, mala verzija igre 2048 i interpretator MicroPython.

Sve to je napravljeno uz pomoć vrlo malog flash čipa od 8 Mb. Učitajč zauzima 256 Kb, jezgro 1,6 Mb, a cela root datotečna sistem 2,4 Mb. Zato ostaje mnogo mesta za virtuelnu flash karticu. Tu je i domaći direktorijum dostupan za pisanje – ako neko uradi nešto što želi da sačuva. Sve to se takođe čuva na flash čipu.

Cela sprava košta manje od $3. Dovoljno je jeftina da se može deliti. Ako ste dobili ovakvu spravu ode mene, to znači da verovatno pokušavam da ostavim utisak na vas.

Projektovanje i sastavljanje

Sve sam dizajnirao i sastavio sam. To je moj posao, sviđa mi se, i najveći deo poteškoća bio je u pronalaženju dovoljno jeftinih delova za ovo hobi.

Izbira procesorja je bila najpomembnejša odločitev, ki je vplivala na stroške in izvedljivost projekta. Po aktivnem raziskovanju sem izbral F1C100s, relativno malo znan procesor podjetja Allwinner, optimiziran po ceni (tj. izjemno poceni). V enem ohišju sta RAM in CPU. Procesorje sem kupil na Taobao. Vse ostale komponente sem pridobil na LCSC.

Tiskane vezje sem naročil pri JLC. Za 8 $ so mi naredili 10 kopij. Njihova kakovost je osupljiva, zlasti za to ceno; niso tako natančni kot pri OSHPark, a še vedno izgledajo dobro.

Prva serija je bila mat črna. Lepo so izgledale, a so bile zelo umazane.

Na moji vizitki deluje Linux

Pri prvi seriji je bila nekaj težav. Prvič, USB konektor ni bil dovolj dolg, da bi se lahko zanesljivo priključil v vse USB porte. Drugič, sledovi za bliskovno pomnilnik so bili narobe izdelani, a sem to rešil tako, da sem upognil kontakte.

Na moji vizitki deluje Linux

Ko sem vse preveril v delovanju, sem naročil novo serijo tiskanih vezij; sliko enega izmed njih lahko vidite na začetku članka.

Zaradi majhne velikosti vseh teh malih komponent sem se odločil za spajanje s taljenjem spajke [reflow solder] z uporabo poceni pečice. Imam dostop do laserskega rezalnika, zato sem na njem izrezal šablono za spajanje iz folije za laminiranje. Šablona je izpadla dovolj dobro. Odpiralne luknje za kontakte procesorja premera 0,2 mm so zahtevale posebno previdnost pri kakovostni izdelavi – kritično je bilo pravilno fokusirati laser in izbrati njegovo moč.

Na moji vizitki deluje Linux
Za držanje tiskane vezje pri nanosu paste dobro služijo druga tiskana vezja

Nanul sem spajkalno pasto in ročno postavil komponente. Poskrbel sem, da nikjer v postopku ni bilo svinca – vse tiskane vezje, komponente in pasta ustrezajo standardu RoHS – da me ne bi mučila vest, ko jih bom delil z ljudmi.

Na moji vizitki deluje Linux
Pri tej seriji sem malo zgrešil, vendar spajkalna pasta odpušča napake in vse se je sestavilo normalno.

Za postavitev vsake komponente sem porabil približno 10 sekund, zato sem poskušal zmanjšati njihovo število na minimum. Več podrobnosti o načrtovanju kartice lahko preberete v drugem mojem podrobnem članku.

Seznam materialov in stroškov

Držal sem se strogega proračuna. Vizitka je nastala tako, kot sem si zamislil – ni mi je žal dati! Seveda je ne bom delil z vsakim, saj je izdelava vsakega izvoda časovno potratna, moje časa pa pri stroških vizitke ni mogoče upoštevati (kot da je brezplačno).

Komponenta
Cena

F1C100s
$1.42

PCB
$0.80

8MB flash
$0.17

Vse ostale komponente
$0.49

Ukupno
$2.88

Seveda pa so tu še stroški, ki jih je težko izračunati, kot je dostava (saj se ta razdeli med komponente, namenjene več projektom). Vendar pa je to za ploščo, ki podpira Linux, zagotovo zelo poceni. Poleg tega daje ta razdelitev dober vpogled v stroške podjetij pri izdelavi naprav v najnižjem cenovnem razredu: lahko ste prepričani, da je podjetjem to še ceneje, kot pa meni!

Возможности

Kaj naj rečem? Kartica nalaga zelo odrezan Linux v 6 sekundah. Zaradi oblikovne faktorja in cene kartica nima I/O, omrežne podpore, ali res ni dovolj prostora za zagon zahtevnih programov. Kljub temu sem v sliko zagotovil kup zanimivih stvari.

USB

Z USB-jem bi lahko prišel do mnogih zanimivosti, a sem izbral najpreprostejšo možnost, da bi ljudje imeli veliko večjo verjetnost, da bo vse delovalo, če se odločijo preizkusiti mojo vizitko. Linux omogoča, da se kartica obnaša kot 'naprava' s podporo Gadget Framework. Nekatere gonilnike sem vzel iz prejšnjih projektov, ki so vključevali ta procesor, zato imam dostop do celotne funkcionalnosti platforme USB gadget framework. Odločil sem se, da emuliram vnaprej generirano bliskovno napravo in omogočim dostop do lupine preko virtualnega serijskega priključka.

Okruženje

Po prijavi kot uporabnik root na serijski konzoli lahko zaženete naslednje programe:

  • rogue: klasična Unixova pustolovska igra o podzemljih;
  • 2048: preprosta igra 2048 v konzolnem načinu;
  • fortune: izpis različnih pompoznih izrekov. Odločil sem se, da tukaj ne vključim celotne baze citatov, da ostane prostor za druge funkcije;
  • micropython: zelo majhen interpretor Python.

Emulacija Flash Drive

Med kompajliranjem orodja za sestavljanje generirajo majhno sliko FAT32 in jo dodajo kot eno od particij UBI. Linuxova podsystemska platforma jo predstavi kot napravo za shranjevanje.

Če vas zanima, kaj je na USB ključku, je najlažje to videti tako, da si ogledate izvorne kode. Tam so tudi nekaj fotografij in moj življenjepis.

Ресурсы

Izvirniki

Moje drevo Buildroot je objavljeno na GitHubu — thirtythreeforty/businesscard-linux. Tam je koda za generiranje USB slike NOR, ki se namesti prek načina prenosa po USB pri procesorju. Tam so tudi vse definicije paketov za igre in druge programe, ki sem jih dodal v Buildroot, potem ko je vse delovalo. Če želite uporabiti F1C100s v svojem projektu, je to odlična izhodiščna točka (ne oklevajte, da mi postavite vprašanja).
Uporabil sem odlično izveden projekt Linux v4.9 za F1C100s avtorja Icenowy, nekoliko sem ga prilagodil. Na moji kartici deluje skoraj standardna v5.2. Ta je objavljena na GitHubu — thirtythreeforty/linux.
Menim, da imam danes najboljšo različico U-Boot za F1C100s na svetu, ki je deloma tudi na delu Icenowy (presenetljivo, da je bilo precej neprijetno spraviti U-Boot, da deluje pravilno). Lahko jo tudi najdete na GitHubu — thirtythreeforty/u-boot.

Dokumentacija za F1C100s

Našel sem precej skromno dokumentacijo za F1C100s in jo objavljam tukaj:

Za radovedne nalagam načrt mojega projekta.

Na moji vizitki deluje Linux

Zaključek

Med razvojem tega projekta sem se veliko naučil – to je moj prvi projekt, kjer sem uporabil peč za spajkanje s topljenjem spajke. Prav tako sem se naučil najti vire za komponente s slabo dokumentacijo.

Utemeljil sem svoje izkušnje z vgrajenim Linuxom in izkušnjami pri razvoju plošč. Projekt ni brez pomanjkljivosti, vendar dobro prikazuje vse moje sposobnosti.

Tistim, ki jih zanima podrobnosti o delu z vgrajenim Linuxom, priporočam, da preberejo mojo serijo člankov o tem: Mastering Embedded Linux. Tam podrobno opisujem, kako ustvariti programsko opremo in strojno opremo od nič za drobne in poceni linux sisteme, podobne tej moji vizitki.

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster