W zasadzie cały tutorial mógłby być wyrażony w następujących dwóch zdaniach:
„Kup Raspberry Pi, znajdź odpowiednie kable i ładowarkę USB (może być najprostsza 5 V / 2 A), zainstaluj Linuksa, zainstaluj CUPS, zainstaluj sterowniki drukarki, skonfiguruj CUPS, dodaj drukarkę w Windows, ciesz się drukowaniem bezprzewodowym. W przypadku każdego z etapów znajdziesz wsparcie na YouTube oraz wspomoże Cię ChatGPT.”
Postaram się jednak trochę rozwinąć temat, ponieważ jest tego wart, a funkcjonalność drukowania za pomocą sieci bezprzewodowej na zwykłej drukarce USB jest szalenie użyteczna i pozwala tchnąć nowe życie nawet w leciwy sprzęt.
Co jest nam potrzebne – sprzęt do zbudowania prostego print-serwera CUPS na Raspberry Pi
Poniżej lista kompletnego wyposażenia, żeby uruchomić Raspberry Pi jako serwer druku działający w sieci lokalnej. To jest minimalny zestaw, którego faktycznie używa się w praktyce – bez rzeczy zbędnych, ale z opcjonalnymi elementami, które czasem ratują sytuację przy pierwszej konfiguracji.
1. Drukarka USB
Ja użyłem Brother HL-L2402D oraz HP 6P, ale dowolna drukarka USB będzie OK.
- ważne, żeby miała zwykłe USB-B (większość drukarek ma),
- jeżeli jest wyposażona tylko w LPT, to trzeba użyć konwertera USB–LPT dedykowanego do drukarek,
- w przypadku Brotherów warto od razu założyć konieczność instalacji sterownika
brlaser, - w przypadku HP 6P dodatkowe sterowniki w CUPS nie były potrzebne.
2. Raspberry Pi (dowolny model, ja użyłem Zero 2 W)
Raspberry Pi Zero 2 W jest bardzo sensownym wyborem do takich prostych projektów: ma małe wymiary i jest oszczędne energetycznie. Można użyć też Pi 3/4.
Do Zero 2 W będą potrzebne dodatkowo:
- przejściówka microUSB → USB OTG,
- karta microSD (8–32 GB w zupełności wystarczy).
Pierwsza moja przymiarka do drukowania bezprzewodowego odbyła się z użyciem starszego Raspberry Pi Zero W – to również działało, ale system uruchamiał się jakieś 60 sekund, podczas gdy uruchomienie systemu na Zero 2 W trwa około 25 sekund. Cena nowszej wersji jest w zasadzie identyczna jak starej, więc nie ma sensu skazywać się na niską wydajność i niepotrzebną zwłokę. Co więcej, kartę pamięci skonfigurowaną dla starego Zero można później przełożyć do nowego i system uruchomi się poprawnie (tak właśnie zrobiłem).
3. Okablowanie USB (host → drukarka)
- adapter OTG microUSB → USB-A (Zero 2 W nie ma pełnego portu USB host),
- kabel USB-B ↔ USB-A do drukarki (standardowy kabel drukarkowy).
4. Zasilanie Raspberry Pi
- zasilacz 5 V, 1.5–2 A w zupełności wystarcza dla Zero 2 W,
- może to być ładowarka USB dobrej jakości + kabel microUSB.
Ważne: Zero 2 W nie ma zabezpieczeń na liniach zasilania, dlatego nie należy używać przypadkowych, najtańszych kabli ani zasilaczy.
5. Karta microSD + Raspberry Pi Imager
- karta najlepiej Class 10,
- do nagrania obrazu systemu użyjesz programu Raspberry Pi Imager.
6. (Opcjonalnie) Mini HDMI → HDMI
- tylko jeśli chcesz uruchomić Pi z monitorem,
- Zero 2 W ma miniHDMI (dokładniej: miniHDMI typ C), więc potrzebny jest adapter albo kabel miniHDMI–HDMI.
7. (Opcjonalnie) Klawiatura USB
- przydatna, jeśli konfiguracja SSH lub Wi-Fi nie pójdzie bezboleśnie – mi się zdarzyło,
- można użyć także klawiatury Bluetooth po pierwszym uruchomieniu.
8. (Opcjonalnie) Dioda LED + rezystor 330–1 kΩ
Wygodne usprawnienie, informuje o gotowości pracy po załączeniu zasilania (opisuję je w osobnym rozdziale).
9. Dostęp do sieci Wi-Fi z hasłem
Przy konfiguracji headless (bez monitora i klawiatury) potrzebny będzie plik wpa_supplicant.conf lub network-config na partycji BOOT.
Jeśli sieć zmienia się często, warto znać tryb gadget-mode, ale to temat osobny.
10. Komputer (Windows / Linux / macOS)
Potrzebny do:
- nagrania systemu na kartę,
- pierwszej konfiguracji Wi-Fi / SSH,
- testów druku z Windows.
1. Przygotowanie Raspberry Pi – instalacja systemu i konfiguracja headless (Wi-Fi + SSH)
Celem tego etapu jest przygotowanie karty SD tak, aby Raspberry Pi Zero 2 W uruchomiło się bez monitora i klawiatury, od razu z dostępem do Wi-Fi i SSH. To pozwala przejść całą konfigurację CUPS zdalnie.
Krok 1: Pobranie Raspberry Pi Imager
Oficjalny program do nagrywania systemu:
https://www.raspberrypi.com/software
Po instalacji wybierasz:
- „Choose OS” → „Raspberry Pi OS (32-bit)”
(wersja bez Desktop, bo CUPS nie potrzebuje grafiki), - „Choose Storage” → Twoja karta microSD.
Krok 2: Ustawienia zaawansowane (ważne)
W Raspberry Pi Imager naciśnij ikonkę koła zębatego na dole, po prawej stronie → pojawi się okno zaawansowanych ustawień.
Włącz:
- „Set hostname” – np.
raspberrypi, - „Enable SSH” → wybierz „Allow password authentication”,
- „Set username and password” – np.
- username:
nazwa_uzytkownika - password: sensowne hasło,
- username:
- „Configure Wi-Fi” –
- SSID: nazwa Twojej sieci Wi-Fi,
- Password: hasło,
- Wi-Fi country:
PL,
- „Locale settings” – ustaw czas, klawiaturę i region.
Zatwierdzasz przyciskiem „Save”.
Uwaga praktyczna: czasem Imager nie włącza SSH poprawnie (mi się tak zdarzyło), dlatego dokładamy dodatkowy mechanizm w kolejnym kroku.
Krok 3 (opcjonalnie, ale pewniej): pliki ssh i wpa_supplicant.conf
Po nagraniu obrazu systemu komputer pokaże partycję boot (FAT32).
Możesz tam dorzucić dwa pliki, które działają zawsze, niezależnie od wersji systemu.
– Plik ssh (pusty):
Na partycji BOOT utwórz plik o nazwie:
ssh
Bez rozszerzenia, bez zawartości.
Powoduje to gwarantowane włączenie SSH przy starcie systemu.
– Plik wpa_supplicant.conf:
Zawartość:
country=PL
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="NAZWA_TWOJEJ_SIECI"
psk="HASLO_DO_WIFI"
}
Raspberry Pi skopiuje ten plik do /etc/wpa_supplicant/ i po starcie połączy się z Wi-Fi.
Krok 4: Pierwsze uruchomienie Raspberry Pi Zero 2 W
Włóż kartę microSD i podłącz zasilanie.
Zero 2 W nie ma osobnej LED statusowej poza diodą zasilania, więc po prostu czekasz około 25–30 sekund. W tym czasie system:
- uruchomi się,
- połączy się z siecią,
- włączy SSH,
- nada hostname.
Krok 5: Logowanie po SSH (PuTTY lub terminal)
Po prawidłowym uruchomieniu Raspberry Pi i połączeniu go z siecią możesz zalogować się zdalnie. To jest moment, w którym sprawdzamy, czy konfiguracja Wi-Fi i SSH zadziałała.
Masz dwie metody zależnie od systemu, z jakiego korzystasz.
Metoda A: logowanie za pomocą PuTTY (Windows)
- Pobierz PuTTY: https://www.putty.org/
- Uruchom program i w polu „Host Name” wpisz:
raspberrypi.localJeśli sieć nie wspiera mDNS → wpisz adres IP z routera, np.192.168.1.42. - Port:
22, typ połączenia:SSH. - Kliknij „Open”.
- Przy pierwszym połączeniu zaakceptuj klucz serwera (komunikat „trust this host”).
- Wpisz nazwę użytkownika, np.:
nazwa_uzytkownika - Wpisz hasło (PuTTY nie pokazuje gwiazdek – to normalne).
Po zalogowaniu znajdziesz się w konsoli Raspberry Pi i możesz zarządzać systemem tak jak lokalnie.
Metoda B: logowanie z terminala Linux / macOS
W systemach uniksowych możesz po prostu:
ssh nazwa_uzytkownika@raspberrypi.local
lub użyć adresu IP:
ssh nazwa_uzytkownika@192.168.1.42
Jeśli połączenie nie działa, najczęstsze przyczyny to:
- Pi nie podłączyło się do sieci Wi-Fi (błąd w SSID/haśle, region nie
PL), - router blokuje mDNS → wtedy użyj adresu IP zamiast
raspberrypi.local, - SSH nie aktywowało się z ustawień Imagera → dlatego dodawaliśmy plik
sshna BOOT, - Pi nie dostało adresu DHCP – pomaga restart routera.
Krok 6: Aktualizacja systemu
Po wejściu przez SSH:
sudo apt update
sudo apt full-upgrade -y
sudo reboot
Po restarcie możesz już kontynuować konfigurację CUPS.
2. Instalacja i konfiguracja CUPS na Raspberry Pi (w tym udostępnianie w sieci LAN)
W tym kroku uruchomimy CUPS, poprawnie udostępnimy drukarkę w sieci oraz zadbamy o konfigurację tak, żeby Windows ją widział i używał właściwego sterownika. Ten etap bywa mylący, jeśli nie zna się kilku pułapek charakterystycznych dla Raspberry Pi OS i samego CUPS.
Krok 1: Instalacja CUPS
Na Raspberry Pi (przez SSH):
sudo apt install cups
Po instalacji CUPS pracuje jako usługa systemd i jest aktywowany przez socket (startuje automatycznie, kiedy ktoś otwiera port 631).
Sprawdzenie statusu:
systemctl status cups
systemctl status cups.socket
Obie usługi powinny być w stanie „active”.
Krok 2: Dodanie użytkownika do grupy lpadmin
Bez tego nie będziesz mógł zarządzać drukarkami:
sudo usermod -aG lpadmin nazwa_uzytkownika
Wyloguj się / zaloguj ponownie, aby grupa zaczęła działać.
Krok 3: Umożliwienie dostępu do panelu CUPS z sieci lokalnej
Domyślnie CUPS pozwala tylko na połączenia z localhost. Musimy to zmienić w pliku konfiguracyjnym.
Edytuj:
sudo nano /etc/cups/cupsd.conf
Znajdź sekcje:
<Location />
...
</Location>
<Location /admin>
...
</Location>
<Location /admin/conf>
...
</Location>
I upewnij się, że zawierają:
Allow @LOCAL
Przykład minimalny:
<Location />
Order allow,deny
Allow @LOCAL
</Location>
<Location /admin>
Order allow,deny
Allow @LOCAL
</Location>
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow @LOCAL
</Location>
To sprawia, że panel CUPS będzie dostępny pod adresem:
http://raspberrypi.local:631
lub:
http://IP_RASPBERRY:631
Krok 4: Restart CUPS po zmianach
sudo systemctl restart cups
Jeśli konfiguracja jest błędna, CUPS będzie miał status „failed”.
Wtedy warto użyć:
journalctl -xeu cups
Krok 5: Podłączenie drukarki i instalacja właściwego sterownika
- Podłącz drukarkę USB do Raspberry Pi przez adapter OTG.
- Upewnij się, że system ją widzi:
lsusbDla Brotherów powinno pojawić się coś w stylu:Bus 001 Device 004: ID 04f9:006e Brother Industries, Ltd
Instalacja sterownika dla Brothera (brlaser)
Dla wielu modeli Brother (HL-L24xx itp.) konieczny jest sterownik brlaser:
sudo apt install printer-driver-brlaser
CUPS bez tego pokaże drukarkę jako „Generic IPP” i będzie produkował puste kartki.
Krok 6: Dodawanie drukarki przez interfejs CUPS
Otwórz w przeglądarce:
http://raspberrypi.local:631
lub IP urządzenia.
Wybierz:
- „Administration” → „Add Printer”.
Drukarka USB powinna pojawić się na liście jako np.:
Brother HL-L2402D (USB)
Wybierz ją i przejdź dalej.
Przy wyborze sterownika wybierz:
- producent: Brother,
- sterownik: jeden z wariantów
brlaser(np. HL-L2300D (brlaser)).
Po zapisaniu drukarka będzie widoczna w:
- „Printers” →
[NazwaTwojejDrukarki].
Krok 7: Udostępnienie drukarki w sieci
W panelu CUPS wejdź:
- „Printers” → Twoja drukarka → „Administration” → „Share This Printer”.
Zaznacz i zatwierdź.
CUPS wygeneruje wpis w:
/etc/cups/printers.conf
Przykładowy fragment:
<Printer Brother_HL-L2402D>
Shared Yes
Accepting Yes
...
</Printer>
Uwaga: jeśli Shared Yes nie zapisze się prawidłowo, Windows nie będzie widział drukarki, mimo że panel CUPS ją pokazuje. To jeden z najczęstszych problemów.
Krok 8: Sprawdzenie udostępnienia drukarki
W tym momencie Windows powinien wykrywać drukarkę jako:
HL-L2402D @ raspberrypi
Jeśli pojawia się, ale drukuje puste kartki → prawdopodobnie nadal jest zły sterownik.
Jeśli nie pojawia się w ogóle → sprawdź Allow @LOCAL w cupsd.conf.
3. Dodawanie drukarki w Windows + typowe problemy i ich rozwiązania
W tym kroku podłączymy drukarkę sieciową udostępnioną przez CUPS do systemu Windows.
Wbrew pozorom to nie zawsze działa „od strzału”, szczególnie jeśli sterownik CUPS był ustawiony jako „Generic IPP” — wtedy drukarka przesyła do Raspberry Pi poprawne zadania, ale Raspberry Pi nie potrafi ich przełożyć na język właściwy dla modelu Brother i drukuje puste kartki.
Krok 1: Upewnij się, że CUPS poprawnie udostępnia drukarkę
W przeglądarce:
http://raspberrypi.local:631/printers
Powinieneś zobaczyć coś takiego:
Brother_HL-L2402D
Status: Idle
Shared: Yes
Jeśli pole „Shared” mówi „No” → wróć do poprzedniego etapu i ustaw „Share This Printer”.
Krok 2: Automatyczne wykrywanie drukarki (mDNS / IPP)
W Windows 10 / 11:
- „Settings” → „Devices” → „Printers & Scanners” → „Add a printer”.
Po kilku sekundach powinna pojawić się drukarka:
HL-L2402D @ raspberrypi
Jeśli ją widzisz — kliknij i dodaj.
Uwaga: Windows instaluje swoje sterowniki, a nie to, co jest w CUPS – i to jest prawidłowe.
Windows komunikuje się z Raspberry Pi przez IPP:
- wysyła surowe polecenia do CUPS,
- CUPS przekłada je na język Brothera (przez
brlaser).
Dlatego instalowanie sterownika Brothera na Windowsie jest opcjonalne — ważne jest tylko, aby CUPS miał prawidłowy sterownik.
Krok 3: Jeśli Windows nie widzi drukarki automatycznie
Najczęstsza przyczyna: w CUPS brakuje Allow @LOCAL w cupsd.conf, albo CUPS nie pracuje poprawnie na interfejsie sieciowym Zero 2 W.
Sprawdź w /etc/cups/cupsd.conf sekcje:
<Location />
<Location /admin>
<Location /admin/conf>
Każda musi mieć:
Allow @LOCAL
Po poprawkach:
sudo systemctl restart cups
Windows zwykle zaczyna widzieć drukarkę po 5–15 sekundach.
Krok 4: Ręczne dodawanie drukarki po adresie IPP
Jeśli automatyczne wykrywanie nie działa, można dodać ją ręcznie.
W Windows:
- „Add printer” → „The printer that I want isn’t listed” → „Add a printer using a TCP/IP address or hostname”.
Ustaw:
- Device type: „Web Services Device” (IPP Printer),
- Hostname/IP:
http://raspberrypi.local:631/printers/Brother_HL-L2402Dlub adres IP, np.:http://192.168.1.20:631/printers/Brother_HL-L2402D
Windows sam wykryje typ IPP i doda port WSD lub IPP.
Jeśli Windows pyta o sterownik → wybierz cokolwiek z listy (np. „Generic”).
To i tak nie ma znaczenia, bo faktyczny sterownik jest w CUPS.
Krok 5: Problem – drukarka drukuje puste kartki
To klasyczny objaw złego sterownika w CUPS:
- CUPS pokazuje drukarkę jako „Generic IPP”,
- Windows wysyła zadania normalnie, ale CUPS nie wie, jak je przetworzyć → drukarka dostaje pustą stronę.
Rozwiązanie: zainstalować sterownik brlaser:
sudo apt install printer-driver-brlaser
Następnie w panelu CUPS:
- „Printers” → „Brother HL-L2402D” → „Administration” → „Modify Printer”
i wybrać sterownik brlaser (np. HL-L2300D (brlaser)).
Po zapisaniu zmiany drukowanie z Windows zacznie działać prawidłowo.
Krok 6: Problem – drukarka jest widoczna, ale Windows nie drukuje
Najczęstsze przyczyny:
- Windows dodał niepoprawny port. Wejdź:
- „Control Panel” → „Devices and Printers” → PPM na drukarce → „Printer Properties” → zakładka „Ports”.
http://raspberrypi.local:631/printers/Brother_HL-L2402Dlub:http://192.168.1.xx:631/printers/Brother_HL-L2402DJeśli jest port typu LPR bez nazwy kolejki, albo RAW → skasuj drukarkę i dodaj ponownie przez IPP. - CUPS nie udostępnia drukarki z powodu błędnego
printers.conf. Czasem CUPS zapisuje udostępnianie drukarki dopiero po restarcie. Sprawdź:cat /etc/cups/printers.confPowinno być:<Printer Brother_HL-L2402D> Shared Yes State Idle ... </Printer>JeżeliShared No→ zmiana w panelu się nie zapisała.
Typowo oznacza to brakAllow @LOCALw/etc/cups/cupsd.conf.
Krok 7: Test działania
Najpierw test z CUPS:
- „Printers” → „Brother HL-L2402D” → „Maintenance” → „Print Test Page”.
Jeżeli działa – przejdź do Windowsa i wydrukuj stronę testową.
4. Użyteczny bonus: sygnalizacja stanu serwera druku za pomocą diody LED (GPIO6)
To rozwiązanie pozwala ocenić „na oko”, czy Raspberry Pi działa i czy CUPS jest już gotowy do przyjmowania zadań drukowania. Idealne, jeśli Raspberry pracuje sobie schowane gdzieś w obudowie drukarki lub w szafce sieciowej.
Dioda LED informuje o stanie systemu:
- brak świecenia – CUPS jeszcze się nie uruchomił, Raspberry wraz z drukarką zostało podłączone do prądu i właśnie się uruchamia,
- ciągłe świecenie – CUPS działa, drukarka jest gotowa do pracy.
- dioda miga – dokument do wydruku jest właśnie przesyłany do drukarki.
W tej wersji korzystamy z GPIO6, bo wówczas łatwo jest przylutować LED.
Krok 1: Podłączenie diody LED do GPIO6
Potrzebujesz:
- dowolnej diody LED (np. 3 mm),
- rezystora 330–1000 Ω,
- przewodów.
Schemat połączeń (tak jak u mnie):
- GPIO6 (pin 31) → rezystor → GPIO12 (pin 32) użyty tylko jako pole lutownicze → dioda LED → GND (pin 34).

Katoda LED (po lewej stronie, ścięcie na obudowie, krótsza nóżka) do masy, anoda LED (po prawej stronie, dłuższa nóżka) do rezystora.
GPIO w Raspberry pracuje na 3.3 V, więc rezystor jest obowiązkowy. U mnie katoda LED przylutowana jest do pinu GND, a anoda do GPIO 12, przy czym pin ten służy jedynie jako pole lutownicze. Tak naprawdę sterowanie odbywa się z pinu GPIO 6 przez rezystor 330 Ω.
Krok 2: Instalacja narzędzia gpioset
W Raspberry Pi OS Bookworm narzędzie jest dostarczane przez pakiet gpiod:
sudo apt install gpiod
W tej wersji poprawnie działa tryb:
gpioset -t 0 GPIO6=1
co oznacza „ustaw 1 i natychmiast zakończ” — to jest kluczowe, bo bez tego gpioset trzyma linię i blokuje możliwość zmiany stanu.
Krok 3: Skrypt monitorujący stan CUPS
Utwórz plik:
sudo nano /usr/local/bin/led-status.sh
Wklej zawartość:
#!/bin/bash
PIN="GPIO6"
GPIOSET="/usr/bin/gpioset"
led_on() {
$GPIOSET -t 0 "$PIN=1"
}
led_off() {
$GPIOSET -t 0 "$PIN=0"
}
cups_is_active() {
systemctl is-active --quiet cups.service
}
any_printer_has_jobs() {
local printers
printers=$(lpstat -p 2>/dev/null | awk '{print $2}')
for pr in $printers; do
if lpstat -o "$pr" 2>/dev/null | grep -q .; then
return 0 # TAK, jest jakieś zadanie
fi
done
return 1 # BRAK zadań w wszystkich kolejkach
}
# Start — zgaś diodę
led_off
while true; do
if ! cups_is_active; then
# CUPS nie działa → LED OFF
led_off
sleep 0.1
continue
fi
if any_printer_has_jobs; then
# Miga, jeśli są zadania
led_on
sleep 0.2
led_off
sleep 0.2
else
# Świeci ciągle, jeśli kolejki puste
led_on
sleep 0.1
fi
done
Zapisz:
Ctrl + O→ Enter →Ctrl + X.
Nadaj prawa wykonywania:
sudo chmod +x /usr/local/bin/led-status.sh
sudo sed -i 's/\r$//' /usr/local/bin/led-status.sh
(ostatnia linia usuwa CRLF, jeśli skrypt edytowałbyś kiedyś pod Windowsem).
Krok 4: Jednostka systemowa systemd
Utwórz:
sudo nano /etc/systemd/system/led-status.service
Wstaw:
[Unit]
Description=LED status indicator for CUPS on GPIO6
After=multi-user.target
Requires=cups.service
[Service]
Type=simple
ExecStart=/usr/local/bin/led-status.sh
Restart=always
[Install]
WantedBy=multi-user.target
Zapisz i aktywuj:
sudo systemctl daemon-reload
sudo systemctl enable led-status.service
sudo systemctl start led-status.service
Krok 5: Test działania
Zrestartuj Raspberry poprzez odłączenie zasilania albo komendą:
sudo reboot
- Podczas uruchamiania Raspberry, LED powinna pozostać wygaszona, a po jakichś 20…30 sekundach zaświeci się sygnalizując gotowość do drukowania.
- Podczas wysyłynia dokumentu do drukarki – LED powinna migać.
- Wysłanie poniższej komendy spowoduje krótkie wyłączenie i załączenie LED.
sudo systemctl restart cups.socket cups.service
Dlaczego to działa poprawnie?
- używamy
gpioset -t 0, które ustawia stan pinu bez trzymania go procesem, - systemd odpala skrypt po starcie systemu i monitoruje jego pracę,
- LED jest dokładnym odzwierciedleniem stanu usługi
cups.service.
To daje elegancką technicznie i wygodną dla użytkownika sygnalizację statusu CUPS.
5. „Troubleshooting” — praktyczne rozwiązania najczęstszych problemów (Wi-Fi, SSH, CUPS, Windows, GPIO)
Ten rozdział jest po to, abyś nie musiał wracać do monitora i klawiatury za każdym razem, kiedy coś pójdzie nie tak. Z mojego doświadczenia z Raspberry Pi Zero 2 W (oraz z tego projektu) wynika, że najczęstsze problemy są powtarzalne i mają szybkie rozwiązania — trzeba tylko wiedzieć, gdzie patrzeć.
5.1. Problem: Raspberry Pi nie łączy się z nową siecią Wi-Fi
Przyczyna: stary wpa_supplicant.conf lub błędny region Wi-Fi.
Rozwiązanie 1 – edycja pliku na karcie SD (bez monitora)
- wyjmij kartę z Raspberry Pi,
- w komputerze otwórz partycję
boot(FAT32), - skasuj stary
wpa_supplicant.conf, jeśli istnieje, - dodaj nowy plik
wpa_supplicant.confz treścią:country=PL ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="NOWA_SIEC" psk="NOWE_HASLO" }
Raspberry Pi skopiuje ten plik przy starcie.
Rozwiązanie 2 – poprzez SSH-over-USB (gadget mode)
Jeśli Wi-Fi nie działa, ale Pi się uruchamia:
- podłącz kablem microUSB ↔ PC do portu USB „data” (nie power),
- Pi zgłosi się jako karta sieciowa (Ethernet gadget),
- wtedy możesz wejść przez SSH i zmienić Wi-Fi:
sudo raspi-config nonint do_wifi_ssid_passphrase "NAZWA" "HASLO"
5.2. Problem: SSH nie działa, mimo ustawienia w Raspberry Pi Imager
Przyczyna: Imager nie zapisuje poprawnie ustawień, albo system wymusza pierwszy login lokalny.
Rozwiązanie – metoda pewna:
Na partycji boot utwórz plik:
ssh
Pusty, bez rozszerzenia.
Ten mechanizm działa zawsze i nie wymaga żadnych dodatkowych usług.
5.3. Problem: CUPS nie jest dostępny w przeglądarce („Access Forbidden”)
Przyczyna: brak Allow @LOCAL w trzech lokacjach w cupsd.conf.
Najczęściej brakuje w sekcji /admin/conf.
Rozwiązanie:
Edytuj:
sudo nano /etc/cups/cupsd.conf
Dodaj we wszystkich sekcjach:
Allow @LOCAL
Restart:
sudo systemctl restart cups
5.4. Problem: drukarka widoczna w Windows, ale drukuje puste strony
Przyczyna: CUPS używa sterownika „Generic IPP”, więc nie potrafi przełożyć danych na język konkretnej drukarki.
Rozwiązanie:
Zainstalować sterownik:
sudo apt install printer-driver-brlaser
A następnie:
- „CUPS → Printers → Twoja drukarka → Administration → Modify Printer”
- wybrać sterownik
brlaser.
5.5. Problem: drukarka nie pojawia się w Windows, mimo że działa w CUPS
Przyczyna: drukarka nie jest faktycznie „Shared” w CUPS.
Panel CUPS czasem nie zapisuje tego ustawienia przy pierwszej próbie.
Szybka diagnoza:
cat /etc/cups/printers.conf
Powinno być:
Shared Yes
Jeśli jest No — zmiana nie została zapisana.
Dlaczego się nie zapisuje?
Najczęściej dlatego, że w cupsd.conf brakuje:
Allow @LOCAL
CUPS wtedy blokuje zapis konfiguracji.
5.6. Problem: dioda LED nie sygnalizuje stanu CUPS (GPIO6)
Przyczyna: gpioset w trybie domyślnym trzyma linię i nie kończy procesu.
Objaw: w systemctl status widać:
/usr/bin/gpioset GPIO6 0
Rozwiązanie:
W skrypcie używać:
gpioset -t 0 GPIO6=1
i analogicznie:
gpioset -t 0 GPIO6=0
To ustawia pin i kończy proces, pozwalając skryptowi działać dalej.
5.7. Problem: sudo systemctl stop cups nie zatrzymuje usługi
Przyczyna: CUPS jest aktywowany przez socket (cups.socket).
Windows lub nawet samo systemctl status automatycznie go wznawia.
Prawidłowy sposób zatrzymania:
sudo systemctl stop cups.service cups.socket
Dopiero wtedy LED przestanie świecić (bo CUPS naprawdę nie działa).
5.8. Problem: Raspberry Pi zawiesiło się lub straciło Wi-Fi, ale działa CUPS
Możliwe przy intensywnym bootowaniu lub słabym zasilaniu.
Szybkie sprawdzenie przez LED:
- LED miga → CUPS nie działa, problem systemowy,
- LED świeci → CUPS działa, ale być może sieć padła.
Można wtedy wejść przez SSH-over-USB i naprawić Wi-Fi.
5.9. Problem: nie znam adresu IP Raspberry Pi
Trzy podstawowe metody:
- Metoda A – mDNS:
ping raspberrypi.local - Metoda B – router (DHCP leases):
zaloguj się na router, w podglądzie klientów DHCP powinna być nazwa hostaraspberrypi. - Metoda C – kabel USB (gadget mode):
Pi pojawia się jako interfejs sieciowy (typowo192.168.137.xxxpod Windows).