Myn visitekaartsje draait Linux

Oersetting fan in artikel út blogpost yngenieur George Hilliard

Myn visitekaartsje draait Linux
Klikber

Ik bin in yngenieur fan ynbêde systemen. Yn myn frije tiid sykje ik faak nei wat dat brûkt wurde kin yn it ûntwerp fan takomstige systemen, of wat fan myn ynteresses.

Ien sa'n gebiet is goedkeape kompjûters dy't Linux kinne rinne, en hoe goedkeaper hoe better. Dat ik groeven in djip konijngat del fan obskure processors.

Ik tocht: "Dizze processors binne sa goedkeap dat se praktysk fergees kinne wurde jûn." En nei in skoft kaam it idee by my om in bleate kaart foar Linux te meitsjen yn 'e foarmfaktor fan in visitekaart.

Sadree't ik deroer tocht, besleat ik dat it in heul cool ding wêze soe om te dwaan. ik haw al seach elektroanysk besitekaartsjes до it, en se hiene ferskate nijsgjirrige mooglikheden, lykas it emulearjen fan flashkaarten, flitsende gloeilampen, of sels draadloze gegevensferfier. Ik haw lykwols gjin visitekaarten sjoen mei Linux-stipe.

Dus ik makke my ien.

Dit is de ôfmakke ferzje fan it produkt. In folsleine minimale ARM-kompjûter mei myn oanpaste ferzje fan Linux boud mei Buildroot.

Myn visitekaartsje draait Linux

It hat in USB-poarte yn 'e hoeke. As jo ​​it ferbine mei in kompjûter, start it yn sawat 6 sekonden en is sichtber as in flashkaart en in firtuele seriële poarte wêrmei jo kinne oanmelde yn 'e kaartshell. Op it flash-drive is in README-bestân, in kopy fan myn cv en ferskate foto's fan my. De shell hat ferskate spultsjes, Unix-klassikers lykas fortune en rogue, in lytse ferzje fan it spultsje 2048 en in MicroPython-tolk.

Dit alles wurdt dien mei in hiel lyts 8 MB flash chip. De bootloader past yn 256 KB, de kernel nimt 1,6 MB op, en it hiele rootbestânsysteem nimt 2,4 MB op. Dêrom is d'r in protte romte oer foar de firtuele flash drive. D'r is ek in thúsmap dy't skriuwber is foar it gefal dat immen wat docht wat se wolle bewarje. Dit alles wurdt ek bewarre op in flash chip.

It hiele apparaat kostet minder dan $ 3. It is goedkeap genôch om fuort te jaan. As jo ​​​​sa'n apparaat fan my hawwe krigen, betsjut dit dat ik wierskynlik besykje om jo yndruk te meitsjen.

Untwerp en bouwe

Ik haw alles sels ûntwurpen en gearstald. It is myn wurk en ik hâld derfan, en in protte fan 'e útdaging wie goedkeap genôch dielen te finen foar de hobby.

De kar foar prosessor wie it wichtichste beslút dat de kosten en helberens fan it projekt beynfloede. Nei wiidweidich ûndersyk keas ik de F1C100s, in relatyf lyts bekende prosessor fan Allwinner dy't kostenoptimalisearre is (dus ferdomd goedkeap). Sawol RAM as CPU lizze yn itselde pakket. Ik kocht processors op Taobao. Alle oare komponinten waarden kocht fan LCSC.

Ik bestelde de buorden fan JLC. Se makken 8 eksimplaren foar my foar $10. Har kwaliteit is yndrukwekkend, benammen foar de priis; net sa kreas as OSHPark's, mar sjocht der noch goed út.

Ik makke de earste batch mat swart. Se seagen der prachtich út, mar wiene hiel maklik smoarge.

Myn visitekaartsje draait Linux

D'r wiene in pear problemen mei de earste batch. Earst wie de USB-ferbining net lang genôch om feilich te passen yn alle USB-poarten. Twad, de flash tracks waarden makke ferkeard, mar ik kaam om dit troch it bûgen fan de kontakten.

Myn visitekaartsje draait Linux

Nei it kontrolearjen fan alles wurke, bestelde ik in nije partij boards; Jo kinne in foto fan ien fan har sjen oan it begjin fan it artikel.

Fanwegen de lytse grutte fan al dizze lytse komponinten, besleat ik taflecht te nimmen ta reflow soldering mei help goedkeap kachel. Ik haw tagong ta in laser cutter, dus ik brûkte it te snijen út in soldering stencil út de laminator film. De sjabloan kaam aardich goed út. De gatten mei in diameter fan 0,2 mm foar de prosessorkontakten easke spesjale soarch om heechweardige produksje te garandearjen - it wie kritysk om de laser korrekt te fokusjen en syn krêft te selektearjen.

Myn visitekaartsje draait Linux
Oare boards wurkje goed om it bestjoer te hâlden by it oanbringen fan pasta.

Ik haw solder paste tapast en de komponinten mei de hân pleatst. Ik soarge derfoar dat lead waard net brûkt oeral yn it proses - alle boards, komponinten en paste foldogge oan de standert RoHS - sadat myn gewisse my net martele sil as ik se oan minsken útdiele.

Myn visitekaartsje draait Linux
Ik makke in lichte flater mei dizze batch, mar de soldeerpasta ferjit flaters, en alles gie goed tegearre

Elke komponint naam sawat 10 sekonden om te pleatsen, dus ik besocht it oantal komponinten op in minimum te hâlden. Mear details oer kaartûntwerp kinne wurde lêzen yn in oar myn detaillearre artikel.

List fan materialen en kosten

Ik hold my oan in strang budzjet. En it visitekaartsje kaam sa't it wie bedoeld - ik haw it net slim om it fuort te jaan! Fansels sil ik it net oan elkenien jaan, om't it tiid kostet om elke kopy te meitsjen, en myn tiid wurdt net rekken holden yn 'e kosten fan it visitekaartsje (it is sa'n bytsje fergees).

Komponint
priis

F1C100s
$1.42

PCB
$0.80

8MB flash
$0.17

Alle oare komponinten
$0.49

Totaal
$2.88

Fansels binne d'r ek lestich te berekkenjen kosten, lykas levering (om't it is ferdield oer komponinten dy't bedoeld binne foar ferskate projekten). Foar in boerd dat Linux stipet, is it lykwols perfoarst frij goedkeap. Dizze ferdieling jout ek in goed idee fan hoefolle it bedriuwen kostet om apparaten yn it leechste priissegment te meitsjen: jo kinne der wis fan wêze dat it bedriuwen noch minder kostet dan it my kostet!

Eigenskippen

Wat te sizzen? De kaart bootet in heul swier stripped Linux yn 6 sekonden. Fanwegen de foarmfaktor en kosten hat de kaart gjin I / O, netwurkstipe, of in signifikant bedrach fan opslach om swiere programma's út te fieren. Dochs slagge it my om in boskje nijsgjirrige dingen yn 'e firmwareôfbylding te proppen.

USB

D'r wiene in protte coole dingen dy't mei USB dien wurde kinne, mar ik keas de ienfâldichste opsje sadat minsken wierskynliker it wurk krije as se besletten om myn visitekaart te besykjen. Linux lit de kaart gedrage as in "apparaat" mei stipe Gadget Framework. Ik naam guon fan 'e bestjoerders út eardere projekten dy't opnaam dizze prosessor, dus ik haw tagong ta alle funksjonaliteit fan de USB gadget ramt. Ik besleat om in pre-generearre flash drive te emulearjen en shell tagong te jaan fia in firtuele seriële poarte.

Shell

Nei it oanmelden as root kinne jo de folgjende programma's op 'e seriële konsole útfiere:

  • rogue: in klassike Unix dungeon crawling aventoer spultsje;
  • 2048: простая игра в 2048 в консольном режиме;
  • fortún: útfier fan ferskate pretinsjeuze sizzen. Ik besleat om de hiele sitaatdatabank hjir net op te nimmen om romte te litten foar oare funksjes;
  • mikropython: In tige lytse Python-tolk.

Flash Drive Emulaasje

Tidens kompilaasje generearje de bou-ark in lyts FAT32-ôfbylding en foegje it ta as ien fan 'e UBI-partysjes. It Linux Gadget Subsystem presintearret syn PC as opslachapparaat.

As jo ​​​​ynteressearre binne om te sjen wat op 'e flash drive ferskynt, is de maklikste manier om dit te dwaan troch te lêzen boarnen. D'r binne ek ferskate foto's en myn cv.

Resources

Boarnen

Myn Buildroot-beam is pleatst op GitHub - thirtythreeforty/businesscard-linux. D'r is koade foar it generearjen fan in NOR-flashôfbylding, dy't ynstalleare is mei de USB-downloadmodus fan 'e prosessor. It hat ek alle pakketdefinysjes foar spultsjes en oare programma's dy't ik yn Buildroot stjoerde nei't ik alles wurke. As jo ​​​​ynteressearre binne yn it brûken fan de F1C100's yn jo projekt, soe dit in geweldich begjinpunt wêze (fiel jo frij stel my fragen).
ik brûkte prachtich útfierd projekt Linux v4.9 foar F1C100s troch Icenowy, in bytsje opnij ûntwurpen. Myn kaart rint hast standert v5.2. It is op GitHub - tritichtritich/linux.
Ik tink dat ik haw de bêste haven fan U-Boot foar F1C100s yn 'e wrâld hjoed, en it is ek foar in part basearre op Icenowy syn wurk (ferrassend, it krijen fan U-Boot goed te wurkjen wie nochal in frustrating taak). Jo kinne it ek krije op GitHub - tritichtritich/u-boot.

Dokumintaasje foar F1C100s

Ik fûn nochal sparse dokumintaasje foar F1C100s, en ik pleatse it hjir:

Ik upload it foar nijsgjirrige minsken. myn projekt diagram.

Myn visitekaartsje draait Linux

konklúzje

Ik learde in protte tidens de ûntwikkeling fan dit projekt - it wie myn earste projekt mei in reflow soldering oven. Ik learde ek hoe't jo boarnen fine kinne foar komponinten mei minne dokumintaasje.

Ik brûkte myn besteande ûnderfining mei ynbêde Linux en ûnderfining fan boardûntwikkeling. It projekt is net sûnder gebreken, mar it toant al myn feardichheden goed.

Foar dyjingen dy't ynteressearre binne yn 'e details fan wurkjen mei ynbêde Linux, stel ik foar om myn searje artikels oer dit te lêzen: Mastering Embedded Linux. Dêr praat ik yn detail oer hoe't jo software en hardware fanôf it begjin meitsje kinne foar lytse en goedkeape Linux-systemen, fergelykber mei myn tillefoankaart.

Boarne: www.habr.com

Add a comment