Raspberry Pi 2 Model B – pierwsze wrażenia i uruchomienie

Udało się – paczka z nowiutkimi Raspberry Pi 2 model B dotarła szybko i mogłem od razu przejść do testowania. Zamówienie złożyłem 2 lutego 2015 roku w polskim oddziale RS Components i już po dwóch dniach paczka przyjechała – wg listu przewozowego z niemieckiego centrum dystrybucji.

Sama paczka – nic specjalnego, bąbelkowa koperta syngowana logiem RS, w środku kartonik z maliną, dokument wydania z magazynu i to wszystko.

Problem na start – zapomniałem czytnika microSD!

Tak, zapomniałem, że nowa malina (2 oraz wcześniejsza B+) mają złącze microSD. Dzięki czemu karta pamięci nie jest już tak wystającym elementem urządzenia, aczkolwiek wyróżnia się 2-3 milimetry poza obrys płytki PCB. Szkoda, że nie ukryli tego całkiem. Z rozwiązaniem mojego problemu przyszedł czytnik kart microSD w przenośnym modemie LTE – wystarczy podłączyć kablem urządzenie do komputera, włączyć i oprócz internetu z karty GSM pojawia się karta pamięci wśród urządzeń dostępnych w Windowsie/Linuksie/OSXie.

Instalacja Rasbiana – standardowa procedura

Tutaj nic nikogo nie zaskakuje. Ja wybrałem opcję instalacji pełnego rasbiana (nie przekonałem się do NOOBS). Ściągnąłem paczkę ZIP o wielkości niespełna 1GB, rozpakowałem (ISO to już 3GB, więc karta 4GB jako minimum jest potrzebna) i z poziomu windowsa 7 i aplikacji Win32DiskImager zainstalowałem dystrybucję na karcie pamięci.

Problem numer dwa – nie mam dostępu do routera ani monitora z HDMI

A więc nie mam jak dowiedzieć się jaki IP ma moja malinka. I tutaj z pomocą przychodzi eLinux.org, gdzie dokładnie opisane jest co należy zrobić, żeby mieć zawsze świeżą informację o IP urządzenia. W Rasbianie zadziałało rozwiązanie alternatywne (opisane pod w/w linkiem), czyli modyfikacja pliku: /etc/rc.local. Instalację Raspberry Pi bez klawiatury opisałem tutaj.

Problem numer trzy – nie mam dostępu do partycji linuksowej na Raspberry

Żeby wykonać działania opisane w powyższym punkcie, trzeba wyedytować plik jeden z plików startowych na partycji linuksowej. I tutaj (w przypadku użytkowników windowsów) pojawia się mały problem, ponieważ na karcie pamięci (po instalacji dystrybucji poprzez Win32DiskImagera) pojawia się partycja BOOT (system plików windowsowy) oraz partycja linuksowa z katalogami systemu plików. Żeby się do niej dostać, to trzeba poszukać narzędzia dla windowsa, które pokaże nam taki system plików (istnieją managery katalogów) lub (wg mnie bardziej eleganckie rozwiązanie) uruchomić z pendrive dowolną dystrybucję linuksa w wersji LIVE.

Problem numer trzy – wykonałem wszystkie powyższe działania i nie dostałem maila z IP Raspberry Pi

zabezpieczenie google

Na potrzeby powyższego ćwiczenia założyłem konto email w gmailu. Swoje prv konta mam zabezpieczone dodatkowym pinem oraz wolałem nie zmniejszać ich poziomu zabezpieczeń wpisując jawnym tekstem hasło w konfigurację maliny. Wykonałem wszystkie powyższe czynności i nic. Cisza. Okazuje się, że gmail ma dodatkowe zabezpieczenie, które nazywa parametrem ‚Dostęp dla mniej bezpiecznych aplikacji’. Na szczęście po chwili przychodzi mail, trzeba wejść w ustawienia konta google i zmienić na ‚Dozwolony’. Po tym ponownie uruchomić RPi i cieszyć się otrzymanym IP na email.

rpi2_4core

RPi2 działa i cieszy mnie informacją o 4 rdzeniach. Na dniach będę testować szerzej wydajność oraz na drugiej sztuce stawiać RaspBMC. 

ubuntu 64bit & problem z arduino IDE

Przy okazji ostatniej „wymiany” systemu operacyjnego (z Minta na Ubuntu) postanowiłem w końcu sprawdzić wersję 64-bitową. Cannonical na stronie pobierania Ubuntu sugeruje wersje 64-bitowe, więc chyba są już na tyle stabilne, że warto spróbować. Niestety okazało się, że Arduino IDE przestało działać na nowej wersji systemu.

Opisana sytuacja nie była weryfikowana na innym komputerze, aczkolwiek po ilości zapytań w sieci mogę wnioskować, że nie jestem odosobnionym przypadkiem.

arduino console

Moje środowisko pracy

– nie instalowałem IDE Arduino poprzez instalator systemu, ponieważ chcę korzystać z tego samego środowiska na różnych komputerach,
– w związku z tym IDE Arduino 1.0.5 i 1.5.5 oraz przy okazji Energia (środowisko IDE oparte o Arduino dla mikrokontrolerów TI.com) mam w dedykowanym katalogu na Dropbox,
– sketchbooki i dodatkowe biblioteki (libraries) mam w tym samym katalogu (podzielone dla poszczególnych wersji IDE), dzięki czemu wszędzie tam, gdzie mam dostęp do Dropbox‚a mam też dostęp do swoich projektów,
– rozwiązanie z wieloma komputerami sprawdza się tylko pod systemami linuksowymi (bezwzględna ścieżka dostępu – głównie używana przez sketchbooki zawsze wygląda tak samo: /home/user/Dropbox/elektronika/),
– Arduino IDE zawsze odpalam z konsoli (poleceniem ./arduino wykonanym w odpowiednim katalogu).

Problemy, które się pojawiły

Boldem zaznaczyłem istotne informacje.

java.lang.UnsatisfiedLinkError: /home/user/Dropbox/elektronika/arduino-1.0.5/lib/librxtxSerial.so: /home/user/Dropbox/elektronika/arduino-1.0.5/lib/librxtxSerial.so: niewłaściwa klasa ELF: ELFCLASS32 (Possible cause: architecture word width mismatch) thrown while loading gnu.io.RXTXCommDriver
Exception in thread „main” java.lang.UnsatisfiedLinkError: /home/user/Dropbox/elektronika/arduino-1.0.5/lib/librxtxSerial.so: /home/user/Dropbox/elektronika/arduino-1.0.5/lib/librxtxSerial.so: niewłaściwa klasa ELF: ELFCLASS32 (Possible cause: architecture word width mismatch)
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
(…)
at processing.app.Base.main(Base.java:195)

Rozwiązanie problemu

Wychodzę z założenia, że dobrze zadane pytanie w wyszukiwarce, to połowa sukcesu. I tym razem przekonałem się, że to prawda – już w pierwszym wyniku znalazłem wątek, który był strzałem w dziesiątkę:

http://forum.arduino.cc/index.php/topic,3607.0.html

W kilku miejscach użytkownicy pisali o potrzebie prawidłowego linkowania do biblioteki: librxtxSerial.so, co wiązało się z weryfikacją zainstalowania odpowiedniego pakietu oraz utworzenia dowiązania pomiędzy lokalizacjami plików:

sudo apt-get install librxtx-java
ln -sf /usr/lib/librxtxSerial.so lib/librxtxSerial.so

U mnie pomogło. Jeśli mimo wszystko będziecie mieć problem – piszcie, w grupie zawsze łatwiej rozwiązuje się problemy.