Przygotowanie systemu dla Raspberry Pi Zero
Spis treści
O co chodzi?
Raspberry Pi Zero jest tak naprawdę pełnym komputerem o takiej samej wydajności jak pierwszy Xbox. Jak każdy taki komputer potrzebuje systemu operacyjnego do pracy.
W zwykłych komputerach systemy instaluje się z dysków CD albo kupuje się komputer z już zainstalowanym systemem. Malina Zero (ang. raspberry to właśnie malina) jest tak mała, że podłączanie do niej dysków twardych i czytników CD byłoby raczej śmieszne, a już na pewno mało wygodne (choć można to zrobić przez łącze USB!). Dlatego twórcy tego komputera zdecydowali się używać jako "dysku twardego" karty microSD. Instalacja systemu wygląda więc nieco inaczej i podobna jest do zwykłego kopiowania plików.
Można sobie wyobrazić, że producenci komputera "jakoś tam" zainstalowali system na karcie microSD włożonej do swojej Maliny, a potem skopiowali całą jej zawartość do pliku, który udostępnili potem w internecie. Naszym zadaniem jest wykonanie odwrotnej procedury. Musimy pobrać obraz dysku z internetu (czyli po prostu ściągnąć pojedynczy plik), a potem zapisać ten plik na swojej karcie microSD. Przy czym trzeba zwrócić uwagę, że zwykłe zapisanie pliku -- tak jak kopiuje się na przykład zdjęcia -- nie wystarczy. Dlaczego? Nie zagłębiając się w szczegóły chodzi o to, że jeden z fragmentów systemu operacyjnego musi się znaleźć w specjalnej części dysku, żeby komputer potrafił go uruchomić. Z tego powodu procedura wgrywania ściągniętego obrazu systemu na kartę SD jest nieco inna, ale nadal zupełnie prosta.
Czy nie dałoby się jakoś prościej?
Pewnie tak; do pewnego stopnia całą poniższą procedurę można trochę uprościć. Jednak nagrywanie systemu na kartę jest świetną okazją żeby "otrzaskać się" z systemem. Nie przejmuj się, że coś nie wychodzi za pierwszym razem. Pytaj i spokojnie próbuj jeszcze raz. Rozwiązując kolejne problemy uczysz się nowych rzeczy o Ubuntu. Sekret tkwi w tym, że Malina również działa z systemem Linux pochodzącym od Debiana, tak jak Ubuntu. Wszystko czego się dowiesz tutaj od razu przyda się przy zabawie z programowaniem Maliny! Wysiłek nie pójdzie więc na marne.
A poniżej przykład, że zabawa Linuxem i Maliną nie jest trudna. Bohaterka tego filmu loguje się przez sieć na Malinie, na której pracuje jej ojciec i wyłącza jego połączenie. Niezbyt konstruktywne podejście, ale jak ktoś nie potrafi budować robotów to może mu się nudzić ;)
Kilka podstawowych instrukcji terminala przedstawia następny film (po polsku). Nie będziemy potrzebowali zbyt wielu poleceń w nim pokazanych, ale można go obejrzeć żeby zobaczyć jak ogólnie działa konsola. Wówczas instrukcje znajdujące się poniżej będą mniej "tajemnicze".
Obraz systemu dostarczony przez producenta
Pobranie obrazu systemu
Na stronie głównej projektu Maliny w sekcji Downloads (czerwona zakładka u góry) znajduje się kilka obrazów systemów do wyboru. Dwa u góry dostarczane są przez producenta płytki. Kilka następnych przez różne grupy użytkowników. Każdy z dostępnych tam systemów będzie działał, ale dla wygody wybierzmy RASPBIANA JESSIE oficjalnie wspieranego przez producenta. Występuje on w dwóch wersjach: normalnej i LITE. Ta druga zawiera ten sam system, ale przeznaczona jest dla osób, którym zależy na jak najmniejszym obrazie systemu. W tej chwili możemy ją zignorować, ale warto pamiętać, że istnieje możliwość zmniejszenia ilości miejsca zajmowanego przez system operacyjny.
Uwaga: Żeby zminimalizować transfer danych ze strony (koszty!) obrazy systemów są spakowane. Dlatego zanim zaczniemy je nagrywać na dysk trzeba je rozpakować. Przykładowo pobrany plik RASPBIANA ma tylko 1.4GB, ale w środku znajduje się obraz, który ma 4GB. Takie spakowane pliki często nazywa się archiwum.
Nagrywanie w systemie Ubuntu
Rozpakowanie archiwum
Po kliknięciu przycisku Download przeglądarka odkryje, że pobieranym plikiem jest archiwum ZIP, i zaproponuje użycie do jego otwarcia Menadżera Archiwów na co się zgadzamy i czekamy aż plik zostanie pobrany. Nie będzie też problemu jeśli po prostu zapiszemy plik na dysk. Podobnie jak przeglądarka internetowa zachowuje się zwykła przeglądarka plików. Kiedy wskażemy pobrane archiwum ZIP ona także zaproponuje otwarcie Menadżera Archiwów. Możemy również sami uruchomić Menadżera Archiwów -- wystarczy kliknąć ikonę uruchamiania programów w lewym górnym rogu i tam zacząć pisać słowo archiwum. Ikona Menadżera Archiwów bardzo szybko pojawi się wśród proponowanych programów. Po otwarciu Menadżera wystarczy wskazać plik archiwum, który chcemy otworzyć i rozpakować.
Po otwarciu pliku w Menadżerze Archiwów w środku widzimy "surowy obraz dysku" czyli właśnie to czego potrzebujemy. Wystarczy go wskazać i wybrać przycisk Rozpakuj po czym wskazać swój katalog domowy, Pulpit, Dokumenty, lub dowolne miejsce, byle tylko zapamiętać gdzie zostanie zapisany rozpakowany plik.
Za chwilę będziemy potrzebowali nazwy pliku z pełną ścieżką dostępu do niego w wersji "terminalowej". Dla ułatwienia podajmy przykłady. Jeśli rozpakowaliśmy obraz systemu o nazwie 2016-05-27-raspbian-jessie.img na pulpit, to na dysku znajdziemy go w katalogu Desktop lub Pulpit (zależnie od wersji językowej systemu jaką instalowaliśmy). Pełna ścieżka będzie więc miała postać:
/home/uzytkownik/Desktop/2016-05-27-raspbian-jessie.img
lub w wersji polskiej
/home/uzytkownik/Pulpit/2016-05-27-raspbian-jessie.img
I taką nazwę pliku należy wpisać w poleceniu dd zaraz po parametrze if= (o poleceniu dd piszemy dalej). Przykładowo
sudo dd bs=4M if=/home/uzytkownik/Pulpit/2016-05-27-raspbian-jessie.img ... (dalsze parametry pominięte)
W miejscie użytkownik należy wstawić nazwę konta, na które logowaliśmy się przy włączaniu Ubuntu.
Wyszukanie karty SD
W następnym punkcie będziemy chcieli wykonać przepisanie obrazu systemu z pobranego pliku na kartę SD. Jednak żeby to wykonać musimy dowiedzieć się jak system Ubuntu widzi kartę i dokąd skierować dane obrazu. Wiemy już, że zwykłe zapisanie pliku obrazu w folderze karty nie zadziała.
Po włożeniu karty SD do komputera system Ubuntu wykrywa jej obecność i po chwili pojawi się ona jako nowy "dysk" w menadżerze plików. Tą operację nazywa się montowaniem systemu plików. Nie będziemy wnikać w szczegóły, ale za chwilę będziemy mówić o odmontowaniu dysku i dlatego wspominamy kiedy nastąpiło montowanie. Przy czym nie należy myśleć, że włożenie karty do czytnika i montowanie to te same operacje. Dla wygody Ubuntu wykonuje je równocześnie, ale tak naprawdę karta może być włożona, a nadal zamontowana lub nie. Montowanie po prostu oznacza, że Ubuntu zrozumiało jaka jest struktura danych i może zacząć zapisywać czy kasować pliki. Zamontowane dyski są widoczne w Menadżerze Plików.
Żeby wykonać kopiownie systemu posłużymy się poleceniem dd w terminalu. Wykonuje ono bardzo niskopoziome przepisanie danych z jednego miejsca w drugie. Skąd wziąć dane już wiemy -- zwiera je plik, który wypakowaliśmy z pobranego archiwum -- pozostaje pytanie gdzie należy zapisać jego zawartość?
Żeby się tego dowiedzieć posłużymy się poleceniem df. Po otwarciu terminala (znów można kliknąć ikonę w prawym górnym rogu i zacząć pisać słowo "terminal") wpisujemy df -h i naciskamy Enter (to, że naciskamy Enter na końcu polecenia w terminalu od teraz uznamy za oczywiste, żeby nie musieć tego ciągle powtarzać). Powinna się pojawić lista obecnie dostępnych dysków oraz informacja o stopniu ich wykorzystania (do tego tak w ogóle służy polecenie df). Wygląda to mniej więcej tak (pogrubienia dodane w celu zwrócenia uwagi na istotne elementy, normalnie ich nie ma):
ktos@maszyna:~$ df -h System plików rozm. użyte dost. %uż. zamont. na udev 5,9G 0 5,9G 0% /dev tmpfs 1,2G 9,5M 1,2G 1% /run /dev/sda2 223G 174G 38G 83% / tmpfs 5,9G 276K 5,9G 1% /dev/shm tmpfs 5,0M 4,0K 5,0M 1% /run/lock tmpfs 5,9G 0 5,9G 0% /sys/fs/cgroup /dev/sda1 200M 12M 188M 6% /boot/efi cgmfs 100K 0 100K 0% /run/cgmanager/fs tmpfs 1,2G 52K 1,2G 1% /run/user/1000 /dev/mmcblk0p2 7,2G 3,3G 3,6G 48% /media/ktos/2f840c69-cecb-4b10-87e4-01b9d28c231c /dev/mmcblk0p1 63M 21M 43M 33% /media/ktos/boot
Na powyższej liście interesują nas nazwy urządzeń wymienione w pierwszej kolumnie zaczynające się od /dev/ Wśród nich znajduje się takie, którego rozmiar będzie pasował do zainstalowanej karty (mniej więcej). Powyżej najbardziej prawdopodobną nazwą urządzenia gdzie Linux "widzi" kartę SD będzie /dev/mmcblk0. A dlaczego nie /dev/mmcblk0p2 lub /dev/mmcblk0p1? Końcówki p1/p2 ignorujemy ponieważ one wskazują tylko, że ten "dysk" jest podzielony na więcej części. Podobny schemat nazywania części dysku widać powyżej w przypadku urządzenia /dev/sda, które również ma partycje /dev/sda1 i /dev/sda2, ale nazwą całego urządzenia jest tylko /dev/sda, wzięte bez numerów. Ale na wszelki wypadek warto przy okazji dodać, że /dev/sda to najczęściej główny dysk komputera i z pewnością nie tam należy kopiować obraz Raspbiana. Łatwo zauważyć, że /dev/sda2 ma rozmiar 223GB i na pewno nie jest poszukiwaną kartą SD.
Żeby zobaczyć jak to działa wpiszmy w terminalu polecenie wyświetlające wszystkie urządzenia, których nazwa zaczyna się od /dev/mm. Użyjemy do tego polecenia ls
ktos@maszyna:~$ ls /dev/mm* /dev/mmcblk0 /dev/mmcblk0p1 /dev/mmcblk0p2
(Jeśli na Twoim komputerze podejrzewasz, że może chodzić o urządzenie /dev/sde, użyj polecenia ls /dev/sde*, i tak dalej; dopsuj je według potrzeb.)
Zauważ, że najpierw wyświetlana jest nazwa głównego urządzenia (tutaj /dev/mmcblk0), a potem nazwy jego partycji z końcówkami ...p1 i ...p2. Dla całkowitej pewności wyciągnijmy kartę z czytnika i powtórzmy powyższe polecenie. Jeśli otrzymamy komunikat, że urządzenie nie jest już widoczne, oznacza to, że znaleźliśmy to co trzeba. Oczywiście na różnych komputerach nazwa może być inna, ale metoda pozostaje ta sama: wkładamy kartę, poleceniem df -h wyświetlamy dyski, znajdujemy głównego podejrzanego, i dla sprawdzenia po wyjęciu karty wyświetlamy dyski ponownie (poleceniem df -h lub ls z podejrzewanym początkiem nazwy) żeby się upewnić czy znaleźliśmy właściwą nazwę.
Dlaczego znalezienie prawidłowej nazwy jest tak ważne? W następnym punkcie użyjemy polecenia dd, które obchodzi się z danymi w sposób bezceremonialny. Jeśli podamy mu prawidłowe parametry, wykona to czego chcieliśmy bez zarzutu. Jeśli jednak wyślemy obraz RASPBIANA na jakieś źle trafione urządzenie możemy sobie skasować wiele ważnych rzeczy i komputer będzie wymagał instalowania systemu od nowa. Lepiej więc być pewnym, że wysyłamy dane na kartę SD.
Wgranie obrazu na kartę
Na sam koniec zostały nam już dwa proste polecenia. Po włożeniu karty do czytnika po pierwsze musimy się upewnić, że partycje znajdujące się na niej nie są zamontowane. Łatwo to sprawdzić w Menadźerze Plików. Zamontowane partycje mają obok nazwy kwadratowe ikony ze strzałką w górę pozwalające na odmontowanie. Jeśli widzimy taką partycję znajdującą się na włożonej karcie wybieramy przycisk odmontowywania partycji. System wyświetla przy okazji komunikat, że w tym momencie można bezpiecznie wyciągnąć kartę z czytnika, ale nie robimy tego, ponieważ mamy właśnie zamiar zapisać na niej obraz RASPBIANA. Wykonując polecenie df możemy się upewnić, że po odmontowaniu system nie widzi partycji na karcie. Przykładowo:
przed odmontowaniem
ktos@maszyna:~$ df -h System plików rozm. użyte dost. %uż. zamont. na udev 5,9G 0 5,9G 0% /dev tmpfs 1,2G 9,5M 1,2G 1% /run /dev/sda2 223G 174G 38G 83% / tmpfs 5,9G 276K 5,9G 1% /dev/shm tmpfs 5,0M 4,0K 5,0M 1% /run/lock tmpfs 5,9G 0 5,9G 0% /sys/fs/cgroup /dev/sda1 200M 12M 188M 6% /boot/efi cgmfs 100K 0 100K 0% /run/cgmanager/fs tmpfs 1,2G 52K 1,2G 1% /run/user/1000 /dev/mmcblk0p2 7,2G 3,3G 3,6G 48% /media/ktos/2f840c69-cecb-4b10-87e4-01b9d28c231c /dev/mmcblk0p1 63M 21M 43M 33% /media/ktos/boot
po odmontowaniu (brak ostatnich dwóch linijek)
ktos@maszyna:~$ df -h System plików rozm. użyte dost. %uż. zamont. na udev 5,9G 0 5,9G 0% /dev tmpfs 1,2G 9,5M 1,2G 1% /run /dev/sda2 223G 174G 38G 83% / tmpfs 5,9G 276K 5,9G 1% /dev/shm tmpfs 5,0M 4,0K 5,0M 1% /run/lock tmpfs 5,9G 0 5,9G 0% /sys/fs/cgroup /dev/sda1 200M 12M 188M 6% /boot/efi cgmfs 100K 0 100K 0% /run/cgmanager/fs tmpfs 1,2G 52K 1,2G 1% /run/user/1000
Teraz pozostaje nam tylko wykonać przeniesienie obrazu na kartę. Polecenie dd będzie potrzebowało minut, żeby zapisać obraz. Niestety w tym czasie nie będzie niczego dodatkowego wyświetlać, a więc należy się uzbroić w cierpliwość. W końcu kopiujemy 4GB danych i to musi chwilę potrwać. Polecenie ma następującą składnię:
ktos@maszyna:~$ sudo dd bs=4M if=nazwa_pliku_z_obrazem_raspbian of=nazwa_urzadzenia_karty_sd
Ponieważ będziemy zapisywać dane bezpośrednio do urządzenia, a tak bezpośredni dostęp wymaga uprawnień uprzywilejowanego użytkownika przed poleceniem dd znajduje się jeszcze polecenie sudo, które zanim pozwoli dd zadziałać poprosi nas najpierw o hasło. Bez sudo polecenie dd nie ma dostępu do urządzenia karty SD o czym informuje komunikatem "dd: nie udało się otworzyć '/dev/mmcblk0': Brak dostępu" Warto zapamiętać, że sudo otwiera drzwi do uprzywilejowanych działań i przypomnieć sobie o nim kiedy otrzymujemy komunikat o braku dostępu. Sudo to skrót od angielskiego superuser do, czyli "zrób to jako uprzywilejowany użytkownik".
Uwaga: Kiedy wpisujemy hasło w konsoli nie pojawia się żaden znak. Nie należy się tym przejmować tylko pisać i skończyć ENTEREM. Takie zachowanie podyktowane jest względami bezpieczeństwa. Dzięki temu nikt kto obserwuje ekran nie będzie wiedział nawet z ilu liter składa się hasło.
Paramter bs (ang. buffer size) definiuje jakimi porcjami obraz będzie kopiowany. Ze względu na specyfikę obrazu nagrywanego na kartę SD należy kopiować porcjami nie większymi niż 4MB. Parametr if (ang. input file) określa skąd dane mają być odczytywane, ostatni parametr of (ang. output file) określa gdzie dane mają być zapisywane. W przypadku obrazu RASPBIANA i przykładowego urządzenia karty SD znalezionego w poprzednim punkcie ostatecznie wyglądałoby ono następująco
ktos@maszyna:~/rpi-zero$ sudo dd bs=4M if=2016-05-27-raspbian-jessie.img of=/dev/mmcblk0 [sudo] hasło użytkownika ktos: (hasło i ENTER) (kilka minut oczekiwania) 1004+1 przeczytanych recordów 1004+1 zapisanych recordów 4019191808 bytes (4,0 GB, 3,7 GiB) copied, 391,843 s, 10,3 MB/s ktos@maszyna:~/rpi-zero$
Po zakończeniu nagrywania, kiedy pojawi się podsumowanie i prompt systemowy, można dodatkowo wpisać polecenie sync. Dzięki niemu mamy pewność, że jakieś dane ciągle jeszcze nie czekają na zapis pomimo tego, że terminal przyjmuje już kolejne polecenia. Po wykonaniu sync (co zwykle dzieje się błyskawicznie) można wyjąć kartę z czytnika.
Sprawdzenie karty i uruchomienie Maliny
Jeśli karta jest prawidłowo przygotowana po włożeniu do czytnika ponownie system powinien wyświetlić dwie partycje dysku systemowego RASPBIANA (w tym jedną mniejszą o nazwie "boot").
Innym testem może być użycie programu "dyski", czyli klikamy ikonę w lewym górnym rogu ekranu i tam wpisujemy "dyski" -- interesuje nas program z ikoną dysku twardego i kluczem do przykręcania śrub. W tym programie karta SD z nagranym obrazem wygląda jak na obrazku po prawej.
Jak widać na poniższym filmie po włożeniu prawidłowo przygotowanej karty SD do płytki i podłączeniu zasilania natychmiast zaczyna mrugać dioda. W miarę jak kolejne elementy systemu są wczytywane do pamięci dioda zmienia jasność, a kiedy proces wczytywania zakończy się świeci bez przerwy. Jeżeli płytka nie rozpoznaje systemu na karcie, lub nie włożymy karty w ogóle, po włączeniu zasilania dioda nie włącza się -- warto o tym pamiętać zanim zaczniemy podejrzewać, że płytka jest zepsuta.
W systemie Windows
Kto wie niech napisze.
Zmodyfikowany system z obsługą lokalnego połączenia sieciowego przez zasilający kable USB
Malina może zostać skonfigurowana w ten sposób, że zasilający kabel USB będzie jednocześnie działał jako lokalne połączenie sieciowe. Dzięki takiej konfiguracji nie musimy posiadać dodatkowej klawiatury i monitora ponieważ będziemy mogli połączyć się z nią zdalnie z komputera, do którego jest podłączona.
Obraz systemu
Konfigurację można przeprowadzić samodzielnie na zainstalowanym obrazie producenta, ale dla wygody wstępnie ustawiony system dostępny jest na tej stronie w pliku raspbian_z_usb.tar.gz. W odróżnieniu od oryginalnego obrazu systemu, który ma 4GB po rozpakowaniu, ten został przygotowany na 8GB kartę, której używamy.
Nagrywanie
Po jego ściągnięciu i rozpakowaniu do nagrywania najprościej użyć programu dyski (w terminalu polecenie gnome-disks), który już znamy. Po włożeniu karty do czytnika należy:
- Wybrać myszką kartę na liście dysków po lewej. Uwaga to ważny krok ponieważ w następnym zaczniemy nagrywać obraz właśnie na wybrany dysk i nie chcemy pozostawić tego przypadkowi.
- W menu po prawej u góry (przycisk z ikoną z trzema poziomymi kreskami) należy wybrać opcję "Przywróć obraz dysku...".
- W wyświetlony okienku wskazać rozpakowany plik obrazu do nagrania, upewnić się że celem będzie urządzenie reprezentujące kartę SD (powinno być jeśli wykonaliśmy prawidłowo pierwszy krok) i rozpocząć nagrywanie. Program poprosi o potwierdzenie i dodatkowo o hasło administratora.
Nagrywanie potrwa ok. 10 min (transferujemy w końcu 8GB danych a starsze karty SD nie są najszybsze).
Sprawdzenie
Nagrany system działa tak samo jak ten standardowy więc sprawdzenie można wykonać podobnie jak powyżej.
Uwaga: Połączenie działa tylko z gniazda podpisanego USB. Włączenie kabla do gniazda podpisanego PWR IN spowoduje normalne uruchmienie Maliny, ale system na komputerze zasilającym nie będzie jej widział.
Dla pewności, że Malina jest normalnie wykrywana (a nie tylko pobiera prąd) na komputerze zasilającym możemy wydać polecenie lsusb' w terminalu (skrót angielskiego list USB). Wyświetlona zostanie lista wszystkich urządzeń USB, które system rozpoznał jako podłączone. Wśród nich powinniśmy znaleźć Malinę (pogrubina nazwa poniżej).
ktos@maszyna:~$ lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 090c:1000 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) Flash Drive
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 006: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 003 Device 004: ID 0bda:5728 Realtek Semiconductor Corp.
Bus 003 Device 008: ID 0525:a4a2 Netchip Technology, Inc. Linux-USB Ethernet/RNDIS Gadget
Bus 003 Device 007: ID 1c4f:0026 SiGma Micro Keyboard
Bus 003 Device 005: ID 046d:c52f Logitech, Inc. Unifying Receiver
Bus 003 Device 003: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
.
Połączenie z Maliną z konsoli
Konfiguracja po stronie komputera zasilającego Malinę
Nową możliwością jest opcja połączenia się z działającą Maliną z konsoli. Niestety sposób działania programów symulujących połączenie sieciowe na kablu USB powoduje, że domyślne ustawienia sieciowe Ubuntu nie potrafią ustawić go prawidłowo automatycznie. Na szczęście ręczna konfiguracja jest prosta.
W tym celu musimy wykonać następujące kroki:
- Podłączyć Malinę i chwilę poczekać na wczytanie systemu. Po pewnym czasie ikona Menadżera połączeń sieciowych powinna się uaktywnić (zwykle pierwsza od lewej ikona w menu systemu po prawej u góry ekranu) co dowodzi, że menadżer odkrył nowe urządzenie sieciowe i próbuje je skonfigurować.
- Wybrać z menu Menadżera połączeń sieciowych pozycję Modyfikuj połączenia... (możemy zignorować fakt, że menadżer "ciężko pracuje" nad nowym połączeniem -- i tak nic nie wskóra, trzeba mu pomóc)
- Na liście połączeń wyszukać nowe, związane z podłączoną Maliną. Menadżer nie wykazuje się wielkim polotem i zwykle nazywa kolejne po prostu "Połączenie sieciowe #", gdzie # to pierwszy nie zajęty numer. O które może chodzić łatwo się domyślić patrząc na kolumnę Ostatnio używane -- dla nowych połączeń będzie miała opis "teraz".
- Po jego wskazaniu na liście wybieramy przycisk Modyfikuj i tutaj w zakładce IPv4 wybieramy Metodę konfiguracji ręcznie i poniżej dodajemy adres sieciowy jak na obrazku po lewej. Należy użyć przycisku Dodaj aby dodać nową linię na liście Adresy.
Po zapisaniu zmian i odczekaniu chwilę (min. 30s) Menadżer powinien skutecznie połączyć komputer z Maliną. Jeśli nie, można w jego menu wybrać nazwę połączenia Maliny żeby zachęcić go do spróbowania ponownie.
Jeżeli połączenie działa Malina będzie teraz dostępna w terminalu pod nazwą raspberrypi.local. Podstawową łączność możemy potwierdzić poleceniem ping, które wykonuje test echa, czyli wysyła prosty pakiet do drugiego urządzenia i sprawdza czy ono odpowiada. Wygląda to następująco (jego działanie przerywamy Ctrl-C kiedy już zobaczymy kilka udanych testów):
ktos@maszyna:~$ ping raspberrypi.local PING raspberrypi.local (169.254.1.44) 56(84) bytes of data. 64 bytes from raspberrypi.local (169.254.1.44): icmp_seq=1 ttl=64 time=0.433 ms 64 bytes from raspberrypi.local (169.254.1.44): icmp_seq=2 ttl=64 time=0.319 ms 64 bytes from raspberrypi.local (169.254.1.44): icmp_seq=3 ttl=64 time=0.324 ms 64 bytes from raspberrypi.local (169.254.1.44): icmp_seq=4 ttl=64 time=0.316 ms ^C --- raspberrypi.local ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 2999ms rtt min/avg/max/mdev = 0.316/0.348/0.433/0.049 ms
Jak widać w przedostatniej linijce połączenie działa w 100% (0% utraty pakietów), a w ostatniej kolumnie dla poszczególnych testów widzimy, że działa bardzo szybko jak na połączenie internetowe, bo na odpowiedź trzeba czekać zaledwie ułamek milisekundy. (Na tym samym komputerze test połączenia do serwera Google ping google.com
pokazuje, że pakiety wędrują kilkunaście millisekund).
Problem z ponownym podłączeniem
Przy konfiguracji jak powyżej procedurę ręcznego modyfikowania połączenia trzeba będzie powtórzyć za każdym razem, kiedy włączamy Malinę.
Dzieje się tak dlatego, że Manadżer połączeń sieciowych generuje nowe połączenie z domyślną konfiguracją poprzednie ignorując. Da się ten problem rozwiązać o ile będziemy wpinać Malinę w to samo gniazdo USB.
W tym celu w czasie konfiguracji w zakładce Ethernet w polu Urządzenie należy wpisać nazwę urządzenia bez dodatkowego numeru MAC w nawiasie (numer z 6 grupami cyfr oddzielonymi dwukropkami). Jeśli więc urządzenie zostało domyślnie opisane jako enp0s20u6 (2E:EF:66:AC:41:E8)
kasujemy numer MAC i nawias pozostawiając tylko enp0s20u6
.
Dlaczego tak się dzieje? Ze względu na sposób działania połączenia po USB numer MAC, który właśnie usunęliśmy z nazwy urządzenia, przyjmuje losową wartość, inną za każdym podłączeniem Maliny. Widząc inny MAC Menadżer uznaje Malinę za inne urządzenie i tworzy nowe połączenia. Na szczęście pierwsza część nazwy zależy tylko od gniazda USB do którego włożyliśmy Malinę i zmodyfikowana konfiguracja przetrwa do następnego włączenia o ile użyjemy tego samego wyjścia. Nic nie stoi na przeszkodzie żeby skonfigurować osobne połączenie dla każdego z używanych wyjść USB i mieć ten problem z głowy niezależnie od tego gdzie wpinamy Malinę.
Połączenie z terminalem na Malinie
Mając pewność, że połączenie działa możemy z niego skorzystać łącząc się zdalnie z jej terminalem. W tym celu wykonujemy polecenie ssh i podając nazwę Maliny i użytkownika jako parametr. Domyślnie raspbian jest skonfigurowany z użytkownikiem pi
i hasłem raspberry
, które należy wpisać w odpowiedzi na zapytanie.
ktos@maszyna:~ $ ssh pi@raspberrypi.local pi@raspberrypi.local's password: The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Sun May 29 23:17:11 2016 pi@raspberrypi:~ $
Zwróćmy uwagę, że po zalogowaniu na zdalnym terminalu prompt systemowy uległ zmianie i pokazuje pi@raspberrypi -- od teraz pracujemy na Malinie!
Wszystkie polecenia wydane w tym połączeniu będzie wykonywane tak jakby terminal został uruchomiony "zwyczajnie" na jej pulpicie. Kiedy będziemy chcieli przerwać połączenie i wrócić do naszego lokalnego terminala wystarczy wpisać standardowe polecenie exit, które terminal rozumie jako chęć zakończenia pracy. (np. polecenie exit wpisane w lokalnej konsoli po prostu zamknie okno).
Uwaga: Ze względu na prostotę konfiguracji Malina w tej chwili nie ma dostępu do internetu. Z tego powodu polecenia wymagające połączenia z zewnętrznymi serwerami nie będą działały. Na przykład nie uda się zainstalowanie nowych programów najprostszą metodą sudo apt-get install ...
Na początku nie powinno nam to przeszkadzać. W przyszłości można ten problem rozwiązać odpowiednio konfigurując komputer zasilający (to on musi udostępnić Malinie wyjście na świat).