Kurs Raspberry Pi – #6 – instalacja/komunikacja przez sieć

Kurs Raspberry Pi – #6 – instalacja/komunikacja przez sieć

Za nami już dwa warianty instalacji systemu na Raspberry. Zaczęliśmy od metody, która wymaga monitora. Następnie zainstalowaliśmy Raspbiana korzystając z przejściówki USB<>UART.

Pora na łączność przez sieć (LAN/WLAN). To zdecydowanie najpopularniejsza metoda, która umożliwia m.in. zdalny dostęp do Raspberry Pi.

Na początek musimy przygotować kartę SD z obrazem systemu. Procedura przygotowania była już omówiona w poprzednich częściach kursu. Przed przejściem dalej upewnij się, że masz przygotowaną kartę ze "świeżo" wgranym systemem. Wybieramy wersję pełną (przyda się w dalszych częściach kursu) - oczywiście wersja może być nowsza niż na poniższym zrzucie.

Dwie wersje systemu do pobrania.

Aktywacja SSH - zgoda na zdalny dostęp do RPi

Do komunikacji przez sieć wykorzystamy SSH (ang. Secure SHell), jest to standard protokołów, które pozwalają nawiązać zdalne połączenie z innym komputerem. Na tym etapie nie trzeba zagłębiać się w ten temat, zainteresowanych odsyłamy np. do Wikipedii.

Domyślnie zdalna praca jest na Raspberry Pi wyłączona dla bezpieczeństwa. Początkowa nazwa użytkownika (pi) oraz hasło (raspberry) są ogólnie znane, więc taka konfiguracja byłaby narażona na ataki hakerów. Teraz włączymy zdalny dostęp, połączymy się z malinką i szybko ustawimy nowe hasło. Dzięki temu nasza płytka będzie już bezpieczna.

Zestaw elementów do kursu

Gwarancja pomocy na forum Błyskawiczna wysyłka

Elementy niezbędne do wykonania wszystkich ćwiczeń z kursu podstaw Rasberry Pi dostępne są w formie gotowych zestawów!

Kup w Botland.com.pl

Karta SD z nagranym systemem Raspbian podzielona jest na dwie części (partycje). Pierwsza jest zgodna z Windowsem i zawiera pliki uruchamiające system (boot). Druga, wymaga obsługi sytemu plików ext4, przechowuje pliki widoczne przez Raspberry Pi podczas normalnej pracy. Po wyjęciu i ponownym włożeniu karty do czytnika powinniśmy zobaczyć pierwszą partycję.

Widok ten jest nam już znany z poprzedniego artykułu:

Zawartość partycji boot.

Aby aktywować dostęp przez UART konieczne było dopisanie linijki do pliku z ustawieniami. Tym razem musimy jednak postąpić inaczej. W celu zezwolenia na zdalny dostęp do Raspberry Pi konieczne jest utworzenie pustego pliku o nazwie ssh.

W tym miejscu, aby uniknąć dalszych problemów upewniamy się, że nasz system pokazuje rozszerzenia wszystkich plików. Wchodzimy w opcje (w dowolnym folderze) Widok > Opcje:

Ustawienia widoku folderów.

Następnie odhaczamy (wyłączamy) opcję "Ukryj rozszerzenia znanych plików" i zatwierdzamy zmianę ustawień. Powinno to wyglądać zgodnie z poniższym zrzutem ekranu:

Zmiana ustawień widoku folderów.

Teraz możemy utworzyć pusty plik ssh. Na karcie SD (boot) klikamy prawym przyciskiem myszy, a następnie wybieramy opcję Nowy > Dokument tekstowy. Plik nazywamy ssh (musimy usunąć rozszerzenie txt, które zostało dodane automatycznie).

Po drodze wyświetlone zostanie jeszcze ostrzeżenie (zgodnie z poniższą animacją):

Zmiana nazwy i rozszerzenia pliku.

Bez wcześniejszej zmiany ustawień widoku folderów, z tego poziomu, nie moglibyśmy usnąć rozszerzenia pliku txt, ponieważ system zawsze dodawałby je automatycznie.


Tak przygotowaną kartę umieszczamy w gnieździe malinki, ale jeszcze nie uruchamiamy RPi! Przed włączeniem malinki warto mieć świadomość, że zdalne połączenie przez sieć możemy zrealizować na 3 sposoby:

  1. połączenie z użyciem przewodowej sieci lokalnej,
  2. połączenie z użyciem bezprzewodowej sieci lokalnej,
  3. połączenie bezpośrednie PC<>RPi przez przewód ethernet.

Wariant 1: przewodowa sieć lokalna

Łączymy RPi przewodem sieciowym z naszym routerem. Komputer, na którym pracujemy może być połączony przewodowo lub bezprzewodowo. Najważniejsze, aby oba urządzenia znalazły się w tej samej sieci lokalnej.

Wariant 1: podłączenie przewodowe do sieci lokalnej.

Następnie podłączamy zasilacz i uruchamiamy Raspberry Pi. Większość routerów automatycznie nadaje adresy IP za pomocą DHCP. Po starcie nasza malinka powinna być już więc częścią sieci lokalnej. Pozostaje sprawdzić jaki adres został jej przypisany.

Odnalezienie adresu IP Raspberry Pi z poziomu routera

Większość popularnych routerów pozwala na zalogowanie się przez przeglądarkę i odczytanie listy podłączonych urządzeń. W celu zalogowania się do routera należy w przeglądarce wywołać adres urządzenia. Najczęściej jest to "192.168.1.1" lub "192.168.0.1".

Adres routera można sprawdzić wywołując w linii poleceń naszego PC: cmd /k ipconfig. Numer IP wskazany przez linijkę "Default Gateway", to właśnie adres routera (nie naszego RPi):

Nazwę użytkownika i hasło dostępu do routera należy znaleźć na naklejce umieszczonej na urządzeniu lub w instrukcji. Najczęściej są to dane typu admin/admin, admin/pass itd. Gdy uda nam się zalogować do routera, to szukamy podstrony, na której widać podłączone urządzenia. Poniżej widoczny jest zrzut ekranu z routera NETGEAR. Raspberry dostało IP: 192.168.1.34.

Raspberry Pi odszukany z poziomu routera.

Odnalezienie adresu IP Raspberry Pi bez pomocy routera

Jeżeli nie mamy dostępu do routera, pozostaje wyszukać adres malinki używając komputera podłączonego do tej samej sieci. Pierwsza opcja to uruchomienie wiersza poleceń i wydanie komendy arp -a. Zobaczymy listę znanych urządzeń, wśród nich powinna być malinka:

Adres IP odnaleziony z poziomu konsoli.

Jeśli mamy więcej urządzeń podłączonych do sieci lokalnej odnalezienie malinki tą metodą może wydawać się skomplikowane. Na szczęście adresy MAC wszystkich Raspberry Pi rozpoczynają się od ciągu b8-27-eb.

Na powyższym zrzucie ekranu widać adres IP: 192.168.1.28 - jest on inny niż w poprzedniej metodzie tylko dlatego, że podczas pisania artykułu skorzystaliśmy z drugiego routera, który tym razem przydzielił malince taki adres.

Odnalezienie adresu IP Raspberry Pi ze skanerem adresów

Jeśli jednak nie lubimy wiersza poleceń, możemy pobrać program do skanowania adresów np. Advanced IP Scanner. Za jego pomocą łatwo znajdziemy adresy urządzeń w sieci lokalnej.

Adres IP odnaleziony przez polecony program widoczny jest na poniższym zrzucie ekranu:

Odszukiwanie adresu z użyciem skanera.

Połączenie z Raspberry Pi

Niezależnie od zastosowanej metody udało nam się ustalić adres IP malinki. W dalszych krokach posłużymy się naszym adresem, czyli 192.168.1.28.

Do połączenia z Raspberry Pi konieczny będzie klient SSH. Tutaj świetnie sprawdzi się PuTTY, czyli program, z którego korzystaliśmy już w poprzedniej części kursu. Po jego uruchomieniu wybieramy typ połączenia na SSH, następnie wpisujemy adres naszej malinki. Port pozostaje taki, jaki podany jest domyślnie, czyli 22. Na koniec klikamy przycisk Open.

Ustawienia połączenia.

Przy pierwszym połączeniu zobaczymy ostrzeżenie dotyczące nieznanego urządzenia. Musimy wyrazić zgodę na połączenie. Informacja ta może wyglądać tak, jak poniżej:

Łączenie z nowym urządzeniem.

Po chwili wyświetli się ekran logowania. Widzieliśmy go już wcześniej podczas łączenia przez konwerter USB<>UART.

Ekran logowania do RPi.

Oczywiście dane do logowanie są takie same jak poprzednio, czyli:

  • login: pi
  • hasło: raspberry

Po wprowadzeniu poprawnego hasła zobaczymy linię poleceń, czyli tzw. shell naszej malinki. Jak widać od razu otrzymujemy ostrzeżenie, że dostęp przez SSH jest włączony, a my korzystamy z domyślnego hasła:

Ostrzeżenie o korzystaniu z domyślnego hasła.

Hasło możemy zmienić za pomocą podpowiadanej komendy passwd lub tak, jak było to opisane w poprzedniej części kursu. Poniżej widoczny jest proces zmiany z użyciem nowej komendy:

Zmiana hasła przez passwd.

Od tego momentu możemy rozpocząć pracę z Raspberry Pi korzystając z połączenia przez sieć!

Wariant 2: połączenie przez sieć bezprzewodową

Używanie sieci bezprzewodowej (WiFi) jest coraz popularniejsze. W przypadku Raspberry Pi ma ona zarówno wady, jak i zalety. Niewątpliwą zaletą jest brak konieczności podłączania kabla sieciowego. Natomiast wadą są większe opóźnienia niż w przypadku połączenia przewodowego. 

Wariant 2: połączenie do sieci bezprzewodowej

Jeśli nie mamy możliwości użycia kabla Ethernet lub po prostu chcemy spróbować konfiguracji przez WiFi, to powinniśmy postępować następująco: najpierw musimy nagrać na kartę SD obraz systemu oraz uruchomić dostęp zdalny tworząc plik ssh.

W tym samym miejscu gdzie utworzyliśmy plik ssh musimy dodać jeszcze jeden nowy plik. Tym razem nazywamy go wpa_supplicant.conf. Podobnie jak poprzednio, jest to plik tekstowy, teraz jednak nie interesuje nas pusty plik.

Nowe pliki na karcie.

Za pomocą edytora tekstu otwieramy plik wpa_supplicant.conf i wprowadzamy dane dostępu do naszej sieci bezprzewodowej. Dane do WiFi należy podać w następujący sposób:

SSID to identyfikator/nazwa sieci WiFi, PSK to hasło dostępu. Jako sposób uwierzytelniania wpisaliśmy WPA-PSK, co jest dosyć typowym ustawieniem, ale można użyć innych. Każdy musi podać sposób zabezpieczenia zgodny z siecią, do której chce podłączyć Raspberry Pi. Jeśli sieć nie byłaby w żaden sposób zabezpieczona (oczywiście nikt tak nie robi...), to w pole to należałoby wpisać "NONE".

Przykładowa konfiguracja widoczna jest poniżej:

Dane do sieci WiFi.

Po zapisaniu pliku wpa_supplicant.conf, pozostaje włożyć kartę microSD do czytnika malinki i uruchomić system. Po chwili nasze Raspberry Pi powinno połączyć się z WiFi. Od teraz należy postępować identycznie jak podczas połączenia przewodowego. Trzeba ustalić adres IP (metody są identyczne jak poprzednio) i połączyć się z RPi przez PuTTY.

Tym razem skorzystaliśmy z routera HUAWEI, gdzie nasze Raspberry Pi otrzymało numer IP 192.168.1.25, zgodnie z poniższym zrzutem ekranu:

Widok RPi podłączonego przez WiFi.

Z komputerem łączymy się dokładnie, tak jak w poprzednim punkcie. Czyli otwieramy PuTTY, wybieramy protokół SSH i podajemy IP (w naszym przypadku 192.168.1.25):

Logowanie do RPi podłączonego przez WiFi.

Reszta przebiega analogicznie do punktu poprzedniego.

Wariant 3: połączenie bezpośrednie

Czasami możemy nie mieć dostępu do routera, a mimo to chcielibyśmy podłączyć malinkę do naszego komputera poprzez sieć przewodową. Możemy wykorzystać do tego przewód ethernet bezpośrednio podłączony do naszego laptopa lub komputera.

Zaczynamy oczywiście od utworzenia pliku SSH (patrz wcześniejsze metody). Następnie łączymy bezpośrednio Raspberry Pi z naszym komputerem kablem ethernetowym. Takie połączenie nie zadziała od razu ponieważ malinka nie wie jakie są ustawienia sieci. Możemy jednak wykorzystać mechanizm udostępniania łącza, który jest zawarty w systemie Windows.

W opisywanym przypadku zadanie zostało wykonane na laptopie, który dostęp do Internetu miał zapewniony przez WiFi. Załóżmy, że nie możemy podłączyć malinki do sieci bezprzewodowej, ani routera. Pozostaje właśnie udostępnianie sieci z PC.

W ustawieniach Windows odnajdujemy konfigurację sieci ("Centrum sieci i udostępniania"):

Przykładowa konfiguracja sieci.

Będziemy udostępniać sieć, za pomocą której łączymy się z internetem. W naszym przypadku będzie to sieć bezprzewodowa FORBOT-5G. Klikamy w nazwę sieci, pojawi się takie okno:

Szczegóły połączenia.

Klikamy przycisk Właściwości, w nowym oknie wybieramy Udostępnianie i zaznaczamy opcję "Zezwalaj innym użytkownikom sieci na łączenie się poprzez połączenie internetowe tego komputera". Jeśli na komputer będzie wyposażony w więcej interfejsów Ethernet, to pojawi się pole wyboru (niżej zaznaczone na żółto), z którego należy wybrać odpowiedni interfejs. Jeśli tej opcji nie ma, to się tym nie przejmujemy i tylko zaznaczmy wspomnianą wcześniej opcję.

Udostępnienie połączenia.

Zatwierdzamy zmiany przyciskiem OK. Teraz malinka uzyska ustawienia sieci z naszego komputera, będzie mogła również łączyć się z internetem. Nam pozostanie jak poprzednio ustalić adres IP, pod którym malinka jest dostępna w sieci LAN.

Tym razem nasza malinka otrzymała adres IP 192.168.137.219, co widoczne jest poniżej:

Znaleziony adres Raspberry Pi.

Z komputerkiem łączymy się przez PuTTY, tak samo jak w poprzednich metodach:

Dostęp do RPi przez SSH.

Podsumowanie

Za nami najważniejsza z podstaw dotyczących Raspberry Pi - instalacja systemu i komunikacja z malinką. Może się wydawać, że te trzy artykuły dotyczyły tego samego. Efekt naszych działań był faktycznie identyczny (mogliśmy się połączyć z RPi). W praktyce skorzystaliśmy jednak z różnych metod komunikacji.

To jest kurs, uczymy się w warunkach "idealnych". W zestawach jest konwerter USB<>UART, więc moglibyśmy skupić się tylko na tej opcji. Działałoby to u każdego. Nie zawsze ma się jednak taki konwerter, monitor z HDMI lub router. Warto poznać wszystkie opisane metody, aby w przyszłości radzić sobie "z tym co jest". Od teraz uznajemy temat instalacji Raspbiana za zamknięty i możemy zacząć korzystać z Raspberry Pi!

Nawigacja kursu

Autor: Piotr Bugalski
Ilustracje: Piotr Adamczyk
Redakcja: Damian Szymański

ethernet, kurs, kursRaspberryPi, raspberrypi, WiFi