Temat: Yocto versus Gentoo Linux (meta-dystrybucje)
Miałem teraz czas, aby przyjrzeć się bliżej "Intel Edison" + "Arduino Development Kit"
Oto moje wrażenia (Edison wpięty w Arduino Dev. Kit):
1) Instalacja (podłączenie do PC, wgranie do Flasha najnowszego obrazu Yocto, załadowanie poprzez dedykowana wersję IDE Arduino testowego programiku) poszło bardzo gładko (zarówno pod Linuxem, jak i pod Win7). Pod Linuxem trzeba mieć zainstalowaną libFTDI a pod Win driver do FTDI.
2) Połączenie z Linuxem na Edisonie (Yocto) poszło gładko (pod linuxem trzeba zainstalować program screen lub minicom, ja używałem screen). Konfiguracja Wifi na Edisonie bezproblemowo - po konfiguracji Edison wystawia prosty WEB server pod przydzielonym mu adresem IP.
3) Instalacja IoT Devkit for Edison (środowisko oparte na eclipse pozwalające programować Arduino i Edisona w "normalnym C" - nie tym uproszczonym dialekcie z IDE Arduino. Efekt - przykładowe programy się budują i można zrobić "deploy" na płytkę, działa bez zarzutu.
4) Środowiska do Javascript nie instalowałem. Muszę przyznać, że na początku można być trochę "skonfudowanym", ponieważ jest tyle różnych IDE i SDK, że trudno się połapać co do czego (dokumentacja jest trochę chaotyczna).
Teraz zaczyna się zabawa z Yocto (wszystkie instalacje pod Linux Mint 17.0):
1) Zainstalowałem ADT i Toolchain (z command line) - używałem "ADT Installer Script" (najpierw trzeba było sprawdzić/zainstalować trochę zależności (wymaganych pakietów). Wszystko jest fajnie, tylko nie mając doświadczenia z "meta-danymi" i "receptami" Yocto ciężko w tym coś sensownego zrobić.
2) Zainstalowałem Eclipse CDT Juno (z tarrball'a ze strony Eclipse) i doinstalowałem do niego Plugin do Yocto 1.7 - sama instalacja plugin'u bez problemów. Można to zrobić tak jak opisane pod tym linkiem (tylko w URL repozytorium zmienić z werrsji 1.2 na 1.7:
http://elinux.org/images/4/4a/ELCE_Yocto_Plugin_2011_l...
3) Teraz właśnie konfiguruje plugin do Yocto (korzystam z tego linku):
http://www.rocketboards.org/foswiki/Documentation/Yoct...
Wtedy po ściągnięciu projektu Yocto na Edisona, powinienem móc korzystać z:
- Yocto BitBake Recipe Editor
- HOB'a - graficznej nakładki pozwalającej uruchamiać build'y Yocto.
Jakie są moje pierwsze wrażenia z używania "Intel Edison" +"Arduino Development Kit" - pozytywne, wszystko działa jak należy, Linux na Edisonie działa pewnie i całkiem wydajnie. Moja konkluzja - o ile używanie wersji "Arduino IDE" dla Edisona jest jak najbardziej dla amatorów to już budowanie własnej dystrybucji Linux'a opartej na Yocto, chyba już nie (no chyba, że jest to tak zaawansowany amator, że ciężko go odróżnić od profesjonalisty - co oczywiście się zdarza).
A teraz moje największe rozczarowanie:
"Intel Edison" nie nadaje się do projektu do którego został zakupiony - przyczyna: zablokowane GPU w procesorze Atom, co uniemożliwia podłączenie kamery wideo.
Dlaczego tego nie zauważyłem:
1) W najczarniejszych scenariuszach nie spodziewałbym się, że Intel zablokuje/usunie GPU z procesora Edisona
2) Większość nowszych Atomów (w procesie 45 nm) miało zintegrowane GPU (a tu użyto procesu 22 nm, więc powinien wydzielać jeszcze mniej ciepła)
3) Wiedziałem, że płytka "Arduino Dev. Kit for Edison" nie ma wyjścia/wejścia wideo ale myślałem, że to z powodu zachowania zgodności z "Arduino Uno"
4) Przypuszczałem, że na "Breakout Board" można podłączyć wejście/wyjście wideo (moja wina, że nie przeanalizowałem dokładnie dokumentacji)
5) Miałem sporo pracy przed przerwą świąteczną, przez co nie przeanalizowałem całej dostępnej dokumentacji do Edisona (i forum dyskusyjnego intela dot. Edisona), co nie zmienia faktu iż sam sobie jestem winien
Jest co prawda możliwość emulacji wejścia wideo na CPU jak opisane tutaj:
https://richardstechnotes.wordpress.com/2014/10/31/enab...
Autor pisze, że dla kamery VGA (640x480 10 fps) obciążenie CPU Edisona wynosi około 9 procent, to nie sądzę, żeby ta zależność była liniowa szczególnie z kodowaniem H.264 (potrzebuję podłączyć kamerę full HD 1920 × 1080 30 fps). Spróbuję wkompilować te sterowniki w jądro Linuxa na Edisona - jednak nie mam dużej nadziei, iż zakończy się to sukcesem (obciążenie procesora), a nawet jeśli to zabraknie mocy obliczeniowej na inne zadania, które trzeba wykonać.
Moja opinia o "Intel Edison" (podkreślam: wyłącznie moja subiektywna ocena) jest następująca:
1) "Intel Edison" jest perfekcyjnie wykonanym technicznie gadżetem, któremu trudno znaleźć jakieś zastosowanie
2) Na pewno nie nadaje się do:
A) technologii "EWereables" dla której niby jest dedykowany (większość ciekawych zastosowań elektornicznej odzieży wiąże się z przetwarzanie obrazu wideo)
B) Nie nadaje się do budowy amatorskich robotów (ten sam powód - przetwarzanie obrazu)
C) może nadaje się do budowy sterowników amatorskich "dronów", ale też niepełnych - bez obrazu z kamery (przynajmniej o lepszej jakości).
D) Do prostszych zastosowań wolałbym użyć jakiejś z wersji Arduino (szczególnie, że od jakiegoś czasu jest dostępne Arduino Yun z WiFi i SoC z Linuxem na pokładzie)
Szczerze mówiąc nie mam na razie pomysłu do czego użyć zakupionego zestawu i powrócę do sprawdzonych rozwiązań na procesorach ARM. Jedyne co mogę powiedzieć to "Nie rozumiem, czemu Intel schrzanił tak świetnie zapowiadający się projekt.
Pozdrawiam.