Mia vizitkarto funkcias Linukso

Traduko de artikolo el blogo inĝeniero George Hilliard

Mia vizitkarto funkcias Linukso
Klakebla

Mi estas enigita sistema inĝeniero. En mia libera tempo, mi ofte serĉas ion, kio povas esti uzata en la dezajno de estontaj sistemoj, aŭ ion el miaj interesoj.

Unu tia areo estas malmultekostaj komputiloj, kiuj povas ruli Linukson, kaj ju pli malmultekostaj des pli bone. Do mi fosis profundan kuniklotruon de obskuraj procesoroj.

Mi pensis, "Ĉi tiuj procesoroj estas tiel malmultekostaj ke ili praktike povas esti fordonitaj senpage." Kaj post iom da tempo venis al mi la ideo fari nudan karton por Linukso en la formo de vizitkarto.

Post kiam mi pensis pri tio, mi decidis, ke estus vere bonega afero. mi jam havas vidis elektronika vizitkartoj por ĝi, kaj ili havis diversajn interesajn kapablojn, kiel kopii fulmkartojn, fulmantajn ampolojn aŭ eĉ sendratan transdonon de datumoj. Tamen mi ne vidis vizitkartojn kun Linukso-subteno.

Do mi faris min unu.

Ĉi tiu estas la finita versio de la produkto. Kompleta minimuma ARM-komputilo prizorganta mian kutiman version de Linukso konstruita kun Buildroot.

Mia vizitkarto funkcias Linukso

Ĝi havas USB-havenon en la angulo. Se vi konektas ĝin al komputilo, ĝi ekfunkciigas en ĉirkaŭ 6 sekundoj kaj estas videbla kiel fulmkarto kaj virtuala seria haveno tra kiu vi povas ensaluti en la kartŝelo. Sur la poŝmemoro estas dosiero README, kopio de mia vivresumo kaj pluraj fotoj pri mi. La ŝelo havas plurajn ludojn, klasikaĵojn de Unikso kiel fortuno kaj fripono, malgrandan version de la ludo 2048 kaj MicroPython-interpretilon.

Ĉio ĉi estas farita per tre malgranda 8 MB-ekbrilo. La ekŝargilo taŭgas en 256 KB, la kerno okupas 1,6 MB, kaj la tuta radika dosiersistemo okupas 2,4 MB. Sekve, restas multe da spaco por la virtuala flash drive. Estas ankaŭ hejma dosierujo, kiu estas skribebla, se iu ajn faras ion, kion ili volas konservi. Ĉio ĉi estas ankaŭ konservita sur fulmblato.

La tuta aparato kostas malpli ol $3. Ĝi estas sufiĉe malmultekosta por fordoni. Se vi ricevis tian aparaton de mi, tio signifas, ke plej verŝajne mi provas imponi vin.

Desegni kaj konstrui

Mi mem desegnis kaj kunmetis ĉion. Ĝi estas mia laboro kaj mi amas ĝin, kaj multe de la defio estis trovi sufiĉe malmultekostajn partojn por la ŝatokupo.

La elekto de procesoro estis la plej grava decido influanta la koston kaj fareblecon de la projekto. Post ampleksa esploro, mi elektis la F1C100s, relative malmulte konatan procesoron de Allwinner kiu estas kostooptimumigita (te, diable malmultekosta). Kaj RAM kaj CPU troviĝas en la sama pako. Mi aĉetis procesorojn sur Taobao. Ĉiuj aliaj komponentoj estis aĉetitaj de LCSC.

Mi mendis la tabulojn de JLC. Ili faris 8 kopiojn por mi kontraŭ $10. Ilia kvalito estas impresa, precipe pro la prezo; ne tiel bonorda kiel tiu de OSHPark, sed tamen aspektas bone.

Mi faris la unuan aron mate nigra. Ili aspektis bele, sed tre facile malpuriĝis.

Mia vizitkarto funkcias Linukso

Estis kelkaj problemoj kun la unua aro. Unue, la USB-konektilo ne estis sufiĉe longa por sekure konveni en iujn ajn USB-havenojn. Due, la fulmaj spuroj estis faritaj malĝuste, sed mi ĉirkaŭiris ĉi tion fleksante la kontaktojn.

Mia vizitkarto funkcias Linukso

Kontrolinte, ke ĉio funkcias, mi mendis novan aron da tabuloj; Vi povas vidi foton de unu el ili komence de la artikolo.

Pro la malgranda grandeco de ĉiuj ĉi tiuj malgrandaj komponantoj, mi decidis recurri al reflua lutado uzante malmultekosta forno. Mi havas aliron al lasero-tranĉilo, do mi uzis ĝin por eltranĉi lutantan ŝablonon el la laminata filmo. La ŝablono rezultis sufiĉe bone. La 0,2 mm diametraj truoj por la procesoraj kontaktoj postulis specialan zorgon por certigi altkvalitan fabrikadon - estis kritike ĝuste enfokusigi la laseron kaj elekti ĝian potencon.

Mia vizitkarto funkcias Linukso
Aliaj tabuloj funkcias bone por teni la tabulon dum vi aplikas paston.

Mi aplikis lutpaston kaj poziciigis la komponantojn permane. Mi certigis, ke plumbo ne estas uzata ie ajn en la procezo - ĉiuj tabuloj, komponantoj kaj pasto plenumas la normon RoHS — por ke mia konscienco ne turmentu min, kiam mi disdonos ilin al homoj.

Mia vizitkarto funkcias Linukso
Mi faris eta eraron kun ĉi tiu aro, sed la lutpasto pardonas erarojn, kaj ĉio iris bone.

Ĉiu komponanto daŭris ĉirkaŭ 10 sekundojn por poziciiĝi, do mi provis minimumigi la nombron da komponantoj. Pli da detaloj pri mapo-dezajno legeblas en alia mia detala artikolo.

Listo de materialoj kaj kosto

Mi tenis striktan buĝeton. Kaj la vizitkarto rezultis kiel celite - mi ne ĝenas min fordoni ĝin! Kompreneble, mi ne disdonos ĝin al ĉiuj, ĉar necesas tempo por fari ĉiun kopion, kaj mia tempo ne estas konsiderata en la kosto de la vizitkarto (ĝi estas iom senpaga).

Komponanto
Kosto

F1C100s
$1.42

PCB
$0.80

8MB-fulmo
$0.17

Ĉiuj aliaj komponantoj
$0.49

Tuta
$2.88

Kompreneble, ekzistas ankaŭ kostoj malfacile kalkuleblaj, kiel transdono (ĉar ĝi estas distribuata inter komponantoj destinitaj al pluraj projektoj). Tamen, por tabulo kiu subtenas Linukson, ĝi certe estas sufiĉe malmultekosta. Ĉi tiu malfunkcio ankaŭ donas bonan ideon pri kiom kostas kompanioj por fari aparatojn en la plej malalta preza segmento: vi povas esti certa, ke ĝi kostas kompaniojn eĉ malpli ol ĝi kostas al mi!

Trajtoj

Kion diri? La karto ekfunkciigas tre tre nudigitan Linukso en 6 sekundoj. Pro la formo kaj kosto, la karto ne havas I/O, retan subtenon aŭ ajnan signifan kvanton da stokado por ruli pezajn programojn. Tamen, mi sukcesis enmeti multajn interesajn aferojn en la firmware-bildon.

USB

Estis multaj bonegaj aferoj, kiujn oni povus fari per USB, sed mi elektis la plej simplan opcion, por ke homoj pli verŝajne funkciu, se ili decidus provi mian vizitkarton. Linukso permesas al la karto konduti kiel "aparato" kun subteno Gadget Framework. Mi prenis kelkajn el la ŝoforoj de antaŭaj projektoj, kiuj inkludis ĉi tiun procesoron, do mi havas aliron al la tuta funkcieco de la kadro USB-aparato. Mi decidis kopii antaŭgeneritan poŝmemorilon kaj doni ŝelan aliron per virtuala seria haveno.

Ŝelo

Post ensaluto kiel radiko, vi povas ruli la sekvajn programojn sur la seria konzolo:

  • fripono: klasika aventurludo de rampa aventuro de Uniksa karcero;
  • 2048: simpla ludo de 2048 en konzolreĝimo;
  • sorto: eligo de diversaj pretendaj diroj. Mi decidis ne enmeti ĉi tie la tutan citaĵdatumbazon por lasi lokon por aliaj funkcioj;
  • mikropitono: tre malgranda Python-interpretisto.

Emulado de Flash Drive

Dum kompilo, la konstruaj iloj generas malgrandan bildon de FAT32 kaj aldonas ĝin kiel unu el la UBI-sekcioj. La Linuksa Gadget Subsistemo prezentas sian komputilon kiel stokan aparaton.

Se vi interesiĝas pri vidi tion, kio aperas sur la flash drive, la plej facila maniero fari tion estas per legado. fontoj. Estas ankaŭ pluraj fotoj kaj mia vivresumo.

Rimedoj

Fontoj

Mia Buildroot-arbo estas afiŝita sur GitHub - tridektridekdek/komerckarto-linukso. Estas kodo por generi NOR-fulmbildon, kiu estas instalita per la USB-elŝuta reĝimo de la procesoro. Ĝi ankaŭ havas ĉiujn pakajn difinojn por ludoj kaj aliaj programoj, kiujn mi puŝis en Buildroot post kiam mi ĉion funkciis. Se vi interesiĝas uzi la F1C100s en via projekto, ĉi tio estus bonega deirpunkto (sentu vin libera faru al mi demandojn).
mi uzis bele efektivigita projekto Linukso v4.9 por F1C100s de Icenowy, iomete restrukturita. Mia karto funkcias preskaŭ norma v5.2. Ĝi estas en GitHub - tridektri kvardek/linukso.
Mi pensas, ke mi havas la plej bonan havenon de U-Boot por F1C100s en la mondo hodiaŭ, kaj ĝi ankaŭ estas parte bazita sur la laboro de Icenowy (surprize, ke U-Boot funkciu ĝuste estis sufiĉe frustra tasko). Vi ankaŭ povas akiri ĝin ĉe GitHub - tridektridekdek/u-boot.

Dokumentaro por F1C100s

Mi trovis sufiĉe malabundan dokumentadon por F1C100s, kaj mi afiŝas ĝin ĉi tie:

Mi alŝutas ĝin por scivolemuloj. mia projekto-diagramo.

Mia vizitkarto funkcias Linukso

konkludo

Mi lernis multon dum la evoluo de ĉi tiu projekto - ĝi estis mia unua projekto uzanta refluan lutfornon. Mi ankaŭ lernis kiel trovi rimedojn por komponantoj kun malbona dokumentado.

Mi uzis mian ekzistantan sperton kun enigita Linukso kaj tabula disvolva sperto. La projekto ne estas sen difektoj, sed ĝi bone montras ĉiujn miajn kapablojn.

Por tiuj, kiuj interesiĝas pri la detaloj pri laboro kun enigita Linukso, mi sugestas legi mian serion de artikoloj pri ĉi tio: Majstrado de Enigita Linukso. Tie mi detale parolas pri kiel krei programaron kaj aparataron de nulo por etaj kaj malmultekostaj Linuksaj sistemoj, simile al mia vizitkarto.

fonto: www.habr.com

Aldoni komenton