Po pierwszej części artykułu zapraszam do jego kontynuacji, gdzie postaram się przejść ze stadium "mam Raspberry Pi" do etapu "mogę zacząć pracę i zabawę".
Obejmuje to przygotowanie karty SD z odpowiednim systemem operacyjnym, poznanie środowiska graficznego oraz zapewnienie połączenia z internetem.
W założeniach projektowych Raspberry Pi miał być tanim narzędziem do nauki programowania, z czego jednoznacznie wynika, że docelowym systemem operacyjnym był Linux. W ten sposób każdy potencjalny użytkownik mógł mieć możliwość skonfigurowania systemu, pasującego do jego potrzeb. W końcu każda aplikacja ma swoją własną specyfikę.
Jedne dystrybucje są ultralekkie i mają tylko niezbędne minimum. Inne są przygotowane pod kątem multimediów, dlatego każdy użytkownik na początku swojej przygody stoi przed decyzją – który system wybrać?
Pierwszym z dwóch najbardziej popularnych jest ArchLinuxARM – dystrybucja ArchLinuxa specjalnie przygotowana na urządzenia z procesorem ARM, której głównym założeniem jest prostota i pełna kontrola systemu przez użytkownika. Drugim jest Raspbian Wheezy – czyli debian, zoptymalizowany pod kątem Raspberry, oficjalnie sugerowany jako system dla początkujących użytkowników maliny. Ja zdecydowałem się na tę drugą opcję.
Przygotowanie karty SD
Aby móc umieścić jakikolwiek system na karcie pamięci, należy ją najpierw odpowiednio przygotować, do czego potrzebny będzie komputer PC z czytnikiem kart pamięci. Instrukcja wykonania tego dla systemu Windows:
Wkładamy kartę pamięci do czytnika na komputerze PC.
W opcjach zaznaczamy „FORMAT SIZE ADJUSTMENT” jako „ON”.
Formatujemy.
Można teraz ściągnąć obraz wybranej dystrybucji i nagrać go specjalnym narzędziem na kartę pamięci. Jednak Fundacja przygotowała coś w sam raz dla początkujących: NOOBS (czyli New Out Of Box Software). NOOBS to specjalnie przygotowana paczka, w skład której wchodzi kilka dystrybucji linuxa dla Raspberry (między innymi Raspbian i ArchLinuxARM). Zaletą narzędzia, oprócz ogromnej prostoty, jest fakt, że możemy w każdej chwili wrócić do interfejsu wyboru systemu operacyjnego w przypadku zepsucia już postawionego systemu. Poniżej instrukcja instalacji NOOBS na karcie SD:
Kopiujemy wypakowane pliki wprost na kartę pamięci.
To wszystko! W tym momencie wkładamy kartę pamięci do Raspberry Pi.
Pierwsze uruchomienie i raspi-config
W końcu jesteśmy gotowi włączyć malinkę. Potrzeba do tego kilku wcześniej wspomnianych rzeczy: monitora z wyjściem HDMI (żeby cokolwiek zobaczyć) oraz klawiatury (ewentualnie z myszką, do poruszania się po systemie).
Po włączeniu zasilania komputerka, ukazuje nam się menu wyboru systemu. Ja wybrałem Raspbiana, jako że jest on najbardziej popularny, a co za tym idzie - najlepiej wspierany.
Chwilę, jaka jest potrzebna do rozpakowania obrazu można wykorzystać w kreatywny sposób – na przykład pijąc herbatę. Po wypiciu herbaty (i wypakowaniu wszystkich potrzebnych plików systemowych) wystarczy kliknąć przycisk „OK”, a Raspberry uruchomi się ponownie, po czym Waszym oczom ukaże się poniższy obrazek:
Pierwszy obrazek po włączeniu maliny - skrypt raspi-config.
Jest to narzędzie do łatwego konfigurowania Raspberry. Zostały tu wyprowadzone takie opcje jak: rozszerzenie miejsca, którego może używać Raspbian do całej karty, zmiana hasła, włączenie bootowania Raspberry bezpośrednio do środowiska graficznego i inne.
Z naszej perspektywy nie musimy na razie nic konfigurować, ponieważ NOOBS ma domyślnie rozszerzoną partycję dla systemu, a resztę ustawień każdy zrealizuje we własnym zakresie.
Tryb graficzny LXDE
Aby włączyć tryb graficzny należy opuścić skrypt raspi-config (klawisz ESC) i wpisać komendę startx. Komenda włącza menedżer okien w Raspbianie - LXDE (Lightweight X11 Desktop Environment), który został zaprojektowany tak, by nie pochłaniać więcej zasobów, niż to konieczne.
Domyślny pulpit w Raspberry Pi.
System jest prosty i intuicyjny w użytkowaniu, dlatego nie będę się przy nim bez potrzeby zatrzymywał. Niektórych użytkowników zastanowić może fakt, że nawet po ustawieniu daty i godziny w raspi-config, po ponownym włączeniu informacje te są gubione. Wynika to z braku wbudowanego w Raspberry Pi zegara czasu rzeczywistego – RTC (Real Time Clock).
Są trzy rozwiązania tej sytuacji: albo wpisujemy datę i godzinę po każdym włączeniu maliny, albo dołączamy układ RTC, albo zapewniamy dostęp komputerka do internetu. Wtedy malina korzysta z Serwera NTP. Osobiście zdecydowałem się na ostatnią opcję.
Ustawienia sieciowe
Istnieją dwie możliwości zapewnienia internetu Raspberry Pi: ethernet lub bezprzewodowa karta sieciowa (adapter WiFi). Zazwyczaj jest tak, że sterowniki do adaptera należy.... pobrać z internetu, dlatego najwygodniej jest na początku podłączyć się kablem ethernetowym bezpośrednio do routera.
Sprawdzenie dostępu do internetu na malince wykonujemy wpisując w terminalu:
ping www.forbot.pl -c 2
W przypadku sukcesu powinna pojawić się podobna wiadomość:
PING www.forbot.pl (179.9.9.231): 56(84) bytes of data.
64 bytes from 179.9.9.231: icmp_req=1 ttl=53 time=39.8 ms
64 bytes from 179.9.9.231: icmp_req=2 ttl=53 time=40.2 ms
--- www.forbot.pl ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 39.804/40.034/40.265/0.305 ms
Plug-and-surf, prawda? Proste i przyjemne, jednak... cały czas mamy ogon w postaci kabla ethernetowego. By się od niego uwolnić, kupiłem kartę sieciową TL-WN725N, której instalacja była na tyle nieintuicyjna, że postanowiłem pokazać, co należy z tym fantem zrobić. Może komuś się przyda:
cd rpi-linux
make mrproper
zcat /proc/config.gz > .config
make modules_prepare
cp /home/pi/tplink/rpi-firmware/extra/Module.symvers .
cd /home/pi/tplink/rtl-8188eu
Kompilujemy driver:
CONFIG_RTL8188EU=m make -C /home/pi/tplink/rpi-linux M=/home/pi/tplink/rtl-8188eu
Kopiujemy sterownik i go włączamy:
sudo cp 8188eu.ko /lib/modules/3.6.11+/kernel/drivers/net/wireless
sudo depmod -a
sudo modprobe 8188eu
Po poprawnym załadowaniu sterownika karty sieciowej można już włączyć dostarczany wraz z Raspbianem program WiFiConfig, gdzie w miejscu Adapter: powinno pojawi sięć wlan0. Oznacza to, że karta sieciowa została pomyślnie zainstalowana.
Aby znaleźć naszą sieć WiFi przechodzimy do zakładki Manage Networks i wybieramy opcję Scan. Gdy już uda nam się znaleźć odpowiednią sieć, klikamy na nią dwukrotnie i ustawiamy odpowiednie szyfrowanie oraz hasło w polu PSK. Po próbie połączenia, sprawdzamy jego status takim samym poleceniem, jak wcześniej i dowiadujemy się, że wszystko działa jak należy.
Jeżeli jednak ktoś chce łączyć się z malinką zdalnie (np. poprzez SSH) będzie potrzebował jej adresu IP, który domyślnie jest ustawiany w sposób dynamiczny przez router (DHCP). Oznacza to, że po restartcie urządzenie może mieć zupełnie inne IP.
Oczywiście da się ten problem rozwiązać, ale pomyślcie, ile kłopotu sprawiłaby listonoszom nasza ciągła zmiana adresów zamieszkania? Dlatego proponuję zmienić domyślne ustawienia RPI na statyczne przydzielanie IP. Zanim jednak cokolwiek zmienimy, musimy wiedzieć, jakie ustawienia wprowadzić, by wszystko działało. Przyjrzyjmy się zatem konfiguracji interfejsów sieciowych, które znajdują się w pliku interfaces. Podglądamy to za pomocą komendy:
cat /etc/network/interfaces
Pokaże nam się zawartość pliku:
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpasupplicant/wpa_supplicant.conf
iface default inet dhcp
Interesują nas jego dwie linijki:
iface eth0 inet dhcp
iface default inet dhcp
Pierwsza z nich odpowiada za ustawienia sieci LAN, druga zaś za WiFi, więc każdy może zmienić sobie opcję, której będzie używał.
Ja będę używał adaptera WiFi, dlatego muszę zmienić drugą linijkę, a dokładniej słowo dhcp na static. Teraz już RPI będzie wiedziała, że adres musi ustawić statycznie, tylko że... jeszcze nie wie jaki!
Aby to poprawnie skonfigurować, musimy zebrać troszkę informacji od samego routera. Załóżmy zatem, że się z nim połączyliśmy (z dynamicznym IP) i mamy dostęp do internetu, wtedy wpisujemy w konsoli:
ifconfig
Naszym oczom ukazują nam się informacje o dostępnych interfejsach i połączeniach. Interesuje nas dokładnie:
wlan0 Link encap:Ethernet HWaddr f8:1a:67:0e:ac:c4
inet addr:192.168.1.102 Bcast:192.168.1.255 Mask:255.255.255.0
Oczywiście musicie uzupełnić plik informacjami konfiguracyjnymi, które sami otrzymacie. Mogą się one nieznacznie różnić od tych, które wypisałem powyżej.
Ktoś dociekliwy mógłby spytać, dlaczego ustawiłem akurat taki adres IP, a nie jakiś ładniejszy. Oczywiście można tak zrobić, jednak mogłoby się zdarzyć, że wymyślony przez nas „ładny” adres IP jest zajęty przez inne urządzenie - mało prawdopodobne, ale możliwe. Dlatego ustawiając przydzielony wcześniej dynamicznie adres IP jesteśmy pewni, że wszystko będzie poprawnie działać. Teraz po zapisaniu zmian oraz zrestartowaniu komputerka, możemy cieszyć się, że zmieniliśmy tryb życia naszej maliny z koczowniczego na osiadły.
Podsumowanie
System stoi, sieć stoi - nic nas nie zatrzyma przed rozpoczęciem programowania i na tym głównie skupimy się w kolejnej części artykułu.
Zobaczymy w jaki sposób zmusić Raspberry Pi do rozmowy z innymi układami za pomocą niskopoziomowych interfejsów komunikacyjnych (UART, SPI, I2C). Zapraszam do lektury!
Dołącz do 20 tysięcy osób, które otrzymują powiadomienia o nowych artykułach! Zapisz się, a otrzymasz PDF-y ze ściągami (m.in. na temat mocy, tranzystorów, diod i schematów) oraz listę inspirujących DIY na bazie Arduino i Raspberry Pi.
To nie koniec, sprawdź również
Przeczytaj powiązane artykuły oraz aktualnie popularne wpisy lub losuj inny artykuł »
Dołącz do 20 tysięcy osób, które otrzymują powiadomienia o nowych artykułach! Zapisz się, a otrzymasz PDF-y ze ściągami (m.in. na temat mocy, tranzystorów, diod i schematów) oraz listę inspirujących DIY z Arduino i RPi.
Trwa ładowanie komentarzy...