Cikk fordítása Georg Hilliard mérnöktől
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 tól , é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 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.

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.

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, 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 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 szabványnak – hogy ne gyötörjön a lelkiismeretem, amikor osztogatom őket az embereknek.

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 .
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 . 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;
- : 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 . 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ó — . 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 ).
Használom 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ó — .
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ő — .
Dokumentáció az F1C100s-ről
Találtam egy meglehetősen hiányos dokumentációt az F1C100s-hez, és itt osztom meg:
- – általános információk és pinout.
- – az F1C600 regisztermeghatározásai, ami valójában ugyanaz az F1C100s, csak átnevezve, Linux támogatással (ha!).
- Aktívan merítettem információt a – fejlesztői lap, amit a szoftver beállításához használtam.
A kíváncsiskodóknak feltöltöm .

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: . 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
