Moją wizytówką jest system Linux

Tłumaczenie artykułu z blog inżynier George Hilliard

Moją wizytówką jest system Linux
Możliwe do kliknięcia

Jestem inżynierem systemów wbudowanych. W wolnym czasie często poszukuję czegoś, co można wykorzystać przy projektowaniu przyszłych systemów, lub czegoś z moich zainteresowań.

Jednym z takich obszarów są tanie komputery, na których można uruchomić Linuksa, a im tańsze, tym lepiej. Wykopałem więc głęboką króliczą norę mało znanych procesorów.

Pomyślałem: „Te procesory są tak tanie, że można je praktycznie rozdawać za darmo”. Po pewnym czasie przyszedł mi do głowy pomysł zrobienia gołej karty dla Linuksa w formie wizytówki.

Kiedy o tym pomyślałem, zdecydowałem, że byłoby to naprawdę fajne zajęcie. Już to zrobiłem zobaczyłem elektroniczny wizytówki do toi miały różne ciekawe możliwości, takie jak emulacja kart flash, miganie żarówek, czy nawet bezprzewodowy transfer danych. Nie widziałem jednak wizytówek z obsługą Linuksa.

Więc sobie taki zrobiłem.

To jest gotowa wersja produktu. Kompletny komputer z minimalnym procesorem ARM, na którym działa moja niestandardowa wersja systemu Linux zbudowana za pomocą Buildroot.

Moją wizytówką jest system Linux

Posiada port USB w rogu. Jeśli podłączysz go do komputera, uruchamia się w ciągu około 6 sekund i jest widoczny jako karta flash i wirtualny port szeregowy, przez który można zalogować się do powłoki karty. Na dysku flash znajduje się plik README, kopia mojego CV i kilka moich zdjęć. Powłoka zawiera kilka gier, klasyki uniksowe, takie jak Fortune i Rogue, małą wersję gry 2048 i interpreter MicroPython.

Wszystko to odbywa się przy użyciu bardzo małego chipa flash o pojemności 8 MB. Bootloader zajmuje 256 KB, jądro zajmuje 1,6 MB, a cały główny system plików zajmuje 2,4 MB. Dlatego pozostaje dużo miejsca na wirtualny dysk flash. Dostępny jest także katalog domowy, w którym można zapisywać dane na wypadek, gdyby ktoś zrobił coś, co chce zapisać. Wszystko to jest również zapisane na chipie flash.

Całe urządzenie kosztuje niecałe 3 dolary. Jest na tyle tani, że można go oddać. Jeśli otrzymałeś ode mnie takie urządzenie, oznacza to, że najprawdopodobniej próbuję Ci zaimponować.

Projektuj i buduj

Wszystko zaprojektowałem i zmontowałem sam. To moja praca i kocham ją, a dużym wyzwaniem było znalezienie wystarczająco tanich części do tego hobby.

Wybór procesora był najważniejszą decyzją wpływającą na koszt i wykonalność projektu. Po szeroko zakrojonych poszukiwaniach wybrałem F1C100s, stosunkowo mało znany procesor firmy Allwinner, który jest zoptymalizowany pod względem kosztów (tj. cholernie tani). Zarówno pamięć RAM, jak i procesor znajdują się w tym samym pakiecie. Kupiłem procesory na Taobao. Wszystkie pozostałe komponenty zakupiono od LCSC.

Zamówiłem deski w JLC. Zrobili dla mnie 8 kopii za 10 dolarów. Ich jakość jest imponująca, zwłaszcza w stosunku do ceny; nie tak schludny jak OSHPark, ale nadal wygląda dobrze.

Pierwszą partię zrobiłem w kolorze czarnym matowym. Wyglądały pięknie, ale bardzo łatwo je było zabrudzić.

Moją wizytówką jest system Linux

Przy pierwszej partii było kilka problemów. Po pierwsze, złącze USB nie było wystarczająco długie, aby bezpiecznie zmieścić się w dowolnym porcie USB. Po drugie, ścieżki flash zostały wykonane niepoprawnie, ale obszedłem ten problem podginając styki.

Moją wizytówką jest system Linux

Po sprawdzeniu, czy wszystko działa, zamówiłem nową partię desek; Zdjęcie jednego z nich możecie zobaczyć na początku artykułu.

Ze względu na niewielkie rozmiary tych wszystkich drobnych elementów zdecydowałem się na lutowanie rozpływowe z wykorzystaniem tani piec. Mam dostęp do wycinarki laserowej, więc przy jej pomocy wyciąłem szablon lutowniczy z folii laminatora. Szablon wyszedł całkiem nieźle. Otwory o średnicy 0,2 mm na styki procesora wymagały szczególnej uwagi, aby zapewnić wysoką jakość wykonania – kluczowe znaczenie miało prawidłowe skupienie lasera i dobór jego mocy.

Moją wizytówką jest system Linux
Inne deski dobrze trzymają deskę podczas nakładania pasty.

Nałożyłem pastę lutowniczą i ręcznie ułożyłem elementy. Zadbałem o to, aby w żadnym miejscu w procesie nie użyto ołowiu - wszystkie płytki, komponenty i pasta spełniają normy RoHS - aby sumienie mnie nie dręczyło, gdy będę je rozdawał ludziom.

Moją wizytówką jest system Linux
Zrobiłem mały błąd przy tej partii, ale pasta lutownicza wybacza błędy i wszystko poszło dobrze

Umieszczenie każdego komponentu zajmowało około 10 sekund, dlatego starałem się ograniczyć liczbę komponentów do minimum. Więcej szczegółów na temat projektowania map można przeczytać w innym mój szczegółowy artykuł.

Lista materiałów i kosztów

Trzymałem się ściśle określonego budżetu. A wizytówka wyszła zgodnie z przeznaczeniem – nie mam nic przeciwko oddaniu jej! Oczywiście nie rozdam go każdemu, bo wykonanie każdej kopii zajmuje trochę czasu, a mój czas nie jest wliczany do kosztu wizytówki (jest w pewnym sensie darmowy).

komponent
Cena

F1C100
$1.42

PCB
$0.80

8 MB pamięci flash
$0.17

Wszystkie pozostałe komponenty
$0.49

Razem
$2.88

Naturalnie są też koszty trudne do policzenia, jak np. dostawa (ponieważ jest ona rozłożona na komponenty przeznaczone na kilka projektów). Jednakże, jak na płytę obsługującą Linuksa, jest to zdecydowanie dość tanie. To zestawienie daje również dobre wyobrażenie o tym, ile kosztuje firmy wytwarzanie urządzeń w najniższym segmencie cenowym: możesz być pewien, że kosztuje to firmy nawet mniej niż mnie!

Możliwości

Co powiedzieć? Karta uruchamia bardzo mocno okrojony Linux w 6 sekund. Ze względu na wymiary i cenę karta nie ma wejść/wyjść, obsługi sieci ani żadnej znaczącej ilości pamięci do uruchamiania ciężkich programów. Niemniej jednak udało mi się upchnąć kilka interesujących rzeczy w obrazie oprogramowania sprzętowego.

USB

Było wiele fajnych rzeczy, które można było zrobić za pomocą USB, ale wybrałem najprostszą opcję, aby ludzie mieli większe szanse, że zadziała, jeśli zdecydują się wypróbować moją wizytówkę. Linux pozwala karcie zachowywać się jak „urządzenie” z obsługą Struktura gadżetów. Pobrałem niektóre sterowniki z poprzednich projektów, które obejmowały ten procesor, dzięki czemu mam dostęp do wszystkich funkcjonalności środowiska gadżetów USB. Postanowiłem emulować wstępnie wygenerowany dysk flash i zapewnić dostęp do powłoki poprzez wirtualny port szeregowy.

Shell

Po zalogowaniu się jako root możesz uruchomić na konsoli szeregowej następujące programy:

  • rogue: klasyczna uniksowa gra przygodowa typu dungeon crawler;
  • 2048: prosta gra 2048 w trybie konsoli;
  • fortuna: wynik różnych pretensjonalnych powiedzeń. Zdecydowałem się nie włączać tutaj całej bazy danych cytatów, aby zostawić miejsce na inne funkcje;
  • mikropyton: Bardzo mały interpreter języka Python.

Emulacja dysku flash

Podczas kompilacji narzędzia kompilacji generują mały obraz FAT32 i dodają go jako jedną z partycji UBI. Podsystem Linux Gadget przedstawia jego komputer PC jako urządzenie pamięci masowej.

Jeśli chcesz zobaczyć, co pojawi się na dysku flash, najłatwiej to zrobić, czytając źródła. Jest też kilka zdjęć i moje CV.

Ресурсы

Źródła

Moje drzewo Buildroot zostało opublikowane w GitHubie — trzydzieści trzy czterdzieści/businesscard-linux. Istnieje kod do generowania obrazu flash NOR, który jest instalowany przy użyciu trybu pobierania USB procesora. Zawiera także wszystkie definicje pakietów gier i innych programów, które umieściłem w Buildroot, gdy wszystko działało. Jeśli jesteś zainteresowany wykorzystaniem F1C100 w swoim projekcie, będzie to świetny punkt wyjścia (nie krępuj się zadawaj mi pytania).
użyłem pięknie wykonany projekt Linux v4.9 dla F1C100s firmy Icenowy, nieco przeprojektowany. Moja karta działa prawie w standardzie v5.2. Jest na GitHubie — trzydzieści trzy czterdzieści/linux.
Myślę, że mam obecnie najlepszy port U-Boota dla F1C100 na świecie i jest on również częściowo oparty na pracy Icenowego (co zaskakujące, poprawne działanie U-Boota było dość frustrującym zadaniem). Można go także pobrać na GitHubie — trzydzieści trzy czterdzieści/u-boot.

Dokumentacja dla F1C100

Znalazłem dość skąpą dokumentację dotyczącą F1C100 i zamieszczam ją tutaj:

Wrzucam dla ciekawskich. schemat mojego projektu.

Moją wizytówką jest system Linux

wniosek

Wiele się nauczyłem podczas opracowywania tego projektu - był to mój pierwszy projekt z wykorzystaniem pieca do lutowania rozpływowego. Dowiedziałem się również, jak znaleźć zasoby dla komponentów ze słabą dokumentacją.

Wykorzystałem swoje dotychczasowe doświadczenia z wbudowanym Linuksem i doświadczeniem w tworzeniu płytek. Projekt nie jest pozbawiony wad, ale dobrze pokazuje wszystkie moje umiejętności.

Osobom zainteresowanym szczegółami pracy z wbudowanym Linuksem sugeruję przeczytanie mojej serii artykułów na ten temat: Opanowanie wbudowanego systemu Linux. Opowiadam tam szczegółowo o tym, jak od podstaw tworzyć oprogramowanie i sprzęt dla małych i tanich systemów Linux, podobnych do mojej karty telefonicznej.

Źródło: www.habr.com

Dodaj komentarz