Në vizitën time funksionon Linux

Përkthimi i artikullit nga blogu inxhiner George Hilliard

Në vizitën time funksionon Linux
Kliko

Unë jam inxhinier i sistemeve të integruara. Në kohën time të lirë shpesh kërkoj gjëra që mund t'i përdor për projektimin e sistemeve të ardhshme, ose diçka që i përket interesave të mia.

Një nga këto fusha është kompjuterët e lirë, të cilët e mbështesin Linux, dhe sa më të lirë, aq më mirë. Prandaj u zhyt në një kanin të thellë të procesorëve të panjohur.

Mendoja: "Këta procesorë janë aq të lirë, saqë gati mund t'i ndash falas". Dhe pas ca kohe më erdhi ideja të bëj një kartelë të thjeshtë për Linux në formatin e një vizite.

Sapo mendova për këtë, vendosa se do të ishte shumë bukur ta bëja. Unë tashmë kisha parë vizitat elektronikekëtë, dhe ato kishin mundësi të ndryshme interesante, si emulimi i kartave Flash, ndriçimi i dritave apo madje kalimi i të dhënave në mënyrë wireless. Megjithatë, nuk kam parë vizita që mbështesin Linux.

Prandaj, krijova një të tillë për veten time.

Kjo është versioni përfundimtar i produktit. Një kompjuter minimal i plote në ARM, mbi të cilën funksionon versioni im special i Linux, i krijuar me ndihmën e Buildroot.

Në vizitën time funksionon Linux

Në këndin e saj ka një port USB. Nëse e lidhi me një kompjuter, ngarkohet për rreth 6 sekonda dhe shihet si një kartë Flash dhe një port serial virtual, përmes të cilit mund të hysh në shell-in e kartës. Në Flash ndodhet një skedar README, një kopje e CV-së sime dhe disa fotografi të mia. Në shell ka disa lojëra, klasike nga Unix si fortune dhe rogue, një version i vogël i lojës 2048 dhe një interpretor MicroPython.

E gjithë kjo është realizuar me një çip të vogël Flash prej 8 MB. Bootloader-i zë 256 KB, bërthama zë 1.6 MB, dhe e gjithë sistemi i files root zë 2.4 MB. Prandaj, për kartën virtuale mbetet shumë hapësirë. Aty ka gjithashtu një direktori shtëpiake, e cila është e hapur për shkarkim - nëse dikush bën diçka që dëshiron ta ruajë. E gjithë kjo gjithashtu ruhet në çipin Flash.

E gjithë pajisja kushton më pak se $3. Është mjaft e lirë për t'u ndarë. Nëse keni marrë një pajisje të tillë prej meje, kjo do të thotë se ndoshta po përpiqem të bëj një përshtypje te ju.

Projektimi dhe montimi

E kam projektuar dhe ndërtuar unë vetë gjithçka. Kjo është puna ime, dhe më pëlqen, dhe një pjesë e madhe e vështirësive ishte gjetja e pjesëve mjaft të lira për një hobi të tillë.

Zgjedhja e procesorit ishte vendimi më i rëndësishëm që ndikonte në koston dhe realizueshmërinë e projektit. Pas kërkimeve aktive, zgjodha F1C100s, një procesor relativisht të panjohur nga Allwinner, i optimizuar për çmim (dmth, shumë i lirë). Në të njëjtin kabinet ndodhen RAM dhe CPU. Procesorët i bleva në Taobao. Të gjitha pjesët e tjera janë blerë në LCSC.

Plakat i porosita nga JLC. Për 8 dollarë më bënë 10 kopje. Cilësia e tyre është mbresëlënëse, veçanërisht për çmimin e tillë; nuk janë aq të sakta sa ato nga OSHPark, por përsëri duken mirë.

Bashkimi i parë e bëra në ngjyrë të zezë matte. Duketin bukur, por ishin shumë të ndjeshme ndaj njollave.

Në vizitën time funksionon Linux

Me bashkimin e parë kishte disa probleme. Së pari, konektori USB nuk ishte mjaft i gjatë për t'u futur fort në çdo port USB. Së dyti, trakët për flash ishin bërë gabim, por e kalova këtë duke kthyer kontaktet.

Në vizitën time funksionon Linux

Pas verifikimit të gjithçkaje në punë, porosita një grup të ri pllakash; foto e një prej tyre mund ta shihni në fillim të artikullit.

Për shkak të përmasave të vogla të të gjithë këtyre komponentëve të vegjël, vendosa të përdor solderim me nxehtësi [reflow solder] duke përdorur një furrë të lirë. Kam qasje në një laser të prerë, ndaj e prita një shabllon për solderim nga filmi i laminatorit. Doli një shabllon mjaft i mirë. Hapat për kontaktet e procesorit me diametër 0.2 mm kërkonin kujdes të veçantë për një prodhim cilësor - ishte kritike të përqendroja saktë lazerin dhe të përcaktoja fuqinë e tij.

Në vizitën time funksionon Linux
Për të mbajtur pllakën në vend gjatë aplikimit të pastës, përshtaten mirë plakat e tjera

Aplikova pastën e saldimit dhe vendosa komponentet manualisht. U përpoqa që askund në proces të mos përdorej plumb - të gjitha plakat, komponentet dhe pasta i përmbahen standardit RoHS - për të mos ndjerë keqardhje kur t'i ndaj me njerëzit.

Në vizitën time funksionon Linux
Me këtë grup pak e humba, megjithatë pasta e saldimit fal gabimet dhe gjithçka u assemblua normalisht

Vendosja e çdo komponenti merrte rreth 10 sekonda, ndaj përpiqesha të minimizoja numrin e tyre. Më shumë detaje rreth projektimit të bordit mund të lexoni në një tjetër artikullin tim të detajuar.

Lista e materialeve dhe çmimi

Kam mbaja një buxhet të rreptë. Kartëvizita rezultoi ashtu siç e kisha menduar – nuk kam asnjë problem ta jap atë! Sigurisht, nuk do t'ua jap të gjithëve, pasi prodhimi i çdo ekzemplar kërkon kohë, dhe koha ime nuk llogaritet në koston e kartëvizitës (siç do ishte falas).

Komponenti
Çmimi

F1C100s
$1.42

PCB
$0.80

8MB flash
$0.17

Të gjithë komponentët e tjerë
$0.49

Përveç kësaj
$2.88

Sigurisht, ka edhe shpenzime të tjera që janë të vështira për t’u llogaritur, si ngarkesa (pasi shpërndahet midis komponentëve që janë të destinuar për disa projekte). Megjithatë, për një bord që mbështet Linux, kjo sigurisht që është shumë e lirë. Po ashtu, ky ndarës jep një ide të mirë se sa i kushton kompanive prodhimi i pajisjeve në segmentin më të ulët të çmimeve: mund t'ju siguroj se kompanitë e nxjerrin kjo akoma më lirë se sa unë!

Mundësitë

Çfarë të them? Karte ngarkon një Linux të shumë të reduktuar në 6 sekonda. Për shkak të formës dhe kostos, karta nuk ka I/O, mbështetje rrjeti, as ndonjë volum të rëndësishëm ruajtjeje për të operuar programet e rënda. Megjithatë, arrita të vendos shumë gjëra interesante në imazhin e firmware-it.

USB

Me USB mund të kishte shumë ide interesante, por zgjodha opsionin më të thjeshtë, në mënyrë që për njerëzit me probabilitet të lartë gjithçka të funksionojë, nëse vendosin të provojnë kartëvizitën time. Linux i lejon kartës të sillet si një "device" me mbështetje Gadget Framework. Disa drivere i kam marrë nga projekte të mëparshme që përfshinin këtë procesor, kështu që kam qasje në të gjithë funksionalitetin e platformës USB gadget framework. Vendosa të imitoj një flash-disk të gjeneruar më parë dhe t'i jap qasje një shell-i përmes një porte seriale virtuale.

Shell

Pas identifikimit me përdoruesin root në konsolën seriale, mund të ekzekutoni programet e mëposhtme:

  • rogue: një lojë klasike aventurash në majë të Unix për burgje;
  • 2048: një lojë e thjeshtë 2048 në modalitetin e konsolës;
  • fortune: shfaq ndryshme pohime të ndryshshme. Vendosa të mos përfshij këtu të gjithë bazën e citateve, në mënyrë që të mbetet hapësirë për funksione të tjera;
  • micropython: një interpretues shumë të vogël të Python.

Imitimi i Flash Drive

Gjatë kompilimit, mjetet e ndërtimit gjenerojnë një imazh të vogël FAT32 dhe e shtojnë atë si një nga ndarjet UBI. Nën-sistemi Linux për gadgete e paraqet PC-në si një pajisje ruajtëse.

Nëse jeni të interesuar të shihni se çfarë ndodhet në flash, atëherë më e lehta është ta bëni këtë duke u njohur me kodet burimorë. Aty ndodhen gjithashtu disa fotografi dhe CV-ja ime.

Burime

Burimi

Dendësia ime Buildroot është publikuar në GitHub — thirtythreeforty/businesscard-linux. Aty është kodi i gjenerimit të imazhit flash NOR, i cili instalohet me modalitetin e shkarkimit përmes USB nga procesori. Aty janë gjithashtu të gjitha definicionet e paketave për lojërat dhe programet tjera që kam përfshirë në Buildroot pasi gjithçka funksionoi. Nëse dëshironi të përdorni F1C100s në projektin tuaj, kjo do të jetë një pikë e shkëlqyer fillimi (mos hezitoni të më pyesni).
Kam përdorur një projekt i përkryer Linux v4.9 për F1C100s i autorësisë Icenowy, disi i modifikuar. Në kartën time funksionon pothuajse standardi v5.2. Ajo është publikuar në GitHub — thirtythreeforty/linux.
Mendoj se kam portin më të mirë të U-Boot për F1C100s në botë, dhe ai është pjesërisht gjithashtu i bazuar në punën e Icenowy (papritur, të bësh që U-Boot të funksionojë siç duhet doli të ishte një detyrë e ndërlikuar). Mund ta merrni gjithashtu në GitHub — thirtythreeforty/u-boot.

Dokumentacioni për F1C100s

Kam gjetur dokumentacion të mjaftueshëm për F1C100s, dhe po e publikoj këtu:

Për ata të kurioz, po ngarkoj diagramin e projektit tim.

Në vizitën time funksionon Linux

Përfundim

Kam mësuar shumë gjatë procesit të zhvillimit të këtij projekti - ky është projekti im i parë ku kam përdorur furrën për ta spërluar lëngun e kaluar. Gjithashtu kam mësuar të gjej burime për komponentë me dokumentacion të dobët.

Kam përdorur përvojën time me Linuxin e integruar dhe përvojën e zhvillimit të pllakave. Projekti nuk është pa defekte, megjithatë tregon mirë të gjitha aftësitë e mia.

Për ata që janë të interesuar për detajet e punës me Linuxin e integruar, ju jap të lexoni serinë time të artikujve mbi këtë: Mastering Embedded Linux. Aty unë të tregoj në detaje se si të krijoni softuer dhe harduer nga fillimi për sisteme të vogla dhe të lira Linux, të ngjashme me këtë vizitën time.

Burimi: habr.com

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster