Në vizitën time punon Linux

Përkthimi i artikullit nga blogu inxhinieri George Hilliard

Në vizitën time punon Linux
Klikohet

Unë jam inxhinier i sistemeve të integruara. Në kohën time të lirë, shpesh kërkoj diçka që mund të përdoret për të dizajnuar sisteme të ardhshme, ose ndonjë gjë që lidhet me interesat e mia.

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

Mendova: "Këta procesorë janë kaq të lirë, saç mund t'i japësh pa pagesë". Dhe pas pak, më erdhi ideja të bëj një kartë të zbrazët për Linux në formatin e një vizitkarte.

Sapokam menduar për këtë, vendosa se do të ishte shumë e bukur ta realizoja. Unë kisha parë vizitkarta , dhe ato kishin disa mundësi interesante, si emulimi i kartave të flash, ndricimi i dritave ose madje kalimi i të dhënave në mënyrë wireless. Megjithatë, nuk kisha parë vizitkarta që mbështesin Linux. deri në kyKështu që krijova një të tillë për vete.

Kjo është versioni përfundimtar i produktit. Një kompjuter minimal i plotë në ARM, në të cilin funksionon ve versi im i veçantë i Linux-it, i krijuar me Buildroot.

Në këndin e saj ka një port USB. Nëse e lidheni me kompjuterin, ngarkohet për rreth 6 sekonda dhe shfaqet si një kartë flash dhe një port seri virtual, përmes të cilit mund të krijoni lidhjen në shell-in e kartës. Në flash ndodhet një skedar README, një kopje e CV-së time 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ë interpretues MicroPython.

Në vizitën time punon Linux

TĂ« gjitha kĂ«to janĂ« bĂ«rĂ« me njĂ« çip flash shumĂ« tĂ« vogĂ«l prej 8 MB. Bootloader-i zĂ« 256 KB, bĂ«rthama zĂ« 1.6 MB, dhe e gjithĂ« sistemi i skedarĂ«ve root Ă«shtĂ« 2.4 MB. Prandaj, ndodhet shumĂ« hapĂ«sirĂ« pĂ«r flash-in virtual. Aty ka gjithashtu njĂ« direktore shtĂ«piake, e cila Ă«shtĂ« e aksesueshme pĂ«r shkrim – nĂ«se dikush bĂ«n ndonjĂ« gjĂ« qĂ« dĂ«shiron ta ruajĂ«. TĂ« gjitha kĂ«to ruhen gjithashtu nĂ« chipin flash.

E gjithĂ« pajisja kushton mĂ« pak se $3. ËshtĂ« e mjaftueshme pĂ«r t'u shpĂ«rndarĂ«. NĂ«se keni marrĂ« njĂ« pajisje tĂ« tillĂ« nga unĂ«, kjo do tĂ« thotĂ« se me siguri po pĂ«rpiqem t'ju befasoj.

Dizajnimi dhe ndërtimi

I dizajnuar dhe ndërtuar nga unë vetë. Ky është profesionim im, dhe më pëlqen, dhe pjesa më e madhe e vështirësive ishte në gjetjen e pjesëve të mjaftueshme të lira për këtë hobi.

Zgjedhja e procesorit ishte vendimi më i rëndësishëm që ndikon në çmimin dhe realizueshmërinë e projektit. Pas kërkimeve aktive, kam zgjedhur F1C100s, një procesor relativisht të panjohur nga Allwinner, i optimizuar për çmimin (dmth, shumë i lirë). Ram dhe CPU ndodhen në një trup të vetëm. Kam blerë procesorët në Taobao. Të gjitha pjesët e tjera janë blerë në LCSC.

Karta i kam porositur nga JLC. Për $8 më bënë 10 kopje. Cilësia e tyre është e jashtëzakonshme, sidomos për një çmim të tillë; nuk janë aq të rregullta sa ato të OSHPark, por gjithsesi duken mirë.

Bashkësia e parë e bëra mat qëro. Duken të bukura, por ishin shumë të ndjeshme.

Kishte disa probleme me bashkëngjitjen e parë. E para, konektori USB nuk ishte i mjaftueshëm i gjatë për të qëndruar mirë në ndonjë port USB. E dyta, shinat për flash ishin bërë gabimisht, por e zgjidhja këtë duke ndryshuar kontaktet.

Në vizitën time punon Linux

Pas verifikimit të gjithçkaje në punë, porosita një tjetër grup kartash; foto të njërit prej tyre mund ta shihni në fillim të artikullit.

Në vizitën time punon Linux

Për shkak të madhësisë së vogël të këtyre komponentëve të vegjël, kam vendosur të përdor ashtuquajturin rrysh për të bashkuar pjesët e mia [reflow solder] duke përdorur

njĂ« furrĂ« tĂ« lirĂ« . Kam akses nĂ« njĂ« prerĂ«s lazer, kĂ«shtu qĂ« e kam prerĂ« nĂ« tĂ« njĂ« trazhmĂ« pĂ«r saldimin nga filmi pĂ«r laminim. Doli njĂ« shabllon mjaft i mirĂ«. Dyerat pĂ«r bashkimin e procesorit me diametĂ«r 0,2 mm kĂ«rkonin kujdes tĂ« veçantĂ« pĂ«r prodhimin cilĂ«sor – ishte kritikisht e rĂ«ndĂ«sishme tĂ« fokusonit saktĂ«sisht lazerin dhe ta pĂ«rshtatni fuqinĂ« e tij.PĂ«r tĂ« mbajtur kartĂ«n gjatĂ« aplikimit tĂ« pastĂ«s, janĂ« tĂ« dobishme karta tĂ« tjera

Në vizitën time punon Linux
Kam aplikur pastĂ«n e saldimit dhe vendosur komponentĂ«t manualisht. U angustova qĂ« asgjĂ« nĂ« proces nuk do tĂ« pĂ«rmbante plumb – tĂ« gjitha kartat, komponentĂ«t dhe pasta janĂ« nĂ« pĂ«rputhje me standardin

RoHS – pĂ«r tĂ« mos ndieja faj dhe t'i shpĂ«rndaja ato njerĂ«zve. Me kĂ«tĂ« grup kam bĂ«rĂ« disa gabime, megjithatĂ« pasta e saldimit fal gabimet, dhe gjithçka u mblodh normalisht.

Në vizitën time punon Linux
Rreth 10 sekonda për çdo komponent kaloj, kështu që përpiqesha ta mbaja numrin e tyre minimal. Më shumë detaje rreth dizajnimit të kartës mund të lexoni në një tjetër

artikulli im të hollësishëm Lista e materialeve dhe çmimi.

Lista e materialeve dhe çmimi

Isha byra një buxhet të ngushtë. Vizit karta doli ashtu siç e kisha imagjinuar - nuk më vjen keq t'ia jap! Natyrisht, nuk do t'ua jap të gjithëve, pasi krijimi i çdo ekzemplar kërkon kohë, dhe koha ime nuk llogaritet në çmimin e vizit kartës (është si e dhënë).

Komponenti
Çmimi

F1C100s
$1.42

PCB
$0.80

8MB flash
$0.17

Të gjitha komponentët e tjerë
$0.49

Në përfundim
$2.88

Natyrisht, ka edhe shpenzime të tjera, që janë të vështira për t'u llogaritur, si transporti (pasi shpërndahet midis komponentëve të destinuar për disa projekte). Megjithatë, për një bord që mbështet Linux, është padyshim shumë e lirë. Kjo ndarje gjithashtu jep një ide të mirë se sa shpenzojnë kompanitë për të bërë pajisje në segmentin më të ulët të çmimeve: mund të jeni të sigurt se kompanitë e bëjnë këtë edhe më lirë se unë!

Mundësitë

ÇfarĂ« tĂ« them? MĂ«nyra jonĂ« ngarkon njĂ« Linux shumĂ« tĂ« pĂ«rmbajtur brenda 6 sekondave. PĂ«r shkak tĂ« formĂ«s dhe çmimit, karta nuk ka I/O, suport tĂ« rrjetit, as ndonjĂ« hapĂ«sirĂ« tĂ« madhe grumbullimi pĂ«r tĂ« ekzekutuar programe tĂ« rĂ«nda. MegjithatĂ«, arrita tĂ« ngjis njĂ« shumĂ«llojshmĂ«ri interesantĂ«sh nĂ« imazhin e firmware-it.

USB

Me USB mund të kisha menduar shumë gjëra interesante, por zgjodha opsionin më të thjeshtë, në mënyrë që njerëzit të kenë një shans të madh që gjithçka të funksionojë, nëse vendosin të provojnë vizit kartën time. Linux i lejon kartës të sillet si një 'device' i mbështetur Gadget Framework. Disa driverë i mora nga projekte të mëparshme që përfshinin këtë procesor, kështu që kam qasje në të gjithë funksionalitetin e platformës së USB gadget framework. Vendosa të emulloj një flash disk të gjeneruar më parë dhe t'i jap qasje shell-it përmes një porte seriale virtuale.

Shell

Pas login-it si përdorues root në konsolën seriale, mund të ekzekutoni programet e mëposhtme:

  • rogue: njĂ« lojĂ« aventurash klasike pĂ«r Unix pĂ«r dungeon;
  • 2048: njĂ« lojĂ« e thjeshtĂ« 2048 nĂ« modin konsol;
  • fortune: tregon thĂ«nie tĂ« ndryshme tĂ« mbushura me filozofi. Vendosa tĂ« mos pĂ«rfshij kĂ«tu tĂ« gjithĂ« bazĂ«n e citateve, pĂ«r tĂ« lĂ«nĂ« hapĂ«sirĂ« pĂ«r funksione tĂ« tjera;
  • micropython: njĂ« interpreter shumĂ« tĂ« vogĂ«l Python.

Emulimi i Flash Drive

Gjatë kompilimit, mjetet e ndërtimit krijojnë një imazh të vogël FAT32 dhe e shtojnë atë si një nga seksionet e UBI. Subsistemi i gadgets Linux e paraqet atë PC si një pajisje ruajtëse.

Nëse jeni kurioz për atë çfarë shfaqet në flash, më e lehta është ta shihni duke shikuar në kodet burimore. Aty ndodhen gjithashtu disa fotografi dhe CV-ja ime.

Burimet

Burimet e kodit

Ndiqni pemën time të Buildroot në GitHub - thirtythreeforty/businesscard-linux. Aty ka kod për gjenerimin e imazhit të flash NOR, që instalohet përmes modalitetit të shkarkimit përmes USB në procesor. Gjithashtu, aty janë të gjitha përcaktimet e paketës për lojra dhe programe të tjera që i kam shtuar në Buildroot pasi gjithçka e kam bërë të funksionojë. Nëse dëshiron të përdorësh F1C100s në projektin tënd, do të jetë një pikë e shkëlqyer nisjeje (mos hezito të më bësh pyetje).
Unë kam përdorur një projekt i realizuar shkëlqyeshëm Linux v4.9 për F1C100s nga Icenowy, pak e ndryshuar. Në kartën time punon pothuajse standardi v5.2. Ajo është në GitHub - thirtythreeforty/linux.
Mendoj se kam sot portin më të mirë U-Boot për F1C100s në botë, dhe pjesërisht gjithashtu bazohet në punën e Icenowy (papritur, të bësh U-Boot të funksionojë siç duhet u tregua një detyrë e vështirë). Gjithashtu mund ta marrësh në GitHub - thirtythreeforty/u-boot.

Dokumentacioni për F1C100s

Gjeta dokumentacion të varfër për F1C100s, dhe po e publikoj këtu:

  • Allwinner F1C100s Datasheet – informacion i pĂ«rgjithshĂ«m dhe pinout.
  • Allwinner F1C600 Reference Manual – pĂ«rcaktime tĂ« regjistrave pĂ«r F1C600, qĂ« nĂ« tĂ« vĂ«rtetĂ« Ă«shtĂ« e njĂ«jta me F1C100s, por e rinovuar me mbĂ«shtetje tĂ« deklaruar pĂ«r Linux (haha!).
  • Kam marrĂ« aktivisht informacion nga skema e Sipeed’s Lichee Nano – bordi i zhvillimit qĂ« kam pĂ«rdorur pĂ«r tĂ« konfiguruar softin.

Për kuriozët, po ngarkoj skemën e projektit tim.

Në vizitën time punon Linux

Përfundimi

Kam mësuar shumë gjatë zhvillimit të këtij projekti - ky është projekti im i parë ku kam përdorur furrë për të solder suvat. Gjithashtu kam mësuar të gjej burime për komponentë me dokumentacion të dobët.

Kam përdorur përvojën time të mëparshme me Linux të integruar dhe zhvillimin e bordeve. Projekti nuk është pa mangësi, por tregon mirë të gjitha aftësitë e mia.

Për ata që janë të interesuar për detajet e punës me Linux të integruar, ju inkurajoj të lexoni serinë time të artikujve në lidhje me këtë: Mastering Embedded Linux. Aty tregoj në detaje se si të krijoni soft dhe harduer nga zero për sisteme të vogla dhe të lira Linux, si kjo vizit karta ime.

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster