Moja posjetnica koristi Linux

Prijevod članka iz blog post inženjer George Hilliard

Moja posjetnica koristi Linux
Može se kliknuti

Ja sam inženjer ugrađenih sustava. U slobodno vrijeme često tražim nešto što se može koristiti u projektiranju budućih sustava ili nešto iz mojih interesa.

Jedno takvo područje su jeftina računala koja mogu pokretati Linux, a što jeftinija to bolja. Pa sam iskopao duboku zečju rupu opskurnih procesora.

Pomislio sam, "Ovi procesori su toliko jeftini da se praktički mogu dati besplatno." I nakon nekog vremena sinula mi je ideja da napravim golu karticu za Linux u obliku posjetnice.

Kad sam razmislio o tome, zaključio sam da bi to bilo stvarno super. Već sam vidjeli elektronički posjetnice na to, a imali su razne zanimljive mogućnosti, poput oponašanja flash kartica, bljeskanja žarulja ili čak bežičnog prijenosa podataka. Međutim, nisam vidio posjetnice s podrškom za Linux.

Pa sam si napravio jedan.

Ovo je gotova verzija proizvoda. Kompletno minimalno ARM računalo koje pokreće moju prilagođenu verziju Linuxa izgrađenu s Buildrootom.

Moja posjetnica koristi Linux

Ima USB priključak u kutu. Ako ga spojite na računalo, diže se za oko 6 sekundi i vidljiv je kao flash kartica i virtualni serijski port preko kojeg se možete prijaviti u ljusku kartice. Na flash pogonu nalazi se datoteka README, kopija mog životopisa i nekoliko mojih fotografija. Školjka ima nekoliko igara, klasike Unixa kao što su fortune i rogue, malu verziju igre 2048 i MicroPython interpreter.

Sve se to radi pomoću vrlo malog flash čipa od 8 MB. Bootloader stane u 256 KB, kernel zauzima 1,6 MB, a cijeli korijenski datotečni sustav zauzima 2,4 MB. Stoga ostaje puno prostora za virtualni flash pogon. Tu je i kućni direktorij u koji se može pisati u slučaju da netko učini nešto što želi spasiti. Sve je to također spremljeno na flash čip.

Cijeli uređaj košta manje od 3 dolara. Dovoljno je jeftin da ga poklonite. Ako ste od mene dobili takav uređaj, to znači da vas najvjerojatnije pokušavam impresionirati.

Dizajnirajte i izgradite

Sve sam sam dizajnirao i montirao. To je moj posao i volim ga, a veći dio izazova bilo je pronaći dovoljno jeftine dijelove za hobi.

Izbor procesora bio je najvažnija odluka koja je utjecala na cijenu i izvedivost projekta. Nakon opsežnog istraživanja, odabrao sam F1C100s, relativno malo poznati procesor iz Allwinnera koji je cjenovno optimiziran (tj. vraški jeftin). I RAM i CPU nalaze se u istom paketu. Procesore sam kupio na Taobaou. Sve ostale komponente su kupljene od LCSC.

Ploče sam naručio od JLC-a. Napravili su mi 8 primjeraka za 10 dolara. Njihova kvaliteta je impresivna, posebno za cijenu; nije tako uredno kao OSHPark, ali svejedno izgleda dobro.

Napravio sam prvu seriju mat crnu. Izgledale su lijepo, ali su se vrlo lako zaprljale.

Moja posjetnica koristi Linux

Bilo je nekoliko problema s prvom serijom. Prvo, USB priključak nije bio dovoljno dugačak da sigurno stane u bilo koji USB priključak. Drugo, tragovi bljeskalice su napravljeni netočno, ali to sam zaobišao savijanjem kontakata.

Moja posjetnica koristi Linux

Nakon što sam provjerio da sve radi, naručio sam novu seriju ploča; Fotografiju jednog od njih možete vidjeti na početku članka.

Zbog male veličine svih tih malih komponenti, odlučio sam pribjeći lemljenju reflowom jeftin štednjak. Imam pristup laserskom rezaču, pa sam ga upotrijebio za izrezivanje šablone za lemljenje iz filma laminatora. Šablona je ispala sasvim dobro. Rupe promjera 0,2 mm za kontakte procesora zahtijevale su posebnu pažnju kako bi se osigurala visoka kvaliteta proizvodnje - bilo je kritično pravilno fokusirati laser i odabrati njegovu snagu.

Moja posjetnica koristi Linux
Druge ploče dobro drže ploču tijekom nanošenja paste.

Nanio sam pastu za lemljenje i ručno namjestio komponente. Pazio sam da se nigdje u procesu ne koristi olovo - sve ploče, komponente i pasta zadovoljavaju standard RoHS - da me ne muči savjest kad ih ljudima dijelim.

Moja posjetnica koristi Linux
Malo sam pogriješio s ovom šaržom, ali pasta za lemljenje oprašta pogreške i sve je prošlo dobro

Za postavljanje svake komponente bilo je potrebno oko 10 sekundi, pa sam pokušao smanjiti broj komponenti na minimum. Više detalja o dizajnu karte možete pročitati u drugom moj detaljan članak.

Popis materijala i trošak

Držao sam se strogog budžeta. I posjetnica je ispala kako je zamišljena - nemam ništa protiv da je poklonim! Naravno, neću je dati svima, jer je za izradu svake kopije potrebno vrijeme, a moje vrijeme nije uračunato u cijenu posjetnice (to je nekako besplatno).

sastavni dio
Cijena

F1C100s
$1.42

PCB
$0.80

8MB flash
$0.17

Sve ostale komponente
$0.49

Ukupno
$2.88

Naravno, tu su i troškovi koje je teško izračunati, poput isporuke (budući da se raspoređuje na komponente namijenjene za više projekata). Međutim, za ploču koja podržava Linux, to je definitivno prilično jeftino. Ova raščlamba također daje dobru predodžbu o tome koliko tvrtke koštaju proizvoditi uređaje u najnižem cjenovnom segmentu: možete biti sigurni da tvrtke košta čak i manje nego što košta mene!

Sposobnosti

Što reći? Kartica pokreće vrlo teško ogoljen Linux za 6 sekundi. Zbog faktora oblika i cijene, kartica nema I/O, mrežnu podršku ili značajniju količinu prostora za pohranu za pokretanje teških programa. Ipak, uspio sam strpati hrpu zanimljivih stvari u firmware sliku.

USB

Bilo je puno zgodnih stvari koje se mogu napraviti s USB-om, ali odabrao sam najjednostavniju opciju kako bi ljudi vjerojatnije uspjeli ako odluče isprobati moju posjetnicu. Linux omogućuje kartici da se ponaša kao "uređaj" s podrškom Okvir gadgeta. Uzeo sam neke od upravljačkih programa iz prethodnih projekata koji su uključivali ovaj procesor, tako da imam pristup svim funkcijama okvira USB gadgeta. Odlučio sam emulirati unaprijed generirani flash pogon i omogućiti pristup ljusci putem virtualnog serijskog porta.

ljuska

Nakon što se prijavite kao root, možete pokrenuti sljedeće programe na serijskoj konzoli:

  • rogue: klasična Unix puzajuća avanturistička igra;
  • 2048: jednostavna igra 2048 u konzolnom modu;
  • bogatstvo: izlaz raznih pretencioznih izreka. Odlučio sam ne uključiti cijelu bazu podataka citata ovdje kako bih ostavio mjesta za druge značajke;
  • mikropiton: Vrlo mali Python tumač.

Emulacija Flash pogona

Tijekom kompilacije, alati za izgradnju generiraju malu FAT32 sliku i dodaju je kao jednu od UBI particija. Linux Gadget Subsystem predstavlja njegovo računalo kao uređaj za pohranu.

Ako vas zanima što se pojavljuje na flash pogonu, najlakši način da to učinite je čitanjem izvori. Tu je i nekoliko fotografija i moj životopis.

sredstva

Izvori

Moje Buildroot stablo objavljeno je na GitHubu - tridesettričetrdeset/posjetnica-linux. Postoji kod za generiranje NOR flash slike, koji se instalira pomoću USB načina preuzimanja procesora. Također ima sve definicije paketa za igre i druge programe koje sam gurnuo u Buildroot nakon što sam sve proradio. Ako ste zainteresirani za korištenje F1C100s u svom projektu, ovo bi bila odlična početna točka (slobodno postavljaj mi pitanja).
Koristio sam prekrasno izveden projekt Linux v4.9 za F1C100s by Icenowy, malo redizajniran. Moja kartica radi skoro standardno v5.2. Nalazi se na GitHubu - tridesettričetrdeset/linux.
Mislim da danas imam najbolji priključak U-Boota za F1C100 na svijetu, a također se djelomično temelji na Icenowyjevom radu (iznenađujuće, natjerati U-Boot da ispravno radi bio je prilično frustrirajući zadatak). Možete ga nabaviti i na GitHubu - tridesettričetrdeset/u-čizma.

Dokumentacija za F1C100s

Našao sam prilično oskudnu dokumentaciju za F1C100s, i postavljam je ovdje:

Postavljam ga za znatiželjnike. moj dijagram projekta.

Moja posjetnica koristi Linux

Zaključak

Puno sam naučio tijekom razvoja ovog projekta - bio je to moj prvi projekt u kojem sam koristio peć za reflow lemljenje. Također sam naučio kako pronaći resurse za komponente s lošom dokumentacijom.

Iskoristio sam svoje postojeće iskustvo s ugrađenim Linuxom i iskustvom u razvoju ploča. Projekt nije bez mana, ali dobro pokazuje sve moje vještine.

Za one koje zanimaju pojedinosti o radu s ugrađenim Linuxom, predlažem da pročitaju moju seriju članaka o ovome: Ovladavanje ugrađenim Linuxom. Tamo detaljno govorim o tome kako stvoriti softver i hardver od nule za malene i jeftine Linux sustave, slično mojoj posjetnici.

Izvor: www.habr.com

Dodajte komentar