Strona główna Raspberry Pi

Tutaj jesteś

Raspberry Pi – co to i jak działa?

Data publikacji: 2026-03-10
Raspberry Pi – co to i jak działa?

Słyszałeś o Raspberry Pi, ale nadal brzmi to trochę jak magia? W tym tekście w prosty sposób przechodzimy od definicji do realnego działania tej małej płytki. Zobacz, jak ten niewielki komputer może zastąpić wielką maszynę na biurku.

Co to jest Raspberry Pi?

Raspberry Pi to mały komputer jednopłytkowy, który mieści się w dłoni, a mimo to potrafi uruchomić pełny system operacyjny, serwer www, bota Discord czy domowy serwer plików. Stworzyła go fundacja Raspberry Pi Foundation z Cambridge, a pierwsze modele trafiły na rynek w 2012 roku jako tanie narzędzie do nauki programowania. Dziś płytki z serii Raspberry Pi 4 czy Raspberry Pi Zero W trafiają nie tylko do szkół, ale też do firm, hobbystów i twórców automatyki domowej.

Na jednej płytce znajdziesz procesor ARM, pamięć RAM, złącza USB, HDMI, złącze sieciowe oraz szpilki GPIO. Dzięki temu Raspberry Pi działa jak klasyczny komputer, ale jednocześnie pozwala sterować fizycznymi urządzeniami. Taka konstrukcja sprawia, że ta platforma dobrze sprawdza się w projektach IoT, serwerach w wersji mini i robotyce amatorskiej.

Raspberry Pi to w pełni funkcjonalny komputer ARM, który zamiast dysku twardego korzysta z karty microSD jako nośnika systemu i danych.

Jakie są najpopularniejsze modele?

Przed zakupem wiele osób zastanawia się, który model wybrać, bo oferta urosła z kilku do kilkunastu wersji. Klasyczna linia to Raspberry Pi 3 i Raspberry Pi 4 w wersjach z różną ilością RAM. Seria Zero, czyli Raspberry Pi Zero i Zero 2 W, to z kolei bardzo małe, energooszczędne płytki, chętnie montowane w przenośnych projektach. Wspólną cechą jest kompatybilność z tym samym systemem Raspberry Pi OS i typowymi narzędziami jak Python, Node.js, czy serwery baz danych.

Wybór konkretnej płytki zależy od tego, czego potrzebujesz. Do prostego bota na Discordzie wystarczy często Raspberry Pi Zero 2 W, które ma procesor ARM64 i Wi‑Fi. Do aplikacji webowej z bazą danych i kilkoma usługami lepiej nada się Raspberry Pi 4 z 4 lub 8 GB RAM. Ważne jest też chłodzenie, bo przy dłuższym obciążeniu procesor może się nagrzewać i obniżać taktowanie.

Jakie systemy można zainstalować?

Na Raspberry Pi najczęściej instaluje się Raspberry Pi OS, czyli dystrybucję Linuxa przygotowaną specjalnie dla tej platformy. Bazuje na Debianie, dlatego nazwy pakietów jak build-essential, libc6-dev czy python3 wyglądają tak samo jak na klasycznych serwerach z Debianem lub Ubuntu. Wielu użytkowników wybiera też Ubuntu Server dla ARM, bo daje znajome środowisko i dostęp do tego samego ekosystemu pakietów.

Poza typowymi dystrybucjami Linux można znaleźć obrazy wyspecjalizowane w jednej funkcji. Są systemy do media center, gotowe serwery NAS czy obrazy nastawione na projekty IoT. W każdym przypadku zasada działania jest ta sama: pobierasz obraz, nagrywasz go na kartę microSD i z niej uruchamiasz komputer.

Jak działa Raspberry Pi od strony sprzętowej?

W środku Raspberry Pi pracuje procesor ARM, czyli architektura znana z telefonów i tabletów. Dlatego w logach systemowych często zobaczysz informacje w stylu Linux 5.15.0-1024-raspi i opis architektury jako arm64. To ważna różnica w porównaniu z komputerami z procesorami x86, bo nie każdy program skompilowany na PC zadziała na Raspberry Pi.

Do uruchomienia systemu potrzebujesz karty microSD. System traktuje ją jak dysk, więc błędy zasilania, nagłe odłączanie kabla czy uszkodzona karta mogą skończyć się utratą danych i uszkodzeniem systemu plików. Właśnie wtedy pojawiają się problemy z brakującymi plikami nagłówkowymi, kompilacją modułów Node.js lub błędami przy aktualizacjach pakietów.

Procesor ARM i architektura arm64

Raspberry Pi w nowszych wersjach korzysta z 64‑bitowej architektury ARM, co widać po oznaczeniu arm64 w komunikatach systemu. Powoduje to, że gotowe binarne paczki przeznaczone dla innych platform, na przykład x86_64, nie dają się uruchomić lub instalator zgłasza błąd 404 przy pobieraniu binariów. Taka sytuacja dotyczy między innymi niektórych modułów Node.js, jak pakiet canvas.

Gdy dla twojej wersji Node.js i platformy ARM64 nie ma przygotowanej paczki, instalator próbuje włączyć lokalne kompilowanie kodu z użyciem node-gyp i systemowych nagłówków języka C. Wtedy Raspberry Pi zaczyna zachowywać się jak mała maszyna developerska: uruchamia narzędzie make, korzysta z kompilatora g++, zagląda do katalogów /usr/include i szuka plików takich jak stddef.h.

Dlaczego tak ważna jest karta SD?

W klasycznym komputerze uszkodzony dysk twardy bywa łatwiejszy do wykrycia i wymiany. W Raspberry Pi cały system, pakiety i konfiguracja bazują na małej karcie microSD, która ma ograniczoną wytrzymałość na cykle zapisu. Nagłe odcięcie zasilania albo częste restarty w trakcie intensywnej pracy npm czy apt mogą doprowadzić do uszkodzenia systemu plików.

Po awarii użytkownicy często przywracają obraz z kopii zapasowej. Taki obraz może wyglądać dobrze, da się uruchomić system, ale pojedyncze pliki nagłówkowe z pakietów developerskich są uszkodzone lub ich brakuje. To wystarczy, żeby kompilacja modułu npm skończyła się komunikatem w stylu fatal error: stddef.h: No such file or directory. Na drugim Raspberry Pi, gdzie system był aktualizowany bez uszkodzeń, ten sam pakiet nadal kompiluje się poprawnie.

Jak wygląda praca z Raspberry Pi jako serwerem?

Wiele osób zamienia Raspberry Pi w mały serwer: bota Discord, serwer HTTP czy instancję bazy danych. Z punktu widzenia administracji przypomina to pracę na każdym innym serwerze Linux, tylko zasoby są mniejsze, a nośnik danych ma inną charakterystykę. Przykład z logów instalacji pakietu [email protected] dobrze pokazuje, co dzieje się w tle przy instalacji z użyciem npm.

Podczas npm i canvas system próbuje pobrać gotową paczkę dla kombinacji [email protected] | linux | arm64. Gdy serwer GitHub zwraca błąd 404 dla konkretnego archiwum tar.gz, instalator przełącza się w tryb kompilacji ze źródeł. I tu zaczyna się prawdziwa praca Raspberry Pi jako środowiska developerskiego, które musi mieć poprawnie doinstalowane biblioteki i nagłówki C.

Jakie narzędzia developerskie są potrzebne?

Aby Raspberry Pi mogło zbudować moduł natywny dla Node.js, potrzebujesz pełnego zestawu narzędzi kompilacyjnych. W dystrybucjach bazujących na Debianie i Ubuntu instaluje się je zwykle poleceniem apt install build-essential. Ten pakiet dostarcza kompilator g++, make i zestaw podstawowych nagłówków C++ oraz standardowej biblioteki.

W logu błędu z kompilacji canvas widać wyraźnie, że system znajduje kompilator, Python 3.10.6 i uruchamia make, ale zatrzymuje się na braku pliku stddef.h. To oznacza, że na tym Raspberry Pi brakuje paczki z nagłówkami libc, czyli między innymi libc6-dev. Druga płytka, na której ten sam pakiet buduje się poprawnie, ma prawdopodobnie zainstalowany pełny zestaw pakietów developerskich.

Dlaczego na jednym Raspberry Pi działa, a na drugim nie?

Taka rozbieżność między dwoma identycznymi projektami pojawia się często po awarii karty SD albo po ręcznym przywróceniu obrazu systemu. Jedna maszyna ma pełny zestaw bibliotek i nagłówków, druga – niby ten sam obraz, ale część plików na karcie została nadpisana lub uszkodzona. System startuje, podstawowe programy działają, lecz przy bardziej zaawansowanych zadaniach, jak kompilacja canvas, pojawia się błąd.

W opisanej sytuacji użytkownik próbował przeinstalować zależności npm, co nie rozwiązało problemu. Moduł canvas kompiluje się jednak na bazie narzędzi systemowych, a nie samych pakietów z katalogu node_modules. Dopóki w systemie brakuje standardowych nagłówków C, dopóty każda próba zbudowania modułu natywnego zakończy się komunikatem o błędzie kompilacji.

Jak Raspberry Pi radzi sobie z Node.js i npm?

Raspberry Pi dobrze współpracuje z Node.js. Wielu użytkowników instaluje nvm, czyli Node Version Manager, żeby wygodnie zmieniać wersje node, tak jak w przykładzie z wersją v18.14.0. Na ARM64 większość pakietów JavaScript działa bez problemu, ale moduły z natywnymi rozszerzeniami wymagają zgodności ABI i poprawnego środowiska kompilacyjnego.

W logach widać też [email protected] oraz [email protected]. Pierwsze narzędzie buduje moduły C/C++ dla Node.js, drugie próbuje najpierw pobrać gotowe binaria. Gdy brakuje archiwum dla arm64 i danej wersji node, system przechodzi na kompilację lokalną. Właśnie wtedy pełna konfiguracja Linuxa na Raspberry Pi ma ogromne znaczenie.

Dlaczego pojawia się błąd stddef.h?

Plik stddef.h to część standardowych nagłówków języka C. Zawiera definicje potrzebne niemal każdemu większemu projektowi w C lub C++. Komunikat fatal error: stddef.h: No such file or directory oznacza, że kompilator g++ nie znajduje ścieżki do tych nagłówków. W systemach Debian/Ubuntu pliki te instaluje się razem z paczką libc6-dev lub z zestawem build-essential.

Na Raspberry Pi bez tych pakietów działa większość aplikacji użytkowych, bo korzystają one z gotowych bibliotek. Problem wychodzi na jaw dopiero wtedy, gdy instalujesz coś, co wymaga budowania ze źródeł. Np. canvas korzysta z bibliotek graficznych i nagłówków C++, więc w przypadku braków w /usr/include kompilacja kończy się błędem na etapie plików takich jak cxxabi_init_exception.h lub innych elementów libstdc++.

Jak przygotować środowisko pod moduły natywne?

Aby Raspberry Pi działało stabilnie jako maszyna do Node.js z modułami natywnymi, trzeba raz dobrze przygotować środowisko. W praktyce sprowadza się to do zainstalowania kilku grup pakietów systemowych, jeszcze zanim zaczniesz instalować biblioteki przez npm. Taki zestaw zwykle nie jest instalowany domyślnie w minimalnych obrazach serwerowych.

Po wstępnej konfiguracji możesz przejść do instalacji modułów takich jak canvas, bcrypt czy sqlite3. Dzięki pełnym nagłówkom i narzędziom kompilacyjnym instalacja wykorzystuje node-gyp, ale kończy się poprawnym zbudowaniem plików .node dla architektury arm64, a nie błędem z powodu brakującego standardowego nagłówka.

Jakie pakiety warto mieć na Raspberry Pi?

Na świeżej instalacji Raspberry Pi OS lub Ubuntu Server na ARM64 warto od razu zainstalować kilka paczek, które często pojawiają się w dokumentacji projektów opartych na Node.js. Dzięki temu nie zaskoczą cię komunikaty o brakujących narzędziach, kiedy zaczniesz rozwijać projekt bota czy aplikacji webowej, jak ZeroBot dla Discorda.

Lista takich pakietów zwykle obejmuje narzędzia kompilacyjne i nagłówki. Dobrym punktem wyjścia jest zestaw:

  • build-essential,
  • libc6-dev,
  • python3 i python3-dev,
  • pkg-config,
  • libjpeg-dev i libpng-dev (często wymagane przez canvas),
  • git oraz curl do pobierania kodu źródłowego.

Jak diagnozować problemy na Raspberry Pi?

Praca z Raspberry Pi jako małym serwerem szybko uczy analizy logów. W przypadku błędu instalacji npm masz zwykle bardzo długi komunikat zawierający wersje node, systemu, architektury oraz dokładne parametry wywołania make. To właśnie tam widać, że system pracuje na jądrze Linux 5.15.0-1024-raspi, z Pythonem 3.10.6 i konkretną wersją node-gyp. Na tej podstawie możesz porównać konfigurację dwóch płytek i znaleźć różnice.

Najprościej porównać zainstalowane pakiety developerskie między obydwoma Raspberry Pi. Na maszynie, na której wszystko działa, da się sprawdzić, jakie paczki odpowiadają za obecność plików nagłówkowych. Potem na tej problematycznej instalacji możesz doinstalować brakujące pakiety lub rozważyć przygotowanie świeżego obrazu systemu zamiast opierania się na kopii po uszkodzonej karcie SD.

Jak porównywać konfiguracje dwóch płytek?

Gdy jedno Raspberry Pi kompiluje moduł canvas bez problemu, a drugie zgłasza błędy, naturalnym krokiem jest porównanie środowisk. W praktyce sprowadza się to do zestawienia wersji Node.js, listy globalnie zainstalowanych modułów npm oraz pakietów systemowych związanych z kompilacją. Różnice w tych trzech obszarach zwykle prowadzą do źródła problemu.

Na działającej maszynie warto sprawdzić, czy zainstalowane są pakiety takie jak build-essential i libc6-dev, a następnie upewnić się, czy na drugim Raspberry Pi też są obecne. Jeżeli brakuje plików w katalogu /usr/include, dobrym rozwiązaniem bywa ponowne zainstalowanie tych paczek z repozytorium. Czasem szybciej jest przygotować nowy system na innej karcie SD niż walczyć z pozostałościami po starej, uszkodzonej instalacji.

Jak dbać o stabilność systemu na karcie SD?

W codziennym użytkowaniu Raspberry Pi jako małego serwera warto ograniczyć ryzyko uszkodzeń karty. Dobre zasilacz, poprawne zamykanie systemu i unikanie częstych restartów podczas aktualizacji pakietów pakietów npm i apt wyraźnie zmniejsza ryzyko, że znów zobaczysz błędy braku nagłówków czy uszkodzone biblioteki. Z czasem dobrze jest też rozważyć backup obrazu karty SD po większych aktualizacjach.

W projektach, które często zapisują dane na dysk, można przechowywać logi na zewnętrznym nośniku USB albo przenieść część katalogów na inny dysk. Na wielu płytkach Raspberry Pi użytkownicy decydują się też na rootfs na dysku SSD podłączonym przez USB, zostawiając karcie SD tylko rolę małego bootloadera. Dla projektów, w których kompilujesz moduły natywne, ta stabilność jest bardzo ważna, bo uszkodzenia systemu plików uderzają właśnie w nagłówki i biblioteki developerskie.

Gdy Raspberry Pi ma dobrze przygotowany system, pełne nagłówki i stabilną kartę, potrafi bez problemu budować nawet bardziej wymagające moduły jak canvas, działać jako serwer bota Discord i jednocześnie zachować kulturę pracy typową dla dużo większych maszyn.

Redakcja malinowepi.pl

Jako redakcja malinowepi.pl z pasją zgłębiamy świat IT, komputerów, technologii i smartfonów. Uwielbiamy dzielić się naszą wiedzą z czytelnikami, pokazując, że nawet najbardziej złożone tematy mogą być zrozumiałe i ciekawe dla każdego. Razem odkrywamy nowe możliwości cyfrowego świata!

Może Cię również zainteresować

Potrzebujesz więcej informacji?