Pierwsze kroki z Raspberry Pi: jak uruchomić komputer?
Komputery Raspberry Pi podbijają świat, do czego przyczyniła się m.in. ich nieprawdopodobnie niska cena. Zakup komputera to pierwsza trudność do pokonania dla jego użytkowników, kolejną – poważniejszą – jest konieczność jego uruchomienia. Rozwiązanie tego problemu przedstawiamy w artykule.
Przygotowanie komputera do pracy
Komputer Raspberry Pi nie jest wyposażony fabrycznie w pamięć masową (czyli odpowiednik dysku twardego tradycyjnego komputera), jej rolę spełnia karta SD umieszczona w gnieździe na spodzie płytki komputera (fotografia 1). Aby komputer mógł działać musimy na karcie zainstalować system operacyjny. W przykładzie skorzystamy z systemu Raspbian, czyli dystrybucji opartej na Debianie przystosowanej do komputera Raspberry. Potrzebujemy do tego obrazu systemu i programu zapisującego obraz na karcie (np. Image Writer for Windows). Po pobraniu plików uruchamiamy program Image Writer, w polu Image File wskazujemy plik obrazu i klikamy Write (zakładam, że karta jest już umieszczona w czytniku komputera), program poinformuje nas o tym, że operacja spowoduje nadpisanie danych na karcie, potwierdzamy i czekamy na koniec zapisu. Można również kupić gotową kartę SD z zainstalowanym Linuxem, np. tutaj.
Fot. 1. Lokalizacja gniazda karty SD komputera Raspberry Pi
Uruchomienie
Do pierwszego uruchomienia Raspberry, poza komputerkiem i kartą potrzebne będą:
- klawiatura ze złączem USB,
- monitor lub telewizor ze złączem HDMI,
- zasilacz z wtykiem micro-USB. Wymagana wydajność wynosi wg. producenta 700 mA (przy 5 VDC), można użyć np. ładowarki do telefonu, jeśli spełnia ten warunek.
Po umieszczeniu karty w gnieździe, dołączeniu klawiatury i monitora dołączamy zasilanie. Po chwili na ekranie powinniśmy zobaczyć ekran konfiguracji, mamy tu możliwość skonfigurowania lokalizacji, strefy czasowej, podziału pamięci między procesor i podsystem graficzny, overclock procesora i wiele innych. Jeśli nazwy ustawień nic Ci nie mówią możesz zostawić domyślne ustawienia. Po potwierdzeniu konfiguracji Raspberry wykona restart, od tej pory system jest gotowy do pracy, po uruchomieniu każdorazowo musimy się zalogować do systemu, domyślny login to pi, a hasło – raspberry.
Konfiguracja sieci
Po zalogowaniu warto ustawić komputerkowi statyczny adres IP (domyślnie korzysta on z adresu przydzielanego dynamicznie przez serwer DHCP), dzięki temu Raspberry będzie zawsze widoczny pod tym samym adresem. Zmiany adresu dokonujemy wpisując polecenie
sudo nano /etc/network/interfaces
Polecenie sudo pozwala na wykonanie następującego po nim polecenia z uprawnieniami roota, jest to koniecznie w przypadku większości czynności konfiguracyjnych. Polecenie nano uruchamia edytor plików tekstowych nano, /etc/network/interfaces to nazwa pliku tekstowego, który zawiera konfiguracje kart sieciowych.
Po otwarciu pliku widzimy m.in. linijkę:
iface eth0 inet dhcp
Interfejs iface eth0 to karta sieciowa, która nas interesuje, dhcp oznacza, że konfiguracja IP będzie pobierana z serwera DHCP w naszej sieci (praktycznie każdy router zawiera taki serwer, więc prawdopodobnie masz go w swojej domowej sieci). Aby to zmienić musimy skonfigurować statyczny adres IP, i tu trochę teorii: abyś mógł połączyć się z Raspberry musisz przypisać mu adres ze swojej podsieci, aby wyznaczyć taki adres musisz poznać konfigurację IP swojego komputera, w systemie windows można to zrobić w następujący sposób:
- naciśnij Klawisz Windows + R
- w pole Otwórz wpisz cmd
- w konsoli wpisz polecenie ipconfig
- w liście interfejsów znajdź kartę sieciową, przez którą będziesz łączyć
Przykładowa konfiguracja karty wygląda tak:
Karta Ethernet Połączenie lokalne: Sufiks DNS konkretnego połączenia : xxx Adres IPv6 połączenia lokalnego . : fe80::c153:9287:d8d8:fe04%11 Adres IPv4. . . . . . . . . . . . . : 10.1.3.219 Maska podsieci. . . . . . . . . . : 255.255.0.0 Brama domyślna. . . . . . . . . . : 10.1.0.254
Do wyznaczenia adresu potrzebujemy adresu IP komputera (10.1.3.219) oraz maski podsieci (255.255.0.0). Aby zrozumieć działanie maski podsieci musimy sobie ją zapisać w postaci dwójkowej gdzie każda z liczb jest 8-bitowa, mamy więc:
255.255.0.0 = 11111111 . 11111111 . 00000000 . 00000000
Aby dwa komputery były w tej samej podsieci ich adresy muszą się zgadzać w tych miejscach w których w masce są jedynki. Maska nie może zawierać jedynek poprzedzonych zerami, czyli np. poniższe liczby nie mogą być maską:
255.1.0.0 = 11111111 . 00000001 . 00000000 . 00000000
Wiemy już, że adres każdego urządzenia w naszej sieci musi mieć postać 10.1.x.x, resztę możemy wybrać dowolnie, ale pilnując przy tym, żeby nie użyć adresu zajętego już przez inne urządzenie. W tym celu po wybraniu adresu wykonujemy polecenie ping konsoli Windows, np. ping 10.1.3.111, zakładając, że wszystkie urządzenia w naszej sieci są włączone i odpowiadają na pingi (tak zwykle jest). Jeśli nie otrzymamy żadnej odpowiedzi – adres jest wolny. Jeszcze jedna uwaga: w każdej sieci zastrzeżone są następujące adresy:
- adres sieci – w tym przypadku jest to adres 10.1.0.0, tworzy się go uzupełniając adres zerami w miejscach, w których bity maski mają wartość zero
- adres broadcast – w tym przypadku jest to adres 10.1.255.255, tworzy się go uzupełniając adres jedynkami w miejscach w których bity maski mają wartość zero
Mamy już adres i maskę, wracamy do edycji pliku interfaces, w miejsce starej konfiguracji wpisujemy:
iface eth0 inet static address 10.1.3.111 netmask 255.255.0.0 network 10.1.0.0 broadcast 10.1.255.255 gateway 10.1.0.254
Komentarza wymaga tylko ostatnia linijka: adres gateway jest to adres przez który Raspberry będzie się łączył z komputerami spoza naszej podsieci, czyli z takimi, których adres nie jest postaci 10.1.x.x. W praktyce jest to po prostu adres routera w naszej domowej sieci, który poznaliśmy jako adres bramy domyślnej po wykonaniu polecenia ipconfig w Windows.
Teraz zapisujemy plik (Ctrl+O), potwierdzamy nazwę pliku i wychodzimy z edytora (Ctrl+X). Żeby ustawienia zaczęły działać należy wykonać polecenie
sudo /etc/init.d/networking restart
Korzystanie ze zdalnej konsoli (SSH)
W moim przypadku (nie posiadam komputera stacjonarnego, a telewizor stoi w takim miejscu, że dołączenie go do Raspberry odpada) zdecydowanie wolę korzystać z Raspberry Pi przez sieć. Aby to zrobić musimy pobrać klienta SSH (np. Putty). Po uruchomieniu klienta podajemy adres IP Raspberry i łączymy się, jeśli połączenie się powiedzie, to logujemy do systemu (tak jak przy normalnym logowaniu domyślny login to pi, a hasło to raspberry).