Moja vizitka beží na Linuxe

Preklad článku z blogu inžinier George Hilliard

Moja vizitka beží na Linuxe
Klikateľné

Som inžinier vstavaných systémov. Vo voľnom čase často hľadám niečo, čo sa dá využiť pri návrhu budúcich systémov, alebo niečo z mojich záujmov.

Jednou z takýchto oblastí sú lacné počítače, na ktorých je možné spustiť Linux a čím lacnejšie, tým lepšie. Tak som vykopal hlbokú králičiu noru obskúrnych procesorov.

Pomyslel som si: "Tieto procesory sú také lacné, že sa dajú prakticky rozdávať zadarmo." A po nejakom čase ma napadla myšlienka vyrobiť holú kartu pre Linux vo forme vizitky.

Keď som sa nad tým zamyslel, rozhodol som sa, že by to bola naozaj skvelá vec. Už som videli elektronický vizitky na to, a disponovali rôznymi zaujímavými schopnosťami, ako napríklad emulácia flash kariet, blikanie žiaroviek alebo dokonca bezdrôtový prenos dát. Nevidel som však vizitky s podporou Linuxu.

Tak som si jeden vyrobil.

Toto je hotová verzia produktu. Kompletný minimálny počítač ARM s mojou vlastnou verziou Linuxu postavenou pomocou Buildroot.

Moja vizitka beží na Linuxe

V rohu má USB port. Ak ho pripojíte k počítaču, spustí sa približne za 6 sekúnd a je viditeľný ako flash karta a virtuálny sériový port, cez ktorý sa môžete prihlásiť do shellu karty. Na flash disku je súbor README, kópia môjho životopisu a niekoľko mojich fotografií. Shell má niekoľko hier, unixové klasiky ako fortune a rogue, malú verziu hry 2048 a tlmočníka MicroPythonu.

To všetko sa deje pomocou veľmi malého 8 MB flash čipu. Bootloader sa zmestí do 256 KB, jadro zaberá 1,6 MB a celý koreňový súborový systém zaberá 2,4 MB. Preto zostáva veľa miesta pre virtuálny flash disk. K dispozícii je tiež domovský adresár, do ktorého je možné zapisovať v prípade, že niekto urobí čokoľvek, čo chce uložiť. To všetko je tiež uložené na flash čipe.

Celé zariadenie stojí menej ako 3 doláre. Je to dosť lacné na rozdávanie. Ak ste odo mňa dostali takéto zariadenie, znamená to, že sa na vás s najväčšou pravdepodobnosťou snažím zapôsobiť.

Navrhnite a postavte

Všetko som si navrhol a zmontoval sám. Je to moja práca a milujem ju a veľkou výzvou bolo nájsť dostatočne lacné diely pre hobby.

Výber spracovateľa bol najdôležitejším rozhodnutím ovplyvňujúcim cenu a realizovateľnosť projektu. Po rozsiahlom výskume som si vybral F1C100s, pomerne málo známy procesor od Allwinner, ktorý je nákladovo optimalizovaný (teda prekliato lacný). RAM aj CPU sú umiestnené v rovnakom balení. Kúpil som procesory na Taobao. Všetky ostatné komponenty boli zakúpené od LCSC.

Dosky som objednal od JLC. Urobili pre mňa 8 kópií za 10 dolárov. Ich kvalita je pôsobivá, najmä za cenu; nie také elegantné ako OSHPark, ale stále vyzerajú dobre.

Prvú várku som vyrobil matne čierny. Vyzerali krásne, no veľmi ľahko sa zašpinili.

Moja vizitka beží na Linuxe

S prvou várkou sa vyskytlo niekoľko problémov. Po prvé, konektor USB nebol dostatočne dlhý, aby sa bezpečne zmestil do akéhokoľvek portu USB. Po druhé, stopy blesku boli urobené nesprávne, ale obišiel som to ohnutím kontaktov.

Moja vizitka beží na Linuxe

Po skontrolovaní, či všetko funguje, som objednal novú dávku dosiek; Fotku jedného z nich si môžete pozrieť na začiatku článku.

Vzhľadom na malú veľkosť všetkých týchto malých komponentov som sa rozhodol uchýliť k spájkovaniu pomocou pretavenia lacný sporák. Mám prístup k laserovej rezačke, tak som ju použil na vystrihnutie spájkovacej šablóny z fólie laminátoru. Šablóna dopadla celkom dobre. Otvory pre kontakty procesora s priemerom 0,2 mm si vyžadovali špeciálnu starostlivosť, aby sa zabezpečila vysoká kvalita výroby - bolo dôležité správne zaostriť laser a zvoliť jeho výkon.

Moja vizitka beží na Linuxe
Iné dosky dobre držia dosku pri nanášaní pasty.

Naniesol som spájkovaciu pastu a umiestnil súčiastky ručne. Dbal som na to, aby sa v procese nikde nepoužívalo olovo – všetky dosky, komponenty a pasta spĺňajú normu RoHS - aby ma netrápilo svedomie, keď ich rozdávam ľuďom.

Moja vizitka beží na Linuxe
S touto dávkou som sa mierne pomýlil, ale spájkovacia pasta chyby odpúšťa a všetko do seba zapadlo

Polohovanie každého komponentu trvalo približne 10 sekúnd, preto som sa snažil obmedziť počet komponentov na minimum. Viac podrobností o dizajne mapy si môžete prečítať v inom môj podrobný článok.

Zoznam materiálov a nákladov

Držal som sa prísneho rozpočtu. A vizitka dopadla tak, ako mala - nevadí mi ju dať preč! Samozrejme, že to nedám každému, pretože vytvorenie každej kópie si vyžaduje čas a môj čas sa nezohľadňuje v cene vizitky (je to akosi zadarmo).

komponentov
Cena

F1C100s
$1.42

PCB
$0.80

8 MB flash
$0.17

Všetky ostatné komponenty
$0.49

Celkom
$2.88

Prirodzene, existujú aj náklady, ktoré sa ťažko kalkulujú, ako napríklad dodávka (keďže je rozdelená medzi komponenty určené pre viacero projektov). Avšak pre dosku, ktorá podporuje Linux, je to určite dosť lacné. Toto rozdelenie tiež poskytuje dobrú predstavu o tom, koľko stojí spoločnosti výroba zariadení v najnižšom cenovom segmente: môžete si byť istí, že spoločnosti to stojí ešte menej ako mňa!

Možnosti

Čo na to povedať? Karta nabootuje veľmi silne zbavený Linux za 6 sekúnd. Vzhľadom na tvarový faktor a cenu nemá karta I/O, sieťovú podporu ani žiadne významné množstvo úložného priestoru na spustenie náročných programov. Napriek tomu sa mi podarilo do obrazu firmvéru vtesnať kopu zaujímavostí.

USB

S USB sa dalo urobiť veľa skvelých vecí, ale vybral som si najjednoduchšiu možnosť, aby ľudia s väčšou pravdepodobnosťou fungovali, ak by sa rozhodli vyskúšať moju vizitku. Linux umožňuje, aby sa karta správala ako „zariadenie“ s podporou Modul gadget. Prevzal som niektoré ovládače z predchádzajúcich projektov, ktoré obsahovali tento procesor, takže mám prístup ku všetkým funkciám rámca USB gadget. Rozhodol som sa emulovať vopred vygenerovaný flash disk a poskytnúť shell prístup cez virtuálny sériový port.

škrupina

Po prihlásení ako root môžete na sériovej konzole spustiť nasledujúce programy:

  • rogue: klasická unixová adventúra s preliezaním dungeonov;
  • 2048: jednoduchá hra z roku 2048 v režime konzoly;
  • šťastie: výstup rôznych domýšľavých výrokov. Rozhodol som sa sem nezaradiť celú citačnú databázu, aby som nechal priestor pre ďalšie funkcie;
  • mikropytón: Veľmi malý prekladač jazyka Python.

Emulácia flash disku

Počas kompilácie zostavovacie nástroje vygenerujú malý obraz FAT32 a pridajú ho ako jeden z oddielov UBI. Linux Gadget Subsystem predstavuje jeho PC ako úložné zariadenie.

Ak máte záujem vidieť, čo sa zobrazuje na jednotke flash, najjednoduchší spôsob, ako to urobiť, je čítanie zdrojov. Je tam aj niekoľko fotografií a môj životopis.

zdroje

Zdroje

Môj strom Buildroot je zverejnený na GitHub - tridsaťtrištyridsať/vizitka-linux. Existuje kód na generovanie obrazu NOR flash, ktorý sa inštaluje pomocou režimu sťahovania USB procesora. Má tiež všetky definície balíkov pre hry a iné programy, ktoré som vložil do Buildroot potom, čo som všetko spustil. Ak máte záujem použiť F1C100 vo svojom projekte, toto by bol skvelý štartovací bod (neváhajte klásť mi otázky).
použil som krásne spracovaný projekt Linux v4.9 pre F1C100 od Icenowy, mierne prepracovaný. Moja karta beží takmer štandardne v5.2. Je to na GitHub - tridsaťtrištyridsať/linux.
Myslím si, že mám dnes najlepší port U-Boot pre F1C100 na svete a je tiež čiastočne založený na práci Icenowyho (prekvapivo, správne fungovanie U-Bootu bola dosť frustrujúca úloha). Môžete ho získať aj na GitHub - tridsaťtrištyridsať/u-boot.

Dokumentácia pre F1C100s

Našiel som pomerne riedku dokumentáciu pre F1C100 a zverejňujem ju tu:

Nahrávam to pre zvedavcov. diagram môjho projektu.

Moja vizitka beží na Linuxe

Záver

Počas vývoja tohto projektu som sa veľa naučil – bol to môj prvý projekt s použitím pretavovacej spájkovacej pece. Tiež som sa naučil, ako nájsť zdroje pre komponenty so zlou dokumentáciou.

Využil som svoje doterajšie skúsenosti s embedded Linuxom a skúsenosťami s vývojom dosky. Projekt nie je bezchybný, ale dobre ukazuje všetky moje schopnosti.

Pre tých, ktorí sa zaujímajú o podrobnosti o práci s vstavaným Linuxom, odporúčam prečítať si sériu článkov o tomto: Zvládnutie vstavaného Linuxu. Tam podrobne hovorím o tom, ako vytvoriť softvér a hardvér od začiatku pre malé a lacné systémy Linux, podobne ako moja vizitka.

Zdroj: hab.com

Pridať komentár