Manā vizītkartē darbojas Linux

Raksta tulkojums no emuāra ziņu inženieris Džordžs Hiliards

Manā vizītkartē darbojas Linux
NoklikŔķināms

Esmu iegulto sistēmu inženieris. BrÄ«vajā laikā bieži meklēju kaut ko, ko varētu izmantot nākotnes sistēmu projektÄ“Å”anā, vai kaut ko no savām interesēm.

Viena no Ŕādām jomām ir lēti datori, kuros var darboties Linux, un jo lētāk, jo labāk. Tāpēc es izraku dziļu truÅ”u bedri neskaidriem procesoriem.

Es domāju: "Å ie procesori ir tik lēti, ka tos praktiski var atdot bez maksas." Un pēc kāda laika man radās doma uztaisÄ«t pliku karti priekÅ” Linux vizÄ«tkartes formātā.

Kad es par to domāju, es nolēmu, ka tas bÅ«tu patieŔām forÅ”s pasākums. Es jau esmu redzējis elektroniska vizÄ«tkartes lÄ«dz tā, un tiem bija dažādas interesantas iespējas, piemēram, zibatmiņas karÅ”u emulÄ“Å”ana, mirgojoÅ”as spuldzes vai pat bezvadu datu pārraide. Taču vizÄ«tkartes ar Linux atbalstu neesmu redzējis.

Tāpēc es sev tādu izveidoju.

Šī ir produkta gatavā versija. Pilnīgs minimālais ARM dators, kurā darbojas mana pielāgotā Linux versija, kas izveidota ar Buildroot.

Manā vizītkartē darbojas Linux

Tam stÅ«rÄ« ir USB ports. Ja pievienojat to datoram, tas sāknējas apmēram 6 sekundēs un ir redzams kā zibatmiņas karte un virtuāls seriālais ports, caur kuru varat pieteikties kartes apvalkā. Zibatmiņas diskā ir README fails, mana CV kopija un vairākas manis fotogrāfijas. Apvalkā ir vairākas spēles, Unix klasika, piemēram, fortune un rogue, neliela spēles 2048 versija un MicroPython tulks.

Tas viss tiek darÄ«ts, izmantojot ļoti mazu 8 MB zibatmiņas mikroshēmu. SāknÄ“Å”anas ielādētājs iekļaujas 256 KB, kodols aizņem 1,6 MB, un visa saknes failu sistēma aizņem 2,4 MB. Tāpēc virtuālajam zibatmiņas diskam ir atlicis daudz vietas. Ir arÄ« mājas direktorijs, kurā var ierakstÄ«t, ja kāds izdara kaut ko, ko vēlas saglabāt. Tas viss ir arÄ« saglabāts zibatmiņas mikroshēmā.

Visa ierÄ«ce maksā mazāk nekā 3 USD. Tas ir pietiekami lēts, lai atdotu. Ja jÅ«s no manis saņēmāt Ŕādu ierÄ«ci, tas nozÄ«mē, ka, visticamāk, es cenÅ”os jÅ«s atstāt iespaidu.

Projektēt un būvēt

Visu projektēju un saliku pats. Tas ir mans darbs, un man tas patÄ«k, un liela daļa izaicinājumu ir bijusi pietiekami lētu detaļu atraÅ”ana hobijam.

Procesora izvēle bija vissvarÄ«gākais lēmums, kas ietekmēja projekta izmaksas un iespējamÄ«bu. Pēc plaÅ”as izpētes es izvēlējos F1C100s, salÄ«dzinoÅ”i maz zināmu Allwinner procesoru, kas ir optimizēts izmaksu ziņā (ti, sasodÄ«ti lēts). Gan RAM, gan CPU atrodas vienā iepakojumā. Es nopirku procesorus Taobao. Visas pārējās sastāvdaļas iegādātas no LCSC.

Plātnes pasÅ«tÄ«ju no JLC. Viņi man izgatavoja 8 kopijas par 10 USD. To kvalitāte ir iespaidÄ«ga, jo Ä«paÅ”i attiecÄ«bā uz cenu; nav tik veikls kā OSHPark, bet joprojām izskatās labi.

Pirmo partiju uztaisīju matēti melnu. Tie izskatījās skaisti, bet bija ļoti viegli notraipīti.

Manā vizītkartē darbojas Linux

Ar pirmo partiju bija pāris problēmas. Pirmkārt, USB savienotājs nebija pietiekami garÅ”, lai droÅ”i ietilptu jebkurā USB portā. Otrkārt, zibspuldzes celiņi tika izveidoti nepareizi, bet es to apietu, saliekot kontaktus.

Manā vizītkartē darbojas Linux

Pēc pārbaudes, vai viss darbojas, es pasūtīju jaunu dēļu partiju; Viena no tām fotoattēlu varat redzēt raksta sākumā.

Ņemot vērā visu Å”o mazo komponentu mazo izmēru, es nolēmu Ä·erties pie lodÄ“Å”anas ar pārpludināŔanu, izmantojot lēta plÄ«ts. Man ir pieejams lāzergriezējs, tāpēc ar to no laminatora plēves izgriezu lodÄ“Å”anas trafaretu. Trafarets sanāca diezgan labs. 0,2 mm diametra caurumiem procesora kontaktiem bija nepiecieÅ”ama Ä«paÅ”a piesardzÄ«ba, lai nodroÅ”inātu kvalitatÄ«vu izgatavoÅ”anu - ļoti svarÄ«gi bija pareizi fokusēt lāzeru un izvēlēties tā jaudu.

Manā vizītkartē darbojas Linux
Citi dēļi labi notur dēli pastas uzklāŔanas laikā.

Es uzklāju lodÄ“Å”anas pastu un novietoju sastāvdaļas ar roku. Pārliecinājos, ka procesā nekur netiek izmantots svins - visi dēļi, komponenti un pasta atbilst standartam RoHS - lai mana sirdsapziņa mani nemocÄ«tu, kad es tos izdalÄ«Å”u cilvēkiem.

Manā vizītkartē darbojas Linux
Es pieļāvu nelielu kļūdu ar Å”o partiju, bet lodÄ“Å”anas pastas piedod kļūdas, un viss gāja labi

Katra komponenta pozicionÄ“Å”ana prasÄ«ja apmēram 10 sekundes, tāpēc es centos samazināt komponentu skaitu lÄ«dz minimumam. SÄ«kāku informāciju par kartes dizainu var lasÄ«t citā mans detalizētais raksts.

Materiālu un izmaksu saraksts

Es pieturējos pie stingra budžeta. Un vizÄ«tkarte izrādÄ«jās tāda, kāda bija iecerēta - es neiebilstu to atdot! Protams, es to neizdoÅ”u visiem, jo ā€‹ā€‹katras kopijas izgatavoÅ”ana prasa laiku, un mans laiks netiek ņemts vērā vizÄ«tkartes izmaksās (tā ir sava veida bezmaksas).

komponents
Cena

F1C100s
$1.42

PCB
$0.80

8 MB zibatmiņa
$0.17

Visas pārējās sastāvdaļas
$0.49

Kopā
$2.88

Protams, ir arÄ« grÅ«ti aprēķināmas izmaksas, piemēram, piegāde (jo tā tiek sadalÄ«ta starp komponentiem, kas paredzēti vairākiem projektiem). Tomēr platei, kas atbalsta Linux, tas noteikti ir diezgan lēts. Å is sadalÄ«jums sniedz arÄ« labu priekÅ”statu par to, cik uzņēmumiem izmaksā ierīču izgatavoÅ”ana zemāko cenu segmentā: varat bÅ«t pārliecināts, ka tas maksā uzņēmumiem pat mazāk nekā man!

Spējas

Ko teikt? Karte 6 sekundēs sāk palaist ļoti nolietotu Linux. Formas faktora un izmaksu dēļ kartei nav I/O, tīkla atbalsta vai kāda nozīmīga krātuves apjoma, lai palaistu smagas programmas. Neskatoties uz to, man izdevās programmaparatūras attēlā ievietot virkni interesantu lietu.

USB

Bija daudz forÅ”u lietu, ko varēja izdarÄ«t ar USB, bet es izvēlējos vienkārŔāko variantu, lai cilvēkiem bÅ«tu lielāka iespēja to panākt, ja viņi nolēma izmēģināt manu vizÄ«tkarti. Linux ļauj kartei darboties kā "ierÄ«cei" ar atbalstu SÄ«krÄ«ku ietvars. Es paņēmu dažus draiverus no iepriekŔējiem projektiem, kuros bija iekļauts Å”is procesors, tāpēc man ir pieejama visa USB sÄ«krÄ«ka ietvara funkcionalitāte. Es nolēmu atdarināt iepriekÅ” Ä£enerētu zibatmiņas disku un nodroÅ”ināt čaulas piekļuvi, izmantojot virtuālo seriālo portu.

apvalks

Pēc pieteikÅ”anās kā root, seriālajā konsolē varat palaist Ŕādas programmas:

  • rogue: klasiska Unix Dungeon rāpoÅ”anas piedzÄ«vojumu spēle;
  • 2048: vienkārÅ”a spēle 2048 konsoles režīmā;
  • laime: dažādu pretenciozu teicienu iznākums. Es nolēmu Å”eit neiekļaut visu citātu datubāzi, lai atstātu vietu citām funkcijām;
  • mikropitons: Ä»oti mazs Python tulks.

Flash diska emulācija

Kompilācijas laikā veidoÅ”anas rÄ«ki Ä£enerē nelielu FAT32 attēlu un pievieno to kā vienu no UBI nodalÄ«jumiem. Linux sÄ«krÄ«ku apakÅ”sistēma piedāvā viņa datoru kā atmiņas ierÄ«ci.

Ja vēlaties redzēt, kas parādās zibatmiņas diskā, vienkārŔākais veids, kā to izdarÄ«t, ir lasÄ«t avoti. Ir arÄ« vairākas fotogrāfijas un mans CV.

Resursi

Avoti

Mans Buildroot koks ir ievietots GitHub ā€” thirtythreeforty/businesscard-linux. Ir kods NOR flash attēla Ä£enerÄ“Å”anai, kas tiek instalēts, izmantojot procesora USB lejupielādes režīmu. Tajā ir arÄ« visas spēļu un citu programmu pakotņu definÄ«cijas, kuras es ievietoju Buildroot pēc tam, kad viss darbojās. Ja jÅ«s interesē F1C100s izmantoÅ”ana savā projektā, tas bÅ«tu lielisks sākumpunkts (jÅ«s varat uzdod man jautājumus).
ES izmantoju skaisti izpildÄ«ts projekts Linux v4.9 for F1C100s no Icenowy, nedaudz pārveidots. Mana karte darbojas gandrÄ«z standarta v5.2. Tas ir GitHub ā€” thirtythreeforty/linux.
Man Ŕķiet, ka man Å”obrÄ«d ir pasaulē vislabākā U-Boot pieslēgvieta F1C100 ierÄ«cēm, un tā arÄ« daļēji ir balstÄ«ta uz Icenowy darbu (pārsteidzoÅ”i, lai U-Boot pareizi darbotos, bija diezgan apgrÅ«tinoÅ”s uzdevums). Varat to iegÅ«t arÄ« vietnē GitHub - thirtythreeforty/u-boot.

F1C100 dokumentācija

Es atradu diezgan retu F1C100 dokumentāciju, un es to ievietoju Ŕeit:

Es to augÅ”upielādēju ziņkārÄ«gajiem. mana projekta diagramma.

Manā vizītkartē darbojas Linux

Secinājums

Izstrādājot Å”o projektu, es daudz iemācÄ«jos ā€“ tas bija mans pirmais projekts, kurā izmantoju reflow lodÄ“Å”anas krāsni. Es arÄ« uzzināju, kā atrast resursus komponentiem ar sliktu dokumentāciju.

Es izmantoju savu esoÅ”o pieredzi ar iegulto Linux un dēļu izstrādes pieredzi. Projekts nav bez trÅ«kumiem, bet tas labi parāda visas manas prasmes.

Tiem, kurus interesē sÄ«kāka informācija par darbu ar iegulto Linux, iesaku izlasÄ«t manu rakstu sēriju par Å”o: Embedded Linux apgÅ«Å”ana. Tur es detalizēti runāju par to, kā no jauna izveidot programmatÅ«ru un aparatÅ«ru mazām un lētām Linux sistēmām, lÄ«dzÄ«gi kā manai vizÄ«tkartei.

Avots: www.habr.com

Pievieno komentāru