Moduły SoM - pierwsze starcie

Linux jako system PC i Embedded
Regulamin forum
Aby łatwiej poruszać się w zagadnieniach to prosimy aby w temacie, na samym początku, w nawiasach prostokątnych umieszczać hasło wiodące dla opisywanego problemu np. [Debian], [System embedded], [Linux Mint] itp.
SuperGość
Uber Geek
Uber Geek
Posty: 2346
Rejestracja: piątek 04 wrz 2015, 09:03

Moduły SoM - pierwsze starcie

Postautor: SuperGość » niedziela 15 lip 2018, 13:42

Ponieważ szykuje mi się duży projekt, to postanowiłem trochę się przygotować wstępnie do niego, tym bardziej, że nie jest to obszar dotychczasowych moich zawodowych działań. Tutaj skrótowo podzielę się swoim pierwszym starciem z układami SoM. Być może dla większości będą to sprawy banalne i wywołają uśmiech pobłażania na twarzach starych linuksowych wyjadaczy ale może niektórym kolegom się to też przyda, a ja liczę na jakieś wsparcie, wyjaśnienia itp. Musiałem więc na nowo "zaprzyjaźnić" się na początek z systemem linuks (ale nie o tym tutaj), a czeka mnie o wiele więcej trudniejszych wyzwań. Generalnie muszę dojść do takiego etapu abym mógł z pełną świadomością tego, co mówię wyrazić swoją opinię czy taki moduł, o którym poniżej czy może inny, będzie właściwy do zastosowania w projekcie. W zasadzie ten temat to takie notatki dla mnie ;).

SoM – co to jest?
Urządzenia System on Module to minikomputery z ogromną mocą obliczeniową i niskim poborem energii o bardzo małych rozmiarach. Niewielkie wymiary, wielka moc, duża liczba interfejsów i szeroki zakres temperatury pracy, sprawiają że moduły SoM są obecnie szeroko stosowane szczególnie w aplikacjach przemysłowych. Moduły SoM z nowoczesnymi procesorami ARM umożliwiają łatwe opracowywanie wymagających aplikacji wykorzystujących system Linuks (to by było na tyle "encyklopedycznych" informacji).
Z takich względów zainteresowałem się i ja tymi modułami. Producentów jest wielu, ja wybrałem do zapoznawania się z tymi rozwiązaniami, polskiego producenta firmę SoMLabs.
zrzut_1.png
zrzut_2.png
zrzut_3.png
strona modułami SoM

Na start wybrałem moduł VisionSOM-6ULL (SLS16Yx) w komplecie z płytą bazową VisionCB-STD oraz wyświetlaczem SL-TFT7-TP-800-480.
zrzut_4.jpg
zrzut_5.png
zrzut_6.png
strona z opisem i dokumentacją VisionSOM-6ULL

Przygotowanie karty SD z systemem Debian 9.2 dla VisionSOM-6ULL
Wyroby firmy SoMLabs mają również swoją stronę Wiki, gdzie są umieszczone niezbędne materiały, pomocne przy starcie.
zrzut_7.png
główna strona Wiki produktów SoMLabs
zrzut_8.png
strona Wiki modułu VisionSOM-6ULL

Strony SoMLabs niestety są jedynie w języku angielskim, co mnie nieco dziwi, choć z drugiej strony współczesny konstruktor powinien znać ten język przynajmniej w stopniu biernym, jednak mimo wszystko wersja polskojęzyczna powinna być (jest to Polska firma).
Dla wybranego modułu (w moim przypadku VisionSOM-6ULL) jest odpowiednia strona zawierająca wszelką dokumentację techniczną oraz bardzo przydatne na starcie przewodniki jak np. „Debian Developer Guide”, od którego zacząłem.
zrzut_9.png
strona "Debian Developer Guide"

Informacje na temat zasilania
Na początek warto zapoznać się z wymaganiami odnośnie zasilania i tu przychodzi z pomocą odpowiednia podstrona z Wiki „VisionCB-STD Power Supply”
zrzut_10.png

Jak widać na obrazku są dwa sposoby zasilania zestawu:
  • poprzez złącze PWR-C czyli micro-USB (które podłączone do PC daje możliwość uzyskania komunikacji poprzez USB-UART znajdującego się na VisionCB-STD), to źródło zasilania jest wystarczające o ile nie podłączy się innych urządzeń zewnętrznych.
  • poprzez złącze 9-12V DC (złącze 2.1x5.5 z + w środku), z tego zasilania trzeba korzystać przy podłączeniu do zestawu chociażby ekranu czy innych urządzeń zewnętrznych, zalecany jest zasilacz 12V/2A.

Przygotowanie karty SD
Przygotować kartę SD dla VisionSOM-6ULL można na PC z systemem Windows lub Linuks, ja wybrałem Linuks (sam się sobie dziwię, bo to dodatkowa praca dla mnie gdyż nie korzystam na co dzień z tego środowiska, to nie jest moje środowisko naturalne). Co trzeba przygotować?

Wymagania wstępne
Wszystko jest opisane na stronie Wiki „Jak przygotować kartę SD z Debianem 9.2 dla VisionSOM-6ULL na Linuksie”, a jeśli na otwartej stronie damy tłumaczenie na język polski, to wersja polska jest bardzo dobrze przetłumaczona, w Chrome wystarczy nacisnąć PPM i wybrać „Przetłumacz na język polski”). Nie jest jednak w moim odczuciu, tak jasno i prosto wszystko opisane, jest według mnie nieco chaosu (albo moje odczucia wynikają z podstawowej wiedzy na temat linuksa). Brakuje mi takiego przewodnika w całości, typu "step by step", który pozwoli uruchomić kompletny zestaw, składający się z modułu, płyty bazowej oraz wyświetlacza z TouchScreenem. Niby wszystko jest ale porozrzucane w rożnych stronach wiki i do tego jakby niezupełnie ze sobą treści są "kompatybilne". Być może to wystarczy dla fachowców ale można by to dopracować aby nie zniechęcać na samym starcie.
Co jest więc potrzebne:
  • Komputer z Linuksem – ja zainstalowałem na starym ThinkPad R500 dystrybucję Ubuntu 18.04 (SoMLabs zaleca 16.04 gdyż inne wersje i dystrybucje mogą wymagać dodatkowych operacji)
    zrzut_11.png
  • Karta micro SD, 4 GB lub większa, ja wybrałem taką jaką akurat mam, czyli micro SD 32GB firmy GOOD RAM
  • Obraz Debiana dostępny pod tym adresem Debian Stretch 9.2 for VisionSOM-6ULL

Pobieranie i zapisywanie obrazu na karcie microSD
Pierwszym krokiem jest pobranie obrazu przygotowanego przez SoMLabs (ja wybrałem Debiana na start, jest jeszcze projekt YOCTO dla tych modułów). Dla wyjadaczy linuksowych jest proste, co trzeba wpisać aby tego dokonać ale ja wolę takie polecenia notować. Wpisuję w otwartym terminalu:

Kod: Zaznacz cały

wget http://ftp.somlabs.com/debian-stretch-visionsom-6ull.img.xz

co spowoduje pobranie do katalogu /home/wojtek/ obrazu systemu wskazanego w poleceniu „wget”, w sumie to samo się osiągnie otwierając w przeglądarce wskazany link z obrazem i zapisując plik do katalogu domowego, no ale postanowiłem być linuksowym twardzielem:
zrzut_12.png

Jak widać plik o nazwie „debian-stretch-visionsom-6ull.img.xz” posłusznie zapisał się w lokalizacji /home/wojtek/
zrzut_13.png

Następną czynnością jest rozpakowanie pobranego pliku i zapisanie go na karcie SD (karta micro SD włożona do czytnika PC). Znowu mamy do wyboru dwie ścieżki, czyli prawdziwego twardziela albo taką „okienkową”, korzystając z możliwości GUI Ubuntu.

Zapisanie obrazu na karcie SD – sposób „okienkowy”
W sumie tutaj postępuje się tak jakby systemem na którym pracujemy był Windows, czyli zero terminali i wpisywania „tajemnych poleceń”. Wszystko pokazują poniższe zrzuty.
zrzut_14.png
zrzut_15.png
zrzut_16.png
zrzut_17.png
zrzut_18.png

Jak widać na zrzutach powyżej, obraz systemu zapisał się na karcie SD. Po czym włożyłem kartę SD do mojego zestawu i uruchomiłem, zasilając poprzez port micro USB, jednocześnie uruchamiając w terminalu mincom (jak go zainstalować to nieco później), który połączy poprzez konwerter UART-USB (będący na pokładzie płyty bazowej) uruchomiony moduł SOM z linuksowym PC, co widać poniżej. Jak widać jestem zalogowany jako root na systemie Debian, zainstalowanym w moim module VisionSOM-6ULL.
zrzut_19.png

Zapisanie obrazu na karcie SD – sposób „linuksowego twardziela”
To samo, co wyżej (instalacja systemu Debian na karcie SD) w wykonaniu prawdziwego twardziela linuksowego (jakim powoli zaczynam być). Po ściągnięciu obrazu poleceniem

Kod: Zaznacz cały

wget http://ftp.somlabs.com/debian-stretch-visionsom-6ull.img.xz

należy ściągnięty obraz wyodrębnić i zapisać w katalogu domowym, w tym celu wydajemy w terminalu polecenie:

Kod: Zaznacz cały

unxz debian-stretch-visionsom-6ull.img.xz

zrzut_20.png
zrzut_21.png

Jak widać plik o nazwie „debian-stretch-visionsom-6ull.img.xz” został zastąpiony wyodrębnionym plikiem „debian-stretch-visionsom-6ull.img”. Teraz czas na zapisanie obrazu na karcie SD. Oczywiście karta micro SD musi być włożona do czytnika kart PC-ta. No i teraz trzeba trochę linuksowych „czarów”, czyli należy dowiedzieć się jak identyfikowana jest karta SD w naszym komputerze z systemem linuks. Należy więc wpisać w terminalu następujące polecenie

Kod: Zaznacz cały

sudo parted -l

w wyniku czego otrzymujemy takie informacje, jak na zrzucie poniżej
zrzut_22.png

Jak widać u mnie karta SD została zidentyfikowana jako „/dev/mmcblk0”, należy to zapamiętać, gdyż trzeba poprawnie wskazać, gdzie ma być zapisany obraz systemu! A więc kolej na następne czary, wpisujemy w terminal polecenie (według przewodnika "How to prepare SD card with Debian 9.2 for VisionSOM-6ULL on Linux"), które spowoduje zapisanie obrazu na kartę SD:

Kod: Zaznacz cały

sudo dd if=debian-stretch-visionsom-6ull.img of=/dev/mmcblk0 bs=64k

po tym poleceniu otrzymałem:
zrzut_24.png

Tu rodzi się od razu u mnie pytanie, wynikające z informacji zamieszczonych w EP 3/2018 gdzie opisywany jest temat "Emulator konsoli NES
w systemie Linux na komputerze VisionSOM", tam przeniesienie obrazu systemu na kartę SD jest wykonane poleceniem:

Kod: Zaznacz cały

sudo dd if=./debian-stretch-visionsom-6ull.img of=/dev/mmcblk0 bs=4M oflag=dsync

  • Pytanie 1 - czemu takie różnice, że w jednym przypadku jest tam "bs=64k", a w drugim "bs=4M oflag=dsync" i jakie to niesie za sobą skutki?
Jak ktoś wie, poproszę o wyjaśnienie.

Czyli system Debian zainstalowany na karcie SD. Trzeba samemu ocenić jak lepiej zrobić tą operację. Po włożeniu karty do zestawu i uruchomieniu minicoma (o instalacji i uruchomieniu minicoma, nieco później), mam działający system:
zrzut_25.png

Nie należę do szczególnie cierpliwych i skoro dotarł do mnie wyświetlacz i mam cały komplet, to postanowiłem go podłączyć. Ku mojemu jednak rozczarowaniu okazało się, że tak przygotowany obraz systemu Debian, do tego zestawu, nie uwzględnia obsługi dedykowanego wyświetlacza, wprawdzie znalazłem później informację na ten temat ale .... Wydaje mi się, że firma powinna taki obraz przygotować. Poniżej zdjęcie nieudanej próby uruchomienia wyświetlacza.
zrzut_26.JPG

Oprócz tego, że nie wyświetla poprawnie obrazu to jeszcze wyraźnie wszystko jest zablokowane i nawet na reset nie reaguje (zasilanie było poprawne 12V/2A).

.................ciąg dalszy nastąpi wkrótce ..........
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Wróć do „GNU/Linux”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 3 gości