środa, 3 lipca 2013

Raspberry PI cz. I – pierwsze uruchomienie

 
Idea taniego komputera realizowana przez Raspberry Pi Founadtion przyniosła jej twórcą nadspodziewany sukces. Premiera tej platformy komputerowej miała miejsce 29 lutego 2012 roku. Szeroki wachlarz zastosowań Raspberry Pi oraz relatywnie niska cena sprawiły, że jest to platforma wykorzystywana zarówno przez amatorów, hobbystów jak i elektroników/programistów. Raspberry Pi nie posiada wbudowanego dysku twardego, dlatego też zarówno załadowanie systemu operacyjnego jak i przechowywanie danych odbywa się via karta SD, czemu służy zamontowany na PCB slot. Sercem układu jest CPU ARM1176JZF-S z domyślnym zegarem 700MHz.
Zwykle Raspberry Pi dystrybuowane jest jako urządzenie pozbawione układów niezbędnych do pierwszego rozruchu (tzn. karty SD, zasilacza, kabli RCA/HDMI oraz audio).
Ogólny wygląd Raspberry Pi:



Jako nośnik pamięci w poniższym przykładzie zastosowano kartę SDHC klasy 4 16GB firmy EMTEC. Dla standardowego użytkownika zapewnia wystarczającą prędkość.

Kolejną kwestię stanowi zasilacz. Wymogiem jest napięcie 5V oraz prąd: co najmniej 500mA (model A), co najmniej 700mA (model B). Wbrew pozorom sprawa zasilania oraz jego wydajności prądowej jest o tyle ważna, że w przypadku dużego obciążenia zbyt słaby zasilacz może spowodować podwieszenie systemu, czego również doświadczono, kiedy do modelu B zastosowano posiadany adapter 500mA. W przypadku standardowej konfiguracji (instalacja systemu itp.) żadne negatywne skutki nie dawały o sobie znać. Z kolei przy próbie konfiguracji sieci (podłączenie RJ45) peryferia takie jak mysz, klawiatura przestawały odpowiadać.
Na rynku dostępna jest szeroka gama zasilaczy dedykowanych prezentowanej platformie komputerowej. Czasami jednak wydany koszt płacony jest tylko za markę czy też tytuł aukcji. Alternatywę stanowią ładowarki do telefonów. W prezentowanym przykładzie zastosowano zasilacz do telefonu Nokia o oznaczeniu AC-10E (1200mA). Ważna jest kwestia jakości gwarantowanej przez producenta. W serwisach oferowane są często tańsze „zamienniki” również z wyjściem microUSB jednak o mniejszej wydajności prądowej (800mA). Również jakość zastosowanych w niej komponentów pozostawia wiele do życzenie. Dlatego też nie polecałbym ich zakup.
Jedną z ostatnich kwestii sprzętowych są kable łączące Raspberry Pi z monitorem. Prezentowany przykład przedstawia zastosowanie starego telewizora CRT jako monitora dla opisywanej platformy. Połączenie odbywa się przez wyjście analogowe video (RCA). Dlatego niezbędny jest kabel typu cinch-cinch. Z doświadczenia warto podkreślić, żeby był to przewód dobrej jakości. Często stare  kable znalezione w przydomowych zapasach mogą nie spełnić oczekiwań użytkownika. W starych przewodach gorszej jakości na drodze łączącej Rpi z TV w przewodzie mogą indukować się zakłócenia, które znacznie wpływają na jakość obrazu – co można sprawdzić delikatnie zmieniając położenie kabla RCA. Nowy ekranowany przewód analogowego wyjścia video to nieduży wydatek znacznie poprawiający komfort pracy z Raspberry Pi.
Następnie należy dokonać wyboru systemu operacyjnego. W prezentowanym przykładzie zastosowano OS: Raspbian Wheezy (dystrybucja Debiana dedykowana na platformę Raspberry Pi). Sposób załadowania systemu na kartę SD krok po kroku opisuje instrukcja dostępna na oficjalnej stronie Raspberry Pi:
Jak już wspomniano funkcję monitora w prezentowanym przykładzie stanowi stary TV kineskopowy. Dlatego tuż po załadowaniu systemu na SD należy dokonać wstępnej konfiguracji wyjścia video. Dokonuje się to w pliku config.txt.
Niezbędna jest zmiana parametru odpowiadającego za standard nadawania koloru w sygnale telewizyjnym. Obowiązującym standardem w Europie jest PAL. Uwzględnienie tego faktu w pliku polega na modyfikacji (oraz odkomentowaniu tej linii – w przypadku poprzedzającego ją znaku # należy go usunąć):
sdtv_mode=2
Tak przygotowana karta SD jest już wstępnie skonfigurowana do pracy z omówionymi założeniami.
Jak przedstawiono w przytoczonej instrukcji „Quick Start Guide” przy pierwszym uruchomieniu systemu zostaje otwarte okno raspi-config, w którym należy dokonać ustawień strefy czasowej oraz wybrać polecenie expand_rootfs. O ile pierwsza czynność jest klarowna o tyle druga wymaga słowa komentarza. Otóż domyślnie system operacyjny jest przystosowany do pracy z kartami SD o pojemności 4GB. W związku z czym w przypadku stosowania kart o większej pojemności należy dokonać przeskalowania. Jest to o tyle ważne, ponieważ przy pominięciu tej czynności użytkownik już po zainstalowaniu kilku aplikacji może przekonać się o brakującym miejscu na dysku (informacja o ilości miejsca na dysku: df –h) co może się chociażby objawić problemami związanymi z załadowaniem nakładki graficznej X-window. Przeskalowania na kartę SD o większej pojemności można dokonać w dowolnym momencie wpisując w oknie terminala polecenie:
sudo raspi-config
i wykonując przedstawioną wcześniej czynność. Nie mniej jednak, by uniknąć wszelkich wątpliwości warto dokonać operacji rozszerzenia partycji już przy pierwszym starcie.
Następnie przy starcie użytkownik zostaje poproszony o login (domyślnie: pi) oraz hasło (domyślnie: raspberry)[w systemach UNIX przy wpisywaniu ciągu znaków hasła nie jest widoczny żaden znak reprezentujący wprowadzony znak z klawiatury, żeby osobom trzecim nie udzielać dodatkowej informacji o długości hasła] .
Żeby przejść do przyjaźniejszego interfejsu użytkownika (graficzny X-window) należy wpisać:
startx
Po uruchomieniu interfejsu graficznego może się okazać, że niewłaściwie dopasowana jest rozdzielczość ekranu monitora do wielkości pulpitu. W tym celu należy dokonać odpowiednich modyfikacji w pliku config.txt. Co jest możliwe zarówno z poziomu Windows’a na innym komputerze, jak i z poziomu Rpi. Modyfikacja odbywa się poprzez polecenie:
sudo nano /boot/config.txt
A następnie w edytorze powinno dodać się linie z parametrami określającym odpowiednią rozdzielczość:
framebuffer_width = XXX
framebuffer_height = YYY
gdzie ciągi X oraz Y odpowiadają liczbą pikseli odpowiednio na szerokość i wysokość. Edycję zakańcza się zapisem pliku (CTRL+O) oraz jego zamknięciem (CTRL+X). Żeby nie utracić domyślnych danych konfiguracyjnych bezpieczniej jest zakomentować wszystkie linie – dodając znak # przed każdą z nich, a następnie dopisać własne odpowiednie dane. Aby konfiguracja została poprawnie załadowana należy zrestartować minikomputer poleceniem:
sudo reboot
W powyższym pliku można również dokonać operacji przesunięcia obrazu dodając parametry overscan_left, overscan_right, overscan_top, overscan_bottom przypisując im jako wartości liczbę pominiętych pikseli.
Warto wspomnieć, że większa rozdzielczość powoduje migający obraz (zbyt mała częstotliwość odświeżania obrazu), co powoduje pewien dyskomfort pracy. Z kolei mniejsza częstotliwość wymusza wyświetlanie większych ikon i czcionek (również nieco irytujące) kosztem stabilności obrazu. Dlatego w przedstawionym przykładzie konfiguracja odbywała się na drodze kompromisu. Jest to niestety cena analogowego wyjścia video.
Pracę z Raspberry Pi zakańcza się poleceniem:
sudo shutdown –h 0