Ĝi funkcias sur mia vizitkarto Linux

Traduko de artikolo el blogo inĝeniero George Hilliard

Ĝi funkcias sur mia vizitkarto Linux
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 malaltkostaj komputiloj, kiuj povas subteni Linux, kaj ju pli malmultekoste, des pli bone. Do mi fosis profundan kuniklotruon de obskuraj procesoroj.

Mi pensis, “Ĉi tiuj procesoroj estas tiel malmultekostaj, ke oni povas preskaŭ fordoni ilin senpage.” Kaj post iom da tempo, mi havis la ideon fari nudan karton por Linux en la formo de prezentokarto.

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 funkciojn, kiel ekzemple emuladon de fulmokartoj, palpebrumantajn lumojn, aŭ eĉ sendratan datumtransigon. Tamen, prezentokartoj kun subteno Linux Mi ne renkontis iun ajn.

Do mi faris min unu.

Jen la preta produkto. Plene funkcianta minimuma ARM-komputilo funkcianta per mia kutima versio. Linux, kreita per Buildroot.

Ĝi funkcias sur mia vizitkarto Linux

Ĝ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.

Ĝi funkcias sur mia vizitkarto Linux

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.

Ĝi funkcias sur mia vizitkarto Linux

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.

Ĝi funkcias sur mia vizitkarto Linux
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.

Ĝi funkcias sur mia vizitkarto Linux
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, kiujn malfacilas kalkuli, kiel ekzemple sendokostoj (ĉar ĝi estas dividita inter komponantoj destinitaj por pluraj projektoj). Tamen, por tabulo kun subteno Linux Tio estas sendube sufiĉe malmultekosta. Ĉi tiu analizo ankaŭ donas sufiĉe bonan ideon pri kiom kostas al kompanioj produkti aparatojn ĉe la plej malsupra fino de la prezspektro: estu certa, ĝi kostas al ili eĉ malpli ol ĝi kostas al mi!

Trajtoj

Kion mi povas diri? La mapo ŝarĝiĝas tre malbone fortranĉita. Linux en 6 sekundoj. Pro sia formo kaj kosto, al la karto mankas enigo/eligo, retsubteno, aŭ ajna signifa stoka kapacito por funkciigi pezajn programojn. Tamen, mi sukcesis enpremi tunon da interesaj aferoj en la firmvaran bildon.

USB

Estis multaj interesaj aferoj, kiujn oni povus fari per USB, sed mi elektis la plej simplan opcion, por ke homoj havu bonan ŝancon funkciigi ĝin, se ili decidus provi mian vizitkarton. Linux 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 konstruiloj generas malgrandan FAT32-bildon kaj aldonas ĝin kiel unu el la UBI-sekcioj. Aparata subsistemo Linux prezentas ĝin al la komputilo kiel memorilon.

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 Linux La versio 4.9 de Icenowy por F1C100-oj, kun kelkaj malgrandaj ŝanĝoj. Mia karto uzas la preskaŭ norman version 5.2. Ĝi estas ĉe 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.

Ĝi funkcias sur mia vizitkarto Linux

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 sperton kun enkonstruitaj Linux kaj sperton pri PCB-dezajno. La projekto ne estas sen difektoj, sed ĝi ja montras miajn kapablojn sufiĉe bone.

Por tiuj, kiuj interesiĝas pri la detaloj de laborado kun la enkonstruita Linux Mi proponas, ke vi legu mian serion da artikoloj pri tio: Majstrado Enkonstruita LinuxTie mi detale parolas pri kiel krei programaron kaj aparataron de nulo por etaj kaj malmultekostaj Linux-sistemoj similaj al ĉi tiu mia prezentokarto.

fonto: www.habr.com

Aĉetu fidindan gastigadon por retejoj kun DDoS-protekto, VPS-VDS-serviloj 🔥 Aĉetu fidindan retejan gastigadon kun DDoS-protekto, VPS VDS-servilojn | ProHoster