A névjegykártyámon Linux fut

Egy cikk fordítása innen blogbejegyzés George Hilliard mérnök

A névjegykártyámon Linux fut
Kattintható

Beágyazott rendszerek mérnök vagyok. Szabadidőmben gyakran keresek olyat, ami a jövőbeni rendszerek tervezésénél használható, vagy az érdeklődési körömből.

Az egyik ilyen terület az olcsó számítógépek, amelyeken Linux futhat, és minél olcsóbb, annál jobb. Így hát kiástam a homályos processzorok mély üregét.

Arra gondoltam: „Ezek a processzorok olyan olcsók, hogy gyakorlatilag ingyen adják őket.” És egy idő után felmerült bennem az ötlet, hogy készítsek egy csupasz kártyát Linuxra névjegykártya formájában.

Amint átgondoltam, úgy döntöttem, ez egy nagyon klassz dolog lesz. Már láttam elektronikus névjegykártyák a azt, és különféle érdekes képességekkel rendelkeztek, mint például flash kártyák emulálása, villogó izzók, vagy akár vezeték nélküli adatátvitel. Linux támogatással rendelkező névjegykártyákat viszont nem láttam.

Szóval csináltam magamnak egyet.

Ez a termék kész verziója. Egy komplett minimális ARM-számítógép, amelyen az én Buildroot-tal épített Linux-verzióm fut.

A névjegykártyámon Linux fut

A sarokban van egy USB port. Ha számítógéphez csatlakoztatja, körülbelül 6 másodperc alatt elindul, és flash kártyaként és virtuális soros portként látható, amelyen keresztül bejelentkezhet a kártyahéjba. A pendrive-on van egy README fájl, az önéletrajzom másolata és néhány fénykép rólam. A shell számos játékot tartalmaz, olyan Unix klasszikusokat, mint a fortune és a rogue, a 2048 játék kis verziója és egy MicroPython interpreter.

Mindez egy nagyon kicsi, 8 MB-os flash chip segítségével történik. A rendszerbetöltő 256 KB-ot, a kernel 1,6 MB-ot, a teljes gyökérfájlrendszer pedig 2,4 MB-ot foglal el. Ezért sok hely marad a virtuális pendrive-nak. Van egy kezdőkönyvtár is, amely írható arra az esetre, ha valaki bármit megtenne, amit el szeretne menteni. Mindez szintén flash chipre van mentve.

Az egész készülék kevesebb, mint 3 dollárba kerül. Elég olcsó ahhoz, hogy elajándékozza. Ha ilyen eszközt kapott tőlem, az azt jelenti, hogy valószínűleg megpróbálom lenyűgözni.

Tervezés és kivitelezés

Mindent magam terveztem és szereltem össze. Ez a munkám, és szeretem, és a kihívás nagy része az volt, hogy elég olcsó alkatrészeket találjak a hobbihoz.

A processzor kiválasztása volt a legfontosabb döntés, amely befolyásolta a projekt költségeit és megvalósíthatóságát. Kiterjedt kutatás után az F1C100s-ra esett a választásom, az Allwinner viszonylag kevéssé ismert processzora, amely költségoptimalizált (azaz baromi olcsó). A RAM és a CPU ugyanabban a csomagban található. Processzorokat vettem a Taobao-n. Az összes többi alkatrészt az LCSC-től vásároltuk.

A táblákat a JLC-től rendeltem. 8 példányt készítettek nekem 10 dollárért. Minőségük lenyűgöző, különösen az ár tekintetében; nem olyan ügyes, mint az OSHPark, de még mindig jól néz ki.

Az első adagot matt feketére készítettem. Szépnek tűntek, de nagyon könnyen szennyeződtek.

A névjegykártyámon Linux fut

Volt egy-két probléma az első adaggal. Először is, az USB-csatlakozó nem volt elég hosszú ahhoz, hogy biztonságosan illeszkedjen az USB-portokhoz. Másodszor, a flash sávok rosszul lettek elkészítve, de ezt az érintkezők meghajlításával megkerültem.

A névjegykártyámon Linux fut

Miután ellenőriztem, hogy minden működik, rendeltem egy új táblát; Az egyik fotót a cikk elején láthatja.

Mindezen kis alkatrészek kis mérete miatt úgy döntöttem, hogy az újrafolyatásos forrasztáshoz folyamodok olcsó tűzhely. Lézervágóhoz hozzáférek, így azzal vágtam ki egy forrasztósablont a lamináló fóliából. A sablon egész jól sikerült. A processzorérintkezők 0,2 mm átmérőjű furatai különleges odafigyelést igényeltek a minőségi gyártás érdekében – kritikus volt a lézer helyes fókuszálása és teljesítményének megválasztása.

A névjegykártyámon Linux fut
Más táblák jól tartják a táblát paszta felhordása közben.

Forrasztópasztát használtam, és kézzel helyeztem el az alkatrészeket. Megbizonyosodtam arról, hogy a folyamat során sehol nem használtak ólmot – minden tábla, alkatrész és paszta megfelel a szabványnak RoHS - hogy ne gyötörjön a lelkiismeretem, amikor szétosztom őket az emberek között.

A névjegykártyámon Linux fut
Egy kis hibát követtem el ezzel a tétellel, de a forrasztópaszta megbocsátja a hibákat, és minden rendben ment

Mindegyik komponens elhelyezése körülbelül 10 másodpercet vett igénybe, ezért igyekeztem minimálisra csökkenteni az alkatrészek számát. További részletek a térképtervezésről egy másikban olvashatók részletes cikkem.

Anyag- és költséglista

Ragaszkodtam a szigorú költségvetéshez. És a névjegykártya a szándéknak megfelelően lett - nem bánom, hogy odaadom! Természetesen nem adom ki mindenkinek, hiszen minden másolat elkészítése időbe telik, és az én időmet nem számolják bele a névjegykártya árába (ez amolyan ingyenes).

összetevő
Ár

F1C100s
$1.42

PCB
$0.80

8 MB flash
$0.17

Minden más komponens
$0.49

Összességében
$2.88

Természetesen vannak nehezen kiszámítható költségek is, mint például a szállítás (mivel több projektre szánt komponensek között oszlik meg). Azonban egy Linuxot támogató tábla esetében ez határozottan meglehetősen olcsó. Ez a bontás jó képet ad arról is, hogy mennyibe kerül a cégeknek a legalacsonyabb árkategóriába tartozó készülékek gyártása: biztos lehet benne, hogy a cégeknek még kevesebbe kerül, mint nekem!

Képességek

Mit is mondjak? A kártya 6 másodperc alatt indítja el a nagyon lecsupaszított Linuxot. A formai tényező és a költség miatt a kártya nem rendelkezik I/O-val, hálózati támogatással vagy jelentős mennyiségű tárhellyel a nehéz programok futtatásához. Ennek ellenére egy csomó érdekes dolgot sikerült belezsúfolni a firmware képébe.

USB

Sok jó dolgot meg lehetett csinálni USB-vel, de a legegyszerűbb lehetőséget választottam, hogy az emberek nagyobb valószínűséggel működjenek, ha úgy döntenek, hogy kipróbálják a névjegykártyámat. A Linux lehetővé teszi, hogy a kártya támogatással "eszközként" viselkedjen Gadget-keretrendszer. Vettem néhány illesztőprogramot a korábbi projektekből, amelyek tartalmazták ezt a processzort, így hozzáférhetek az USB modul keretrendszer összes funkciójához. Úgy döntöttem, hogy emulálok egy előre generált flash meghajtót, és egy virtuális soros porton keresztül adok shell hozzáférést.

héj

Rootként való bejelentkezés után a következő programokat futtathatja a soros konzolon:

  • rogue: klasszikus Unix dungeon-mászó kalandjáték;
  • 2048: egy egyszerű 2048-as játék konzol módban;
  • szerencse: különféle igényes mondások kimenetele. Úgy döntöttem, hogy nem veszem fel ide a teljes hivatkozási adatbázist, hogy helyet hagyjak más funkcióknak;
  • micropython: Egy nagyon kicsi Python interpreter.

Flash meghajtó emuláció

A fordítás során az összeállítási eszközök egy kis FAT32-képet generálnak, és hozzáadják az egyik UBI-partícióhoz. A Linux Gadget Alrendszer tárolóeszközként mutatja be a számítógépét.

Ha szeretné látni, hogy mi jelenik meg a flash meghajtón, ezt a legegyszerűbb módja az olvasás források. Több fénykép és az önéletrajzom is van.

Ресурсы

Források

A Buildroot-fám felkerült a GitHubon - thirtythreeforty/névjegy-linux. Létezik kód a NOR flash kép létrehozásához, amelyet a processzor USB letöltési módjával telepítenek. Ezenkívül tartalmazza az összes csomagdefiníciót a játékokhoz és más programokhoz, amelyeket betoltam a Buildrootba, miután minden működött. Ha szeretné használni az F1C100-asokat a projektjében, ez nagyszerű kiindulópont lenne (bátran kérdezz tőlem).
használtam gyönyörűen kivitelezett projekt Linux v4.9 for F1C100s, Icenowy, kissé áttervezve. A kártyámon szinte szabványos v5.2 fut. A GitHubon van - thirtythreeforty/linux.
Azt hiszem, ma a világ legjobb F1C100-as U-Boot portjával rendelkezem, és részben Icenowy munkáira is alapoz (meglepő módon elég frusztráló feladat volt az U-Boot megfelelő működésre hozása). A GitHubon is megkaphatod - thirtythreeforty/u-boot.

Az F1C100-asok dokumentációja

Meglehetősen ritka dokumentációt találtam az F1C100-hoz, és felteszem ide:

  • Allwinner F1C100s adatlap – általános információk és kiírás.
  • Allwinner F1C600 kézikönyv – regisztrálja az F1C600 definícióit, ami valójában ugyanaz az F1C100, de deklarált Linux támogatással átnevezve (ha!).
  • Aktívan kölcsönöztem információkat a diagramból Sipeed Lichee Nano – a fejlesztői tábla, amellyel a szoftvert konfiguráltam.

Kíváncsiak kedvéért feltöltöm. a projekt diagramom.

A névjegykártyámon Linux fut

Következtetés

Sokat tanultam ennek a projektnek a fejlesztése során – ez volt az első olyan projektem, amelyben reflow forrasztókemencét használtam. Azt is megtanultam, hogyan lehet forrásokat találni a gyenge dokumentációjú összetevőkhöz.

Felhasználtam a meglévő tapasztalataimat a beágyazott Linux és kártyafejlesztés terén. A projekt nem hibátlan, de minden képességemet jól mutatja.

Azoknak, akiket érdekelnek a beágyazott Linuxszal való munka részletei, javaslom, hogy olvassák el az erről szóló cikksorozatomat: A beágyazott Linux elsajátítása. Ott részletesen beszélek arról, hogyan lehet a semmiből szoftvert és hardvert létrehozni apró és olcsó Linux rendszerekhez, hasonlóan a névjegykártyámhoz.

Forrás: will.com

Hozzászólás