anulare
Afişează rezultate pentru 
Caută în schimb 
Ați dorit să scrieți: 

[Tutorial] Print Server compatibil AirPrint folosind un Raspberry Pi

arsradu
#StarMember & March's Problem Solver

 

arsradu_1-1685715091468.jpeg

Hello,

Acum ceva vreme va spuneam intr-un alt tutorial cum se poate folosi un router mai vechi pe post de Print Server pentru o imprimanta pe USB (fara WiFi) pentru a printa in retea, si chiar direct de pe telefon (cu cateva limitari).

Ei bine, astazi trecem la urmatorul nivel, acela in care folosim un Raspberry Pi pe post de print server dedicat. Deci nu mai aveti nevoie de acel router, dar...necesita cateva achizitii.

TL;DR: se ia una bucata Raspberry Pi cu Wifi, se instaleaza Raspberry OS pe el (sau o alta distributie de Linux), se instaleaza si configureaza CUPS, se adauga imprimanta, se adauga cateva foi de hartie si se "serveste" in voie. Mult succes!

Tutorialul nu e neaparat doar pentru printere HP, dar asta am, si asta am testat. 🙂 Teoretic ar trebui sa mearga fara probleme si pe alte imprimante.

Avantajul acestui setup este compatibilitatea default (fara alte softuri), de pe toate sistemele de operare pe care le-am incercat pana acum: MacOS, Windows, Ubuntu Linux, IOS si Android. Doar adaugi imprimanta, si e gata de printare. 😄

In cazul asta, o sa folosim un Raspberry Pi 3 Model A+. De ce asta si nu 4, sau orice altceva? Pentru ca asta e singurul pe care l-am gasit. Iar Pi 4 mi s-a parut cam scump pentru ce aveam eu nevoie. Aparent sunt stoc epuizat cam peste tot. In plus, voiam ceva cu porturi HDMI si USB full-size, spre deosebire de varianta unui Pi Zero 2 W, de exemplu, care are Micro USB si Mini HDMI, ceea ce inseamna cabluri, adaptoare etc.

Dar ideea e simpla: avem nevoie de un Pi cu Wi-Fi si macar un port USB pentru imprimanta noastra.

Raspberry Pi se poate achizitiona de pe raspberrypi.com. Odata ce alegeti un model, o sa aveti cateva optiuni locale de cumparare, cum ar fi de exemplu Optimus Digital, care pare sa fie partener oficial pentru astfel de produse.

Deci, de ce avem nevoie?

  1. un Raspberry Pi cu WiFi
    Aici fiecare decide de ce accesorii are sau nu nevoie, dar recomand cel putin un heatsink si, de preferat, o carcasa cu ventilator, pentru chestii mai intensive. Dar pentru print server, cel mai probabil va fi ok si fara ventilatie, si doar cu heatsink. Eu nu am gasit nimic local pentru modelul asta, si daca va luati varianta Zero 2 W probabil ca nici nu veti avea nevoie, dar eu mi-am comandat de pe AliExpress o carcasa cu ventilator inclus.
  2. un Card Micro SD de cel putin cativa GB (se poate achizitiona odata cu Pi-ul), cu adaptor (si eventual un card reader daca nu aveti un laptop care are asa ceva, sau nu aveti deja unul prin casa). Si recomandarea mea ar fi un card cat de cat rapid.
  3. Raspberry Pi Imager descarcabil de aici.
  4. imprimanta
  5. rabdare.
    In functie de modelul ales, de Micro SD Card-ul folosit si alte aspecte, unele comenzi pot dura ceva mai mult. Din fericire, nu va trebui configurat decat o singura data. 🙂

Gata? Sa-i dam drumul!

Scrierea sistemului de operare pe cardul SD

  1. descarcati si instalati Raspberry Pi Imager din link-ul furnizat mai sus.
    De ce de acolo si nu de pe site-ul raspberrypi.com? Pentru ca aparent varianta de pe site-ul oficial nu e actualizata, si cand veti deschide softul pentru prima data, o sa ceara update. Intrebati-ma de unde stiu. 🙂

    De asemenea, cu toate ca Raspberry Pi are si versiune cu environment de Desktop (interfata grafica), pentru ce avem noi nevoie, nu are rost sa instalam versiunea asta.
    De asemenea, ca idee, in caz ca nu doriti Raspberry OS, se poate instala si Ubuntu de exemplu, si probabil ca si altele.

  2. deschideti Raspberry Pi Imager
    a) Choose OS > Raspberry Pi OS (Other) > Raspberry Pi OS Lite (32-bit)
    b) Select Storage (cardul MicroSD conectat la calculator, fie direct, fie printr-un adaptor/card reader etc)
    c) inainte sa dati click pe Write, dati click pe Options, si configurati totul de la bun inceput. Va fi mai usor pe viitor

    Configurati:
    Image customization options: to always use.

    Set hostname.
    By default, hostname-ul este este raspberrypi. Il puteti lasa asa, sau modifica. Recomand sa-l modificati de pe acum, pentru ca, cu toate ca se poate modifica si dupa aceea, e un pic mai complicat odata logat pe el.
    ✓ Enable SSH
    Recomand sa bifati si sa configurati optiunea asta, in special daca nu aveti un mouse + tastatura si un monitor la care sa legati Pi-ul pentru configurare.
    ✓ Set username and password
    Setati ce username si password doriti pentru logarea pe device.
    Default username: pi
    Default password: raspberry
    Evident, recomand schimbarea lor, sau cel putin schimbarea parolei. 🙂

    ✓ Configure wireless LAN
    Alegeti reteaua WiFi pe care vreti sa se logheze si setati parola (in caz ca nu sunt deja configurate).
    Wireless LAN country: RO
    Set locale settings
    Time zone: Europe (Bucharest)
    Keyboard Layout: [US] in cazul meu.

    Persistent settings:
    Eject media when finished.
    Click SAVE

  3. Click Write
    In pasul asta, in functie de imaginea selectata si de viteza cardului folosit, e posibil sa dureze un pic mai mult. In cazul meu, a durat in jur de 10-15 minute.

Daca nu doriti sa descarcati imaginea de fiecare data, puteti descarca fisierul o singura data, pe calculator, si il instalati din Imager folosind optiunea Use Custom din Choose OS.

Conectarea la Raspberry Pi

Daca totul a decurs cum trebuie si instalarea a fost cu succes, putem sa scoatem cardul din adaptor/card reader si sa-l introducem in Raspberry Pi pentru configurare.

Dupa cum ziceam si mai sus, daca aveti la dispozitie un monitor pe HDMI, mouse si tastatura, puteti sa le conectati si sa urmati pasii de mai jos de pe monitorul atasat. Eu am ales varianta "remote", de pe un alt laptop conectat la retea.

Pornim Pi-ul si asteptam cateva minute (vreo 2 minute ar trebui sa fie suficient) pentru configurarea initiala. Dupa care, putem incerca o conectare prin SSH.

Acum, avem doua variante prin care putem sa ne conectam la SSH. Folosind IP-ul Pi-ului (ne putem uita in interfata router-ului WiFi, la clientii conectati, si cautam hostname-ul pe care l-am setat pentru Pi) sau direct cu acel hostname.local pe care l-am setat in optiuni in momentul in care am instalat sistemul de operare pe card.

Sintaxa pentru conectare la ssh este de forma:

 

 

 

ssh [username]@[IP]

 

sau

 

ssh [username]@[hostname.local]

 

Concret:

 

ssh pi@192.168.0.123

 

sau

 

ssh pi@raspberrypi.local

 

O sa ceara acceptul pentru adaugare in known hosts. Scrieti "yes" si Enter. Dupa care, o sa ceara parola de conectare la Pi (cea pe care ati setat-o la setarile de SSH de mai sus).

Intrucat IP-ul dat de serverul DHCP se poate schimba, ca sa nu il cautam de fiecare data cand vrem sa facem o conectare catre PI, cel mai simplu este sa ne logam folosind hostname.local.

Actualizarea sistemului de operare si pregatirea de configurare CUPS

Odata logati pe Pi, recomand sa-i dati intai de toate un update si upgrade.

Concret:

 

 

sudo apt-get update && sudo apt-get upgrade

 

Sau separat:

 

sudo apt-get update

 

 

sudo apt-get upgrade

 

De asemenea, inainte sa ne apucam de configurat, o sa trebuiasca sa mai instalam CUPS (Common Unix Printing System) si pachetul printer-driver-hpcups pentru imprimantele HP. Fara el, o sa aveti doar o selectie limitata de drivere din care sa alegeti.

Comenzile, pentru cazul asta, sunt:

 

 

sudo apt-get install cups
sudo apt-get install printer-driver-hpcups

 

Dupa ce a terminat tot de instalat/actualizat, putem sa trecem la configurarea propriu-zisa a CUPS serverului. 

Configurare Print Server

Intai de toate, trebuie sa adaugam userul ("pi", daca nu a fost schimbat in altceva) la grupul lpadmin ca sa putem interactiona cu el.

Comanda este:

 

sudo usermod -a -G lpadmin pi

 

Daca aveti alt user, inlocuiti "pi" in comanda de mai sus, cu userul respectiv.

Apoi facem un backup fisierului de configurare cupsd.

 

sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.orig

 

Editam fisierul cupsd pentru acces remote:

 

sudo nano /etc/cups/cupsd.conf

 

Si modificam urmatoarele:

La linia

 

# Only listen for connections from the local machine
Listen localhost:631

 

comentam Listen localhost:631 adaugand un # in fata, si punem dedesubt:

 

Port 631

 

 

In final, o sa arate asa:

 

# Only listen for connections from the local machine
# Listen localhost:631
Port 631

 

Apoi, mai jos, la sectiunile marcate cu <Location/> </Location>, trebuie sa adaugam Allow @local, ca in exemplul de mai jos.

 

<Location/>
# Restrict access to the server
Order allow,deny
Allow @local <- inserati aici
</Location>

 

Vom face acelasi lucru si pentru celelalte doua locuri de mai jos.

Dupa ce am terminat, restartam serverul CUPS cu comanda:

 

sudo /etc/init.d/cups restart

 

In momentul asta, ar trebui sa puteti accesa serverul cups din browser folosind IP-ul PI-ului urmat de port 631 sau hostname-ul.

De exemplu: https://192.168.0.123:631 sau https://raspberrypi.local.:631

Ar trebui sa vedeti ceva in genul asta.

arsradu_0-1683376472635.png

Bifati "Share printers connected to this system".

Mai trebuie doar adaugata imprimanta (aveti grija sa fie pornita!), folosind Add Printer.

arsradu_2-1683382807153.png

Puteti sa-i dati si o locatie (optional). Dar important e sa nu uitati sa bifati Share This Printer.

arsradu_1-1683382781006.png

Si, binenteles, va trebui sa-i selectam si driverul pe care sa-l folosesca.

arsradu_0-1683382756326.png

Si cateva default-uri.

arsradu_4-1683376775873.png

Asta e tot! 🙂

In momentul asta, imprimanta ar trebui sa fie detectabila de pe orice platforma (Windows, MacOS, Linux, iOS, Android), fara alte softuri suplimentare.

Happy printing!

Client Orange
3 Răspunsuri 3

Pololică
#StarMember

Foarte bun articolul. Nu stiu de ce nu l-am vazut la data postarii (am cautat ceva legat de imprimarea cu Raspberry Pi si era si articolul tau).

Din pacare, Raspberry nu are mare cautare in Romania (de fapt, cam tot ce este legat de Linux nu prea se stie mare lucru, in special de cand comunitatile locale de "pinguini" nu mai au forta).

Legat de instalare: ar fi de spus ca pentru un noobie (inceptator) in ale Linuxului, o sa para ceva destul de greu de realizat. Recomand o vizualizare pe youtube dupa ce se citeste acest articol. O sa fie mult mai simplu.

PS: daca nu vedeam comenzile sudo apt-get [...], traiam si acum cu impresia ca Raspberry OS se bazeaza pe RHEL (sau Suse cu Yast si .rpm), nu pe Debian (cu Apt si .deb).

arsradu
#StarMember & March's Problem Solver

Dap, este bazat pe Debian (11, "bullseye"). 🙂 Initial am testat solutia asta pe un Mac ruland Ubuntu Desktop. Da, stiu. Mac cu Linux?! :)) Dar da, un Mac (mai vechi) cu Intel, e la fel de capabil ca orice alt laptop cu Intel. Faptul ca e Mac nu-l face mai putin capabil, ba din contra. As zice ca e chiar mai capabil, tocmai prin faptul ca poate rula nativ si MacOS, ceea ce alte laptop-uri nu pot. Cel putin nu default. 🙂

Ideea a pornit de la dorinta de a avea imprimanta disponibila by default, fara softuri suplimentare, de pe orice sistem de operare, astfel incat oricine e legat la reteaua locala, sa poata printa direct de pe dispozitivul lui.

Si intrucat am avut succes (si aceleasi rezultate) si de pe laptop, am cautat o solutie care sa nu necesite un calculator (desktop sau laptop, e irelevant) permanent deschis. Si am gasit cateva solutii pe net, printre care si asta. Comandat "plăcințica", configurat, si acum am print server "de casa" 2.0, fara niciun fel de alte softuri (nici macar aplicatia HP Smart a celor de la HP, care, by the way, te forteaza sa ai si sa fii logat in contul HP pentru a putea scoate o pagina la imprimanta). Deci da...eu zic ca e mult mai ok cu varianta mea. 😄

Si da, pacat ca Linux-ul nu e atat de popular pe la noi. Sunt foarte multe chestii misto care se pot face pe Linux. Fiind un sistem de operare FOSS, si cu o comunitate foarte mare in spate, e normal sa apara si foarte multe idei si oameni priceputi care sa scoata tot felul de minuni. :))

Client Orange

Am trecut pe Linux tocmai ca, in urma cu 13 ani, interfata GNOME 2 era similara cu Mac-ul (ma rog, Machintosh). Tata inca foloseste primul meu calculator luat din primele salarii (din primul salariu am luat un monitor Fujitsu de 21" iar unitatea (desktop) pe parcursul urmatorului an din bucati). Si era 2007-2008... Mai spun ca sistemul de operare era Windows XP, iar din 2010 Ubuntu 10.04 si de vreo 3 ani Lubuntu 2x.04? Tata s-a bucurat ca e in limba romana, eu ca imi pot face proiectele de la master fara prea multe batai de cap cu Windows-ul (uneori mai aveam "blue screen of death"...).

In firma, daca nu ar fi softul de gestiune care sa necesite Windows, treceam 5 calculatoare pe Linux.