Käyntikorttini käyttöjärjestelmä on Linux

Artikkelin käännös kielestä blogiviesti insinööri George Hilliard

Käyntikorttini käyttöjärjestelmä on Linux
Napsautettava

Olen sulautettujen järjestelmien insinööri. Vapaa-ajallani etsin usein jotain, jota voisi käyttää tulevaisuuden järjestelmien suunnittelussa tai jotain kiinnostuksen kohteistani.

Yksi tällainen alue on halvat tietokoneet, jotka voivat käyttää Linuxia, ja mitä halvempi sen parempi. Joten kaivoin syvän jäniskuopan epäselvistä prosessoreista.

Ajattelin: "Nämä prosessorit ovat niin halpoja, että ne voidaan käytännössä antaa ilmaiseksi." Ja jonkin ajan kuluttua sain idean tehdä Linuxille paljas kortti käyntikortin muodossa.

Kun mietin sitä, päätin, että se olisi todella siistiä tekemistä. Minulla on jo nähdään elektroninen käyntikortteja до se, ja niissä oli useita mielenkiintoisia ominaisuuksia, kuten flash-korttien emulointi, vilkkuvien hehkulamppujen tai jopa langaton tiedonsiirto. En ole kuitenkaan nähnyt Linux-tuella varustettuja käyntikortteja.

Joten tein itselleni sellaisen.

Tämä on valmis versio tuotteesta. Täydellinen minimaalinen ARM-tietokone, joka käyttää mukautettua Linux-versiota, joka on rakennettu Buildrootilla.

Käyntikorttini käyttöjärjestelmä on Linux

Sen kulmassa on USB-portti. Jos liität sen tietokoneeseen, se käynnistyy noin 6 sekunnissa ja näkyy flash-korttina ja virtuaalisena sarjaporttina, jonka kautta voit kirjautua sisään kortin kuoreen. Flash-asemalla on README-tiedosto, kopio ansioluettelostani ja useita kuvia minusta. Shellissä on useita pelejä, Unix-klassikoita, kuten fortune ja rogue, pieni versio pelistä 2048 ja MicroPython-tulkki.

Kaikki tämä tehdään erittäin pienellä 8 Mt:n flash-sirulla. Käynnistyslatain mahtuu 256 kilotavuun, ydin vie 1,6 megatavua ja koko juuritiedostojärjestelmä 2,4 megatavua. Siksi virtuaaliselle flash-asemalle jää paljon tilaa. Siellä on myös kotihakemisto, johon voi kirjoittaa, jos joku tekee mitä tahansa, mitä haluaa tallentaa. Tämä kaikki on myös tallennettu flash-sirulle.

Koko laite maksaa alle 3 dollaria. Se on tarpeeksi halpa luovutettavaksi. Jos sait tällaisen laitteen minulta, se tarkoittaa, että todennäköisesti yritän tehdä sinuun vaikutuksen.

Suunnittele ja rakenna

Suunnittelin ja kokosin kaiken itse. Se on työni ja rakastan sitä, ja suuri osa haasteista on ollut löytää tarpeeksi halpoja osia harrastukseen.

Prosessorin valinta oli tärkein projektin kustannuksiin ja toteutettavuuteen vaikuttanut päätös. Laajan tutkimuksen jälkeen valitsin F1C100s:n, Allwinnerin suhteellisen vähän tunnetun prosessorin, joka on kustannusoptimoitu (eli pirun halpa). Sekä RAM että CPU sijaitsevat samassa paketissa. Ostin prosessorit Taobaosta. Kaikki muut komponentit ostettiin LCSC:ltä.

Tilasin levyt JLC:ltä. He tekivät minulle 8 kopiota 10 dollarilla. Niiden laatu on vaikuttava, varsinkin hintaan nähden; ei niin siisti kuin OSHPark, mutta näyttää silti hyvältä.

Ensimmäisen erän tein mattamustan. Ne näyttivät kauniilta, mutta likaantuivat erittäin helposti.

Käyntikorttini käyttöjärjestelmä on Linux

Ensimmäisessä erässä oli pari ongelmaa. Ensinnäkin USB-liitin ei ollut tarpeeksi pitkä sopimaan kunnolla USB-portteihin. Toiseksi salamajäljet ​​tehtiin väärin, mutta pääsin tämän kiertämään taivuttamalla kontakteja.

Käyntikorttini käyttöjärjestelmä on Linux

Tarkastettuani, että kaikki toimii, tilasin uuden erän levyjä; Näet valokuvan yhdestä niistä artikkelin alussa.

Kaikkien näiden pienten komponenttien pienen koon vuoksi päätin turvautua reflow-juottoon halpa liesi. Minulla on käytössä laserleikkuri, joten leikkasin sillä juotosstensiilin laminointikalvosta. Stensiili onnistui aika hyvin. Prosessorin koskettimien halkaisijaltaan 0,2 mm:n reiät vaativat erityistä huolellisuutta korkealaatuisen valmistuksen takaamiseksi - oli ratkaisevaa laserin oikea fokusointi ja sen tehon valinta.

Käyntikorttini käyttöjärjestelmä on Linux
Muut levyt pitävät laudan hyvin kiinni pastaa levitettäessä.

Levitin juotospastaa ja sijoitin komponentit käsin. Varmistin, että lyijyä ei käytetty missään prosessissa - kaikki levyt, komponentit ja tahna täyttävät standardin RoHS - jotta omatuntoni ei kiusaa minua, kun jaan niitä ihmisille.

Käyntikorttini käyttöjärjestelmä on Linux
Tein pienen virheen tässä erässä, mutta juotospasta antaa virheet anteeksi ja kaikki sujui hyvin

Jokaisen komponentin asettuminen kesti noin 10 sekuntia, joten yritin pitää komponenttien määrän mahdollisimman pienenä. Lisätietoja karttasuunnittelusta voi lukea toisesta yksityiskohtainen artikkelini.

Luettelo materiaaleista ja kustannuksista

Pidin kiinni tiukasta budjetista. Ja käyntikortti osoittautui suunnitelluksi - en välitä antaa sitä pois! En tietenkään anna sitä kaikille, koska jokaisen kopion tekeminen vie aikaa, eikä minun aikaani ole huomioitu käyntikortin hinnassa (se on tavallaan ilmaista).

komponentti
Hinta

F1C100s
$1.42

PCB
$0.80

8MB flash
$0.17

Kaikki muut komponentit
$0.49

Yhteensä
$2.88

Luonnollisesti on myös vaikeasti laskettavia kustannuksia, kuten toimitus (koska se jakautuu useisiin projekteihin tarkoitettujen komponenttien kesken). Kuitenkin levylle, joka tukee Linuxia, se on ehdottomasti melko halpa. Tämä erittely antaa myös hyvän käsityksen siitä, kuinka paljon yrityksille maksaa halvimman hintasegmentin laitteiden valmistaminen: voit olla varma, että se maksaa yrityksille jopa vähemmän kuin minulle!

Kyvyt

Mitä sanoa? Kortti käynnistää erittäin voimakkaasti kuoritun Linuxin 6 sekunnissa. Muodon ja hinnan vuoksi kortissa ei ole I/O:ta, verkkotukea tai merkittävää määrää tallennustilaa raskaiden ohjelmien suorittamiseen. Siitä huolimatta onnistuin ahmimaan joukon mielenkiintoisia asioita laiteohjelmistokuvaan.

USB

USB:llä oli paljon hienoja asioita, mutta valitsin yksinkertaisimman vaihtoehdon, jotta ihmiset saisivat sen todennäköisemmin toimimaan, jos he päättivät kokeilla käyntikorttiani. Linux sallii kortin käyttäytyä tuettuna "laitteena". Gadget-kehys. Otin joitain ajureita aiemmista projekteista, jotka sisälsivät tämän prosessorin, joten minulla on pääsy kaikkiin USB-gadget-kehyksen toimintoihin. Päätin emuloida valmiiksi luotua flash-asemaa ja antaa shell-käyttöoikeuden virtuaalisen sarjaportin kautta.

kuori

Kun olet kirjautunut sisään pääkäyttäjänä, voit ajaa seuraavat ohjelmat sarjakonsolissa:

  • rogue: klassinen Unix Dungeon Crawling -seikkailupeli;
  • 2048: yksinkertainen peli 2048 konsolitilassa;
  • onni: erilaisten röyhkeiden sanojen tuotto. Päätin olla sisällyttämättä tähän koko lainaustietokantaa jättääkseni tilaa muille ominaisuuksille;
  • micropython: Hyvin pieni Python-tulkki.

Flash-aseman emulointi

Kääntämisen aikana rakennustyökalut luovat pienen FAT32-kuvan ja lisäävät sen yhdeksi UBI-osioista. Linux Gadget Subsystem esittelee hänen tietokoneensa tallennuslaitteena.

Jos olet kiinnostunut näkemään, mitä flash-asemalla näkyy, helpoin tapa tehdä tämä on lukea lähteet. Siellä on myös useita kuvia ja ansioluetteloni.

voimavarat

Lähteet

Buildroot-puuni on julkaistu GitHubissa - thirtythreeforty/käyntikortti-linux. NOR-flash-kuvan luomiseen on koodi, joka asennetaan prosessorin USB-lataustilassa. Siinä on myös kaikki pelien ja muiden ohjelmien pakettimääritykset, jotka työnsin Buildrootiin, kun sain kaiken toimimaan. Jos olet kiinnostunut F1C100:n käyttämisestä projektissasi, tämä olisi hyvä lähtökohta (voit vapaasti Kysy minulta kysymyksiä).
käytin kauniisti toteutettu projekti Linux v4.9 for F1C100s by Icenowy, hieman uusittu. Korttini toimii melkein vakiona 5.2. Se on GitHubissa - thirtythreeforty/linux.
Luulen, että minulla on tällä hetkellä maailman paras U-Boot-portti F1C100-koneille, ja se perustuu myös osittain Icenowyn työhön (yllättäen U-Bootin saaminen toimimaan oli melko turhauttavaa). Saat sen myös GitHubista - thirtythreeforty/u-boot.

F1C100:n dokumentaatio

Löysin melko niukkoja dokumentaatioita F1C100:sta, ja julkaisen sen tähän:

Lataan sen uteliaille. projektikaavioni.

Käyntikorttini käyttöjärjestelmä on Linux

Johtopäätös

Opin paljon tämän projektin kehittämisen aikana - se oli ensimmäinen projektini, jossa käytin reflow-juottouunia. Opin myös löytämään resursseja komponenteille, joiden dokumentaatio on huono.

Käytin kokemustani sulautetun Linuxin ja levykehityskokemuksesta. Projekti ei ole virheetön, mutta se näyttää kaikki taitoni hyvin.

Niille, jotka ovat kiinnostuneita sulautetun Linuxin kanssa työskentelystä, suosittelen lukemaan artikkelisarjani tästä: Embedded Linuxin hallitseminen. Siellä puhun yksityiskohtaisesti ohjelmiston ja laitteiston luomisesta tyhjästä pienille ja halvoille Linux-järjestelmille, samankaltaisille kuin käyntikorttini.

Lähde: will.com

Lisää kommentti