Moje vizitka běží na Linuxu

Překlad článku z blogu inženýr George Hilliard

Moje vizitka běží na Linuxu
Klikací

Jsem inženýr vestavěných systémů. Ve volném čase často hledám něco, co se dá využít při návrhu budoucích systémů, nebo něco z mých zájmů.

Jednou z takových oblastí jsou levné počítače, na kterých lze provozovat Linux a čím levnější, tím lepší. Tak jsem vykopal hlubokou králičí noru obskurních procesorů.

Myslel jsem si: "Tyto procesory jsou tak levné, že je lze prakticky rozdávat zdarma." A po nějaké době mě napadlo udělat holou kartu pro Linux ve formě vizitky.

Jakmile jsem o tom přemýšlel, rozhodl jsem se, že by to byla opravdu skvělá věc. už mám viděl elektronický vizitky na to, a disponovaly různými zajímavými schopnostmi, jako je emulace flash karet, blikání žárovek nebo dokonce bezdrátový přenos dat. Vizitky s podporou Linuxu jsem však neviděl.

Tak jsem si jeden udělal.

Toto je hotová verze produktu. Kompletní minimální počítač ARM s mojí vlastní verzí Linuxu postavenou s Buildroot.

Moje vizitka běží na Linuxu

Má USB port v rohu. Pokud jej připojíte k počítači, nabootuje se asi za 6 sekund a je viditelný jako flash karta a virtuální sériový port, přes který se můžete přihlásit do shellu karty. Na flash disku je soubor README, kopie mého životopisu a několik mých fotografií. Shell má několik her, unixové klasiky jako fortune a rogue, malou verzi hry 2048 a interpret MicroPythonu.

To vše se děje pomocí velmi malého 8 MB flash čipu. Bootloader se vejde do 256 KB, jádro zabere 1,6 MB a celý kořenový souborový systém zabere 2,4 MB. Pro virtuální flash disk tedy zbylo hodně místa. K dispozici je také domovský adresář, do kterého lze zapisovat pro případ, že by někdo udělal cokoli, co by chtěl uložit. To vše je také uloženo na flash čipu.

Celé zařízení stojí méně než 3 dolary. Je to dost levné na rozdávání. Pokud jste ode mě dostali takové zařízení, znamená to, že se na vás s největší pravděpodobností snažím udělat dojem.

Navrhněte a postavte

Vše jsem si navrhl a smontoval sám. Je to moje práce a miluji ji a velkou výzvou bylo najít dostatečně levné díly pro hobby.

Výběr zpracovatele byl nejdůležitějším rozhodnutím ovlivňujícím cenu a proveditelnost projektu. Po rozsáhlém zkoumání jsem si vybral F1C100s, poměrně málo známý procesor od Allwinner, který je nákladově optimalizovaný (tj. zatraceně levný). RAM i CPU jsou umístěny ve stejném balení. Koupil jsem procesory na Taobao. Všechny ostatní komponenty byly zakoupeny od LCSC.

Desky jsem objednal u JLC. Udělali pro mě 8 kopií za 10 dolarů. Jejich kvalita je působivá, zejména za cenu; není tak elegantní jako OSHPark, ale stále vypadá dobře.

První várku jsem vyrobil matně černou. Vypadaly krásně, ale velmi snadno se ušpinily.

Moje vizitka běží na Linuxu

S první várkou bylo několik problémů. Za prvé, konektor USB nebyl dostatečně dlouhý, aby se bezpečně vešel do jakéhokoli portu USB. Za druhé, stopy blesku byly provedeny nesprávně, ale obešel jsem to ohnutím kontaktů.

Moje vizitka běží na Linuxu

Po kontrole, že vše funguje, jsem objednal novou dávku desek; Fotku jednoho z nich si můžete prohlédnout na začátku článku.

Vzhledem k malé velikosti všech těchto malých součástek jsem se rozhodl uchýlit se k pájení pomocí přetavení levný sporák. Mám přístup k laserové řezačce, tak jsem ji použil k vyříznutí pájecí šablony z fólie laminátoru. Šablona se docela povedla. Otvory pro kontakty procesoru o průměru 0,2 mm vyžadovaly zvláštní péči, aby byla zajištěna vysoce kvalitní výroba - bylo důležité správně zaostřit laser a zvolit jeho výkon.

Moje vizitka běží na Linuxu
Jiné desky dobře drží desku při nanášení pasty.

Nanesl jsem pájecí pastu a ručně umístil součástky. Ujistil jsem se, že nikde v procesu nebylo použito olovo – všechny desky, součástky i pasta splňují normu RoHS - aby mě netrápilo svědomí, až je budu rozdávat lidem.

Moje vizitka běží na Linuxu
U této šarže jsem udělal drobnou chybu, ale pájecí pasta chyby odpouští a vše do sebe dobře zapadlo

Umístění každé součástky trvalo asi 10 sekund, takže jsem se snažil omezit počet součástek na minimum. Více podrobností o designu mapy si můžete přečíst v jiném můj podrobný článek.

Seznam materiálů a ceny

Držel jsem se přísného rozpočtu. A vizitka dopadla tak, jak bylo zamýšleno - nevadí mi ji dát pryč! Samozřejmě ji nedám každému, protože vytvoření každé kopie zabere čas a můj čas není v ceně vizitky zohledněn (je tak trochu zdarma).

Komponenta
Cena

F1C100s
$1.42

PCB
$0.80

8 MB flash
$0.17

Všechny ostatní komponenty
$0.49

Celkem
$2.88

Samozřejmě existují i ​​náklady, které se obtížně kalkulují, jako je dodávka (jelikož je rozdělena mezi komponenty určené pro více projektů). Nicméně na desku, která podporuje Linux, je to rozhodně docela levné. Toto rozdělení také poskytuje dobrou představu o tom, kolik to stojí společnosti vyrábět zařízení v nejnižším cenovém segmentu: můžete si být jisti, že to společnosti stojí ještě méně než mě!

Možnosti

Co na to říct? Karta nabootuje velmi silně zbavený Linux za 6 sekund. Vzhledem k tvaru a ceně nemá karta I/O, síťovou podporu ani žádné významné množství úložiště pro spouštění náročných programů. Přesto se mi do image firmwaru podařilo nacpat hromadu zajímavých věcí.

USB

S USB bylo možné dělat spoustu skvělých věcí, ale zvolil jsem nejjednodušší možnost, aby lidé měli větší šanci, že to zprovozní, pokud se rozhodnou vyzkoušet mou vizitku. Linux umožňuje, aby se karta chovala jako „zařízení“ s podporou Gadget Framework. Převzal jsem některé ovladače z předchozích projektů, které obsahovaly tento procesor, takže mám přístup ke všem funkcím rámce USB gadget. Rozhodl jsem se emulovat předem vygenerovaný flash disk a poskytnout shell přístup přes virtuální sériový port.

Shell

Po přihlášení jako root můžete na sériové konzoli spouštět následující programy:

  • rogue: klasická unixová adventura s procházením dungeonů;
  • 2048: jednoduchá hra roku 2048 v režimu konzole;
  • štěstí: výstup různých domýšlivých výroků. Rozhodl jsem se sem nezahrnout celou citační databázi, abych nechal prostor pro další funkce;
  • mikropython: Velmi malý Python interpret.

Emulace flash disku

Během kompilace sestavovací nástroje vygenerují malý obraz FAT32 a přidají jej jako jeden z oddílů UBI. Linux Gadget Subsystem představuje jeho PC jako úložné zařízení.

Pokud máte zájem vidět, co se objeví na flash disku, nejjednodušší způsob, jak to udělat, je číst Zdroje. Je tam také několik fotografií a můj životopis.

Ресурсы

Prameny

Můj strom Buildroot je zveřejněn na GitHubu - třicet třiačtyřicet/vizitka-linux. Existuje kód pro generování bitové kopie NOR flash, která se instaluje pomocí režimu stahování USB procesoru. Má také všechny definice balíčků pro hry a další programy, které jsem vložil do Buildroot poté, co jsem vše zprovoznil. Pokud máte zájem o použití F1C100 ve vašem projektu, byl by to skvělý výchozí bod (neváhejte klást mi otázky).
Použil jsem krásně provedený projekt Linux v4.9 pro F1C100s od Icenowy, mírně přepracovaný. Moje karta běží téměř na standardní verzi 5.2. Je to na GitHubu - třicet třiačtyřicet/linux.
Myslím, že mám dnes nejlepší port U-Bootu pro F1C100 na světě a je také částečně založen na práci Icenowyho (překvapivě, aby U-Boot fungoval správně, byl docela frustrující úkol). Můžete jej také získat na GitHubu - třicet třiačtyřicet/u-boot.

Dokumentace pro F1C100s

Našel jsem poměrně řídkou dokumentaci k F1C100 a posílám ji zde:

Nahrávám to pro zvědavce. můj projektový diagram.

Moje vizitka běží na Linuxu

Závěr

Během vývoje tohoto projektu jsem se hodně naučil – byl to můj první projekt využívající přetavovací pájecí pec. Také jsem se naučil, jak najít zdroje pro komponenty se špatnou dokumentací.

Využil jsem své dosavadní zkušenosti s embedded Linuxem a zkušenostmi s vývojem desek. Projekt není bez chyb, ale dobře ukazuje všechny mé dovednosti.

Pro ty, kteří se zajímají o podrobnosti o práci s vestavěným Linuxem, doporučuji přečíst si moji sérii článků o tomto: Zvládnutí vestavěného Linuxu. Mluvím tam podrobně o tom, jak vytvořit software a hardware od nuly pro malé a levné linuxové systémy, podobně jako moje vizitka.

Zdroj: www.habr.com

Přidat komentář