Żeby Raspberry Pi zaczęło z nami rozmawiać i zachowywać się w sposób kontrolowany najlepiej zadbać na początku tej fascynującej przygody. W niniejszym wpisie powiem jak zainstalować PRi na karcie SD (przy wsparciu Ubuntu 12.10), uruchomić pierwszy raz oraz skonfigurować ssh i vnc, żeby było łatwiej zarządzać zabawką.
Starcie pierwsze – Raspberry Pi nie uruchamia się!
Tak, lekko stresujące było to, że włożyłem niby skonfigurowaną kartę SD i nic. Świeciła się jedna czerwona dioda, a miało mrugać, śpiewać i tańczyć. Z lekką paniką zacząłem dłubać w sieci i znalazłem info, że może mam niekompatybilną kartę, albo upalone RPi. Na szczęście trafiłem też na stronę, na której sugerowano, że może coś nie zadziałało przy tworzeniu obrazu na SD. Był to strzał w 10!
W moim przypadku sposób opisany na stronie: engadget.com nie zadziałał. Znalazłem na jednym z forów opis narzędza ImageWriter (dostępne w repozytoriach standardowo podpiętych w ubuntu). Kilka klików i zacząłem wgrywać ponownie obraz. W moim przypadku narzędzie miało problem z komunikatami na przyciskach oraz nie informowało o postępie zapisywania obrazu. Na początku znalazłem jakieś cudomagiczne rozwiązanie pozwalające obserwować na konsoli co się dzieje, ale w kolejnych podejściach (2-3 razy rozwaliłem system zaraz na początku i łatwiej było postawić obraz na nowo) olałem podglądanie i po zapuszczeniu tworzenia obrazu odczekałem około 2 minut na zapis (aż przestał dysk intensywnie migać diodą sygnalizując odczyt).
Oczywiście ISO najlepiej ściągnąć stąd: http://www.raspberrypi.org/downloads

ImageWriter – wybranie obrazu ISO oraz urządzenia, na którym będzie zainstalowany obraz.

Ostrzeżenie o tym, że karta SD zostanie wymazana. Jeśli używacie dysku USB, to uważajcie, żeby wybrać właściwe urządzenie.

Obraz się generuje – niestety brak informacji o postępie zapisu. Widać również jakiś błąd, który występował na moim komputerze (tłumaczenia przycisków).
Dodatkowo warto sprawdzić czy operacja przebiegła poprawnie. Jeśli ktoś lubi okienka, to za pomocą dowolnego programu do partycjonowania (u mnie GParted) można sprawdzić jak wygląda zapisana karta – mniej więcej powinna wyglądać tak, jak poniżej:

Raspberry Pi startuje, czyli podstawowa konfiguracja
Może słabo szukałem, ale do pierwszego uruchomienia RPi raczej potrzebna jest przynajmniej klawiatura oraz monitor lub telewizor z HDMI. Ja podłączyłem do TV oraz włączyłem. Przy uruchamianiu listują się kolejne elementy uruchamiane przez system, następnie pojawia się tekstowe okno Raspi-config (możliwe do wywołania też później z poziomu konsoli za pomocą polecenia sudo raspi-config):

W zasadzie przez większość pozycji trzeba się przeklikać:
– expand_rootfs – rozszerza partycję podstawową do pełnego rozmiaru karty SD. Domyślnie obraz instaluje się na niecałych 2GB, więc warto tą operację zrobić. Ewentualnie można później tworzyć osobne partycje /home oraz swap, ale uznałem że dla własnych działań nie widzę potrzeby zaawansowanego dłubania w obrazie partycji.
– configure_keyboard – najpierw wybieramy rodzaj klawiatury (zwykle std 105 klawiszy), a następnie kodowanie – tak, jest polski, jeśli ktoś potrzebuje.
– change_pass – zmienia hasło użytkownika ‚pi’. I tak za kilka chwil skasujemy to konto, ale warto zmienić. Szybciej później się przeklikuje.
– change_locale – zmiana domyślnego kodowania oraz języka. U siebie zmieniłem na pl_PL UTF8.
– change_timezone – jak kto woli, ale ja wybrałem Europę i Warszawę:)
– memory_split – ilość pamięci dostępna dla grafiki (domyślnie 64MB) – nie ruszałem – pozostała pamięć i tak jest na wypasie.
– ssh – włączamy demona SSH – zdecydowanie przydatne (po restarcie nie będzie potrzebny monitor).
– boot_behaviour – ustawienie czy mają domyślnie ładować się X’y. Oczywiście, że nie – szkoda zasobów. Po starcie można je wywołać poleceniem ‚startx’, zaś podłączenie się do VNC uruchamia je automatycznie.
– update można zrobić później.
Konfiguracja sieci przewodowej w Raspberry Pi
Konfigurację sieci polecam od polecenia:
sudo nano /etc/network/interfaces
i zmianie linijki: iface eth0 inet dhcp na iface eth0 inet static oraz dopisaniu poniżej:
address 192.168.YY.XX (gdzie YY to zwykle 0 lub 1 – zgodnie z naszą siecią oraz XX to nr IP urządzenia – najlepiej poza zakresem DHCP ustawionym na routerze)
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1 (jeśli wyżej YY = 1, to zwykle tutaj XX też będzie 1)
Doprecyzowania wymaga jeszcze edytor NANO, który jest bardzo prosty w obsłudze. W konsoli nie działają skróty CTRL+C lub +V, ale odpowiednikami są SHIFT+CTRL+C oraz +V. Działa również poruszanie kursorem strzałkami, przycisk DELETE oraz BACKSPACE i SPACJA. Po wprowadzeniu zmian wciskami CTRL+X (chcąc wyjść). Program pyta się czy na pewno oraz czy chcemy wprowadzić zmiany (oczywiście, że tak), więc zmieniamy i w kolejnym kroku pyta o nazwę – czasem na końcu dopisuje .jakiesrozszerzenie, więc trzeba je skasować i ENTER. Prościzna.
Kolejnym krokiem jest polecenie: sudo nano /etc/hostname – tutaj nadajemy swoją nazwę hosta (domyślnie jest raspberrypi).
Ja jeszcze wrzuciłem na swoim komputerze: sudo nano /etc/hosts – i dopisałem linijkę: 192.168.1.67 rpi1, gdzie rpi1 jest identyczną nazwą, jak hostname w RPi – łatwiej mi zapamiętać, gdy w komputerze, żeby się połączyć do RPi wpisuję tylko ssh rpi1 (dlaczego tak krótko o tym za chwilę / ważne, żeby wpis host zrobić u siebie na komputerze, a nie na RPi). Na koniec jeszcze na komputerze jedno polecenie: sudo /etc/init.d/networking restart i mamy hosty odświeżone.
Konto użytkownika, czyli jak uprościć sobie życie w Raspberry Pi
Żeby połączyć się poprzez ssh wystarczy wpisać: ssh -l pi rpi1, ale to dla mnie trochę za długo. Ja założyłem sobie na RPi takiego samego użytkownika jak mam na komputerze, dzięki temu nie muszę w poleceniu ssh używać parametru -l oraz nazwy użytkownika (to rozwiązanie działa, ale tylko jeśli na komputerze również jest system z rodziny linux).
Dodanie nowego usera: sudo useradd NAZWA_USERA oraz dodanie użytkownika do grupy sudoers: sudo nano /etc/sudoers, gdzie trzeba dopisać linijkę: NAZWA-USERA ALL=(ALL:ALL) ALL oraz zmienić: pi ALL=(ALL) NOPASSWD: ALL na NAZWA_USERA ALL=(ALL) NOPASSWD: ALL.
Po wyjściu i zapisaniu restart platformy i wszystko powinno ładnie działać. W międzyczasie można jeszcze skasować konto ‚pi’ poleceniem sudo userdel pi oraz ustawić sobie hasło dla roota: sudo passwd (przydaje się przy używaniu polecenia su).
Pełnia szczęścia z Raspberry Pi, czyli tryb graficzny oraz serwer VNC dla okienkolubnych
W przypadku podłączenia RPi do monitora na stałe warto sobie w konfiguratorze raspi ustawić domyślne odpalanie Xów. Gdyby jednak takie działanie było sporadyczne oraz do systemu chcemy się podłączać przez VNC, to wystarczy pamiętać o poleceniu startx, które z poziomu konsoli (po zalogowaniu użytkownika) uruchomi tryb graficzny.
Ja czasem lubię grafikę, a do TV nie uśmiecha mi się biegać, więc postanowiłem na RPi uruchomić server VNC. Konfiguracja jest prosta jak budowa cepa i została ładnie opisana tutaj: malinowepi.pl, czyli: sudo apt-get install tightvncserver, edycja: sudo nano /etc/init.d/tightvncserver i wpisanie pliku z wymienionej strony (trzeba pamiętać o zmianie użytkownika ‚pi’ na swojego) oraz następnie: sudo chmod 755 /etc/init.d/tightvncserver i sudo update-rc.d tightvncserver defaults. Domyślny port VNC to 5901.
Ja od razu w wywołaniu (starcie servera) dopisałem parametry: su $USER -c ‚/usr/bin/tightvncserver :1 -geometry 800×600 -depth 16’, gdzie ustawiłem rozdzielczość oraz głębię kolorów (wg mnie więcej nie potrzeba – szkoda transferu).
Dodatkowo spotkałem się z tym, że server czasem nie ma ochoty się podnieść, więc trzeba: sudo pkill Xtightvnc, a następnie: sudo /etc/init.d/tightvncserver start. Po tym drugim poleceniu system może zapytać o hasło do VNC. Należy je podać i od razu powinno połączenie działać. Spotkałem się jeszcze z tym, że czasem w pliku /etc/init.d/tightvncserver widnieje użytkownik ‚pi’, wtedy wystarczy sudo nano /etc/init.d/tightvncserver, edycja, zapisanie i restart servera.

Polecam również aplikację ‚htop’ (sudo apt-get install htop), która z poziomu konsoli (a więc i przez ssh) umożliwia podgląd obciążenia i procesów na RPi. Miłej zabawy i napiszcie czy i jakie Wy spotykaliście problemy po drodze.
ps: przy tworzeniu wpisu pomógł też artykuł na blogu: blog.vokiel.com.