A névjegykártyámon Linux fut

Cikk fordítása blogja Georg Hilliard mérnöktől

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

Én beágyazott rendszerek mérnöke vagyok. Szabadidőmben gyakran keresek olyan dolgokat, amelyeket a jövőbeli rendszerek tervezéséhez használhatok, vagy amelyek az érdeklődési körömbe tartoznak.

Az egyik ilyen terület az olcsó számítógépek, amelyek támogatják a Linuxot, és minél olcsóbb, annál jobb. Ezért mélyen beleástam magam az ismeretlen processzorok világába.

Arra gondoltam: „Ezek a processzorok olyan olcsók, hogy szinte ingyenosztogathatók.” És egy idő után megjelent bennem az ötlet, hogy készítsek egy szabad kártyát Linuxhoz, névjegykártya formátumban.

Amint eszembe jutott, eldöntöttem, hogy ezt tényleg király lenne megcsinálni. Én már láttam elektronikus névjegyeket tól ez, és különböző érdekes lehetőségeik voltak, mint például a flash kártyák emulálása, LED-ek villogtatása vagy akár vezeték nélküli adatátvitel. De névjegykártyát Linux támogatással még nem láttam.

Szóval készítettem magamnak egy ilyet.

Ez a termék végleges változata. Egy teljes értékű minimális számítógép ARM-on, amelyen az én speciális Linux verzióm fut, a Buildroot segítségével létrehozva.

A névjegykártyámon Linux fut

A sarkában van egy USB-port. Ha csatlakoztatom egy számítógéphez, körülbelül 6 másodperc alatt betöltődik, és mint egy flash meghajtó és egy virtuális soros port jelenik meg, amelyhez be lehet lépni a kártya shell-jébe. A flash meghajtón található egy README fájl, az önéletrajzom másolata és néhány fényképem. A shell-ben több játék található, klasszikus Unix játékok, mint például a fortune és a rogue, egy kicsi 2048 játék verzió és a MicroPython értelmező.

Mindez egy nagyon kicsi, 8 MB-os flash chip segítségével készült. A bootloader 256 KB-ot foglal el, a kernel 1,6 MB, a teljes root fájlrendszer pedig 2,4 MB. Tehát sok hely marad a virtuális flash meghajtón. Van egy írásra is elérhető otthoni könyvtár – ha valaki csinál valamit, amit meg akar tartani. Mindez is a flash chipen kerül mentésre.

Az egész eszköz kevesebb mint 3 dollárba kerül. Olyan olcsó, hogy szét lehessen osztani. Ha kaptál tőlem egy ilyen eszközt, az azt jelenti, hogy valószínűleg próbálok benne látványt kelteni.

Tervezés és összeállítás

Mindent saját magam terveztem és építettem. Ez az én munkám, és szeretem, a nehézségek nagy része abban állt, hogy olyan olcsó alkatrészeket keressek, amelyek megfelelnek ennek a hobbinak.

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. Aktív kutatás után az F1C100s-t választottam, egy viszonylag kevésbé ismert processzort az Allwinner-től, amit költséghatékonyságra optimalizáltak (azaz elképesztően olcsó). Egy házban található a RAM és a CPU. A processzorokat a Taobao-n vásároltam. Minden egyéb alkatrészt az LCSC-n vásároltam.

A lapokat a JLC-től rendeltem. 8 dollárért 10 másolatot készítettek. A minőségük lenyűgöző, különösen ennyiért; nem olyan pontosak, mint az OSHPark, de így is jól néznek ki.

Az első széria matt fekete színű volt. Szépek voltak, de nagyon foltosak.

A névjegykártyámon Linux fut

Az első szériával volt néhány probléma. Először is, az USB csatlakozó nem volt elég hosszú ahhoz, hogy biztonságosan illeszkedjen minden USB portba. Másodszor, a flash padok nem voltak megfelelően kialakítva, de ezt megoldottam, az érintkezőket meghajlítva.

A névjegykártyámon Linux fut

Miután mindent leteszteltem, rendeltem egy új lapkészletet; az egyik fotóját láthatjátok a cikk elején.

Ezeknek a kis alkatrészeknek a kis mérete miatt a forrasztó paszta [reflow solder] olvasztásával döntöttem a forrasztás mellett, használva egy olcsó sütőt.Közelítésem van egy lézervágóhoz, ezért készítettem egy forrasztásmintázót lamináló fóliából. A sablon meglehetősen jól sikerült. A processzor érintkezőihoz 0,2 mm átmérőjű nyílások különös gondosságot igényeltek a minőségi előállításhoz – kritikus fontosságú volt, hogy a lézert megfelelően fókuszáljam és beállítsam a teljesítményét.

A névjegykártyámon Linux fut
A lapok rögzítésére a pasztázás során jól működnek más lapok.

Felvittem a forrasztópasztát, és manuálisan elhelyeztem a komponenseket. Gondoskodtam arról, hogy a folyamat során sehol ne használjak ónt – minden lap, alkatrész és paszta megfelel a RoHS szabványnak – hogy ne gyötörjön a lelkiismeretem, amikor osztogatom őket az embereknek.

A névjegykártyámon Linux fut
Ezzel a szériával egy kicsit tévedtem, de a forrasztópaszta megbocsátja a hibákat, és minden normálisan összeállt.

Minden alkatrész elhelyezésére körülbelül 10 másodperc ment el, ezért próbáltam a mennyiséget minimalizálni. További részleteket a lap tervezéséről egy másik részletes cikkemben.

olvashattok az anyagok listájáról és a költségekről.

Szoros költségvetést tartottam. A névjegy pontosan olyanra sikerült, ahogy terveztem - nem sajnálom átadni! Persze, nem fogom mindenkinek osztogatni, mert minden példány előállítása időt vesz igénybe, ami nincs figyelembe véve a névjegy áránál (mintha ingyenes lenne).

Összetevő
Ár

F1C100s
$1.42

PCB
$0.80

8MB flash
$0.17

Minden egyéb komponens
$0.49

Összesen
$2.88

Természetesen vannak még olyan költségek is, amelyeket nehéz kiszámítani, mint például a szállítás (mivel ez megoszlott a több projektre szánt komponensek között). Mindazonáltal Linux támogatással rendelkező lap esetén ez határozottan nagyon olcsó. Ez a bontás jó képet ad arról, hogy mennyibe kerül a vállalatok számára az alsó árkategóriás eszközök előállítása: biztosíthatom, hogy a vállalatok számára ez még olcsóbb, mint nekem!

Lehetőségek

Mit mondjak? A kártya 6 másodperc alatt betölti a nagyon minimalista Linuxot. A formátum és az ár miatt a kártyának nincs I/O, hálózati támogatása, és nincs komoly tárolókapacitása nehéz programok futtatásához. Ennek ellenére sikerült belezsúfolnom a firmware képébe sok érdekes dolgot.

USB

Az USB-vel sok érdekes dolgot ki lehetett volna találni, de én a legegyszerűbb megoldást választottam, hogy az emberek nagy valószínűséggel minden működjön, ha úgy döntenek, hogy kipróbálják a névjegyemet. A Linux lehetővé teszi, hogy a kártya "eszközként" viselkedjen, támogatva Gadget keretrendszer. Néhány drivert előző projektekből vettem, amelyek ezt a processzort tartalmazták, így hozzáférésem van a USB gadget keretrendszer összes funkciójához. Úgy döntöttem, hogy egy előre generált flash meghajtót emulálok, és hozzáférést adok a shellhez virtuális soros porton keresztül.

Shell

A root felhasználó bejelentkezése után a soros konzolon elindíthatók a következő programok:

  • rogue: klasszikus Unix kalandjáték a kazamatákról;
  • 2048: egyszerű 2048 játék konzolos módban;
  • fortune: különböző nagyszabású idézetek kiírása. Úgy döntöttem, hogy nem tartalmazom az összes idézetet, hogy maradjon hely más funkcióknak;
  • micropython: nagyon kicsi Python interpreter.

Flash meghajtó emuláció

A fordítás során az építőeszközök egy kis FAT32 képet generálnak, és azt a UBI egyik partíciójaként hozzáadják. A Linux gadget alrendszere a PC-t tárolóeszközként mutatja be.

Ha érdekli, hogy mi található a pendrive-on, a legegyszerűbben úgy teheti, hogy átnézi a forráskódokat. Ott található néhány fénykép és az önéletrajzom is.

Források

Források

A Buildroot fábaum a GitHub-on található — thirtythreeforty/businesscard-linux. Ott megtalálható a NOR flash kép generálásához szükséges kód, amelyet a processzor USB-n történő letöltési módban telepít. Továbbá minden csomagdefiníció, amelyet játékokhoz és más programokhoz adtam hozzá a Buildroot-ban, miután minden működni kezdett. Ha az F1C100s-t szeretné használni a projektjében, ez remek kiindulópont lesz (ne habozzon kérdezni tőlem).
Használom remekül megvalósított projekt a Linux v4.9-ről az F1C100s-hez Icenowy által, egy kicsit átalakítva. Az én kártyámon majdnem a szabványos v5.2 működik. Ez szintén a GitHub-on található — thirtythreeforty/linux.
Azt hiszem, ma nekem van a legjobb U-Boot port az F1C100s-hez a világon, és ez is részben Icenowy munkáján alapul (meglepő módon, a U-Boot-ot rendesen működtetni meglehetősen kellemetlen feladatnak bizonyult). Ezen kívül a GitHub-on is elérhető — thirtythreeforty/u-boot.

Dokumentáció az F1C100s-ről

Találtam egy meglehetősen hiányos dokumentációt az F1C100s-hez, és itt osztom meg:

A kíváncsiskodóknak feltöltöm a projekt szigorú rajzát.

A névjegykártyámon Linux fut

Zárás

Az elmúlt projekt fejlesztése során sok mindent tanultam – ez az első projekt, amelyben forrasztó kemencét használtam. Ezen kívül megtanultam, hogyan találjak forrást olyan komponensekhez, amelyekhez gyenge dokumentáció áll rendelkezésre.

A beágyazott Linux-szal kapcsolatos tapasztalatom és a lapkák fejlesztésében szerzett tudásom alapján dolgoztam. A projekt nem hibátlan, de jól bemutatja az összes képességemet.

A beágyazott Linux-szal kapcsolatos részletek iránt érdeklődőknek ajánlom a sorozatomat erről: Beágyazott Linux elsajátítása. Ott részletesen beszélek arról, hogyan lehet szoftvert és hardvert készíteni a nulláról kiszorzott és olcsó Linux-rendszerekhez, hasonlóan ehhez az én névjegykártyámhoz.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster