venerdì 21 settembre 2018
Home / Hardware / La stampante diventa wireless, con Raspberry Pi
Photo by Annie Spratt on Unsplash

La stampante diventa wireless, con Raspberry Pi

Creiamo il nostro print server

Purtroppo, nell’era digitale,  abbiamo ancora spesso bisogno di usare la stampante. Sono ingombranti, pesanti, lente, le potremmo chiamare “perdi inchiostro a tradimento” o “spargi toner da ufficio”. Personalmente, ne installo a decine e girando per gli uffici, vedo questi vecchi ruderi dotati della sola connessione USB… quanta tristezza, quanti limiti: ormai abbiamo computer, tablet, smartphone.. e la stampante? Là da sola, collegata al pc.
E’ ora di farla evolvere!

Rendiamola libera dai vincoli, adeguiamola all’era del IoT, grazie a RaspberryPi, (meglio se Pi Zero W) e Raspbian.

Prima di tutto, installiamo quindi Raspbian sul nostro RaspberryPi ed aggiorniamolo, seguendo la guida sul nostro Blog, non ci serviranno monitor, tastiere o mouse, se facciamo tutto da SSH.

Una volta collegata la stampante alla porta USB del RaspberryPi (se usi il PiZero utilizza un cavo Otg, come quello per smartphone o tablet Android) e aver connesso il RaspberryPi alla nostra rete WiFi (o collegato alla LAN con cavo Ethernet), possiamo proseguire, verificando se la stampante viene rilevata, iniziando prima con il comando

per avere i pieni diritti di configurare il tutto, poi con

possiamo verificare, se tra i nomi di tutti i dispositivi usb rilevati, compare la nostra stampante. In caso di problemi, fate riferimento al forum, nella discussione dedicata a questa guida.
Ecco un esempio di output

Nel mio caso sto usando una vecchia stampante laser Samsumg ML-1640 collegata ad un RaspberryPi Zero W.

Dopo aver appurato che la parte hardware è regolarmente funzionante e riconosciuta, proseguiamo con la configurazione dei vari software, eseguendo prima l’ormai classico comando

che aggiornerà l’elenco dei pacchetti e successivamente

il quale installerà il software CUPS, fondamentale per gestire le stampanti su Mac e Gnu/Linux.

Ricordo che, nel caso non conoscessimo il nome preciso di un pacchetto, sarà sufficiente digitare

oppure

Consiglio di leggere sempre il manuale dei pacchetti che andremo a utilizzare, digitando il comando man [nome del pacchetto]. Nel nostro caso:

Cupsctl è un comando che serve a semplificarci la vita nel configurare il file /etc/cups/cupsd.conf, che è la base per la gestione del demone CUPS, nel quale si possono impostare tutta una serie di permessi: dall’accesso alle stampanti, al pannello web, che di default si trova all’ indirizzo https://ipRaspberryPi:631 .

Come buona norma, Linux limita al massimo i rischi, bloccando l’accesso dai pc remoti. Nel nostro caso, volendo gestire CUPS da un pc secondario o da remoto, dobbiamo abilitarne l’accesso con il semplice comando

Come possiamo vedere qui sotto, ci sono altri parametri utilizzabili, ma ricordo che per una maggiore precisione possiamo sempre modificare il file /etc/cups/cupsd.conf .

Questi invece sono i parametri utilizzabili con cupsctl.

Ora che abbiamo il server CUPS attivo e condiviso, dobbiamo poterlo amministrare. Per farlo sarà necessario assegnare gli utenti al gruppo lpadmin tramite il comando

in questo caso sto utilizzando l’utente pi di default, ma, se ne utilizzi uno diverso, sarà sufficiente sostituire pi con il tuo.

Riavviamo ora i servizi CUPS tramite il comando

service è un comando generico “wrapper” per gestire il servizi, che accetta le opzioni start/stop/restart/status . Scrivendo un asterisco dopo una parte di nome, si chiede di riavviare tutti i servizi che iniziano per cups. Nel nostro caso i nomi completi sono

Finalmente possiamo accedere all’interfaccia di gestione web da qualsiasi computer, usando utente e password del RaspberryPi, tramite il link

https://[ip del RaspberryPi]:631

631 è la porta standard, che può essere modificata nel file /etc/cups/cupsd.conf ed eventualmente essere “nattata” sul router per accedervi dall’esterno, anche se io consiglio sempre di usare PiVpn .

Tramite il menu Administration, premiamo add printer, selezioniamo la stampante locale, procediamo ad assegnargli un nome a nostra scelta e, cosa importante, clicchiamo share this printer per condividerla in rete.  Successivamente la scelta dei driver va valutata cosi,

  1. cerco nel sito della casa madre il file PPD e lo aggiungo col pulsante sottostante;
  2. cerco con apt search marca_stampante. Nel mio caso c’erano i driver printer-driver-splix;
  3. alla fine se non c’è nemmeno nella lista predefinita si prova con i driver generici o del modello più simile andando su Select another Manufacter -> Generic -> Generic PCL Laser (laser), Postscript (standard) o Text-Only (Aghi).

Bene, ora che la stampante è installata, per comodità impostiamola come predefinita nel server tramite il menu Printers -> Set as server default.

cups

 

Finalmente adesso possiamo stampare!

Attualmente solo da RaspberryPi, ma si presta bene all’utilizzo tramite script, magari con una stampante ad etichette o qualche automatismo ancora da inventare: è sufficiente usare il comando

Proviamo se funziona tutto correttamente tramite il comando sottostante, che creerà un file di testo e lo stamperà.

Stampare da Windows

Veniamo alla parte di condivisione Windows, che immagino sarà molto usata. Windows non è in grado di gestire le stampanti linux, ma per fortuna hanno inventato Samba!

Samba ha molte funzioni utili per gestire le risorse delle reti miste, dal domain controller, alle cartelle condivise alle stampanti, il tutto racchiuso nel suo file di configurazione /etc/samba/smb.conf del quale andremo solo a sfiorare le grandi potenzialità.

Samba non è installato di default in Raspbian, quindi installiamolo tramite

modifichiamo ora la configurazione con

e nella sezione printers abilitiamo le condivisioni

Salviamo e riavviamo i servizi con

Eccellente! Ora abbiamo spiegato a Samba che vogliamo che le stampanti siano condivise anche per i pc Windows. Non resta altro che aprire una qualsiasi cartella in Windows, nella barra del percorso mettere \\nomeDelRapsberry e premere invio, per vedere le stampanti e cartelle che sta condividendo, se chiede nome utente e password, saranno quelle abilitate nel RaspberryPi.

.

Premendo il tasto destro del mouse sull’icona della stampante e selezionando connetti si avvierà la procedura guidata di installazione, la quale chiederà i driver Windows della stampante, che di sicuro troverai sul sito del costruttore nella sezione driver, facendo attenzione a scaricare quelli per la versione corretta di Windows (32 o 64 bit).

Stampa Android

Siamo nell’era degli smartphone, dobbiamo per forza riuscire a stampare tutti i documenti che ci servono e che abbiamo scaricato dallo smartphone!

Android, solitamente nel menu impostazioni avanzate (dipende dalla versione), ha la sezione dedicata alle stampanti, nella quale potremmo configurare tutti i servizi di stampa online. A noi serve una qualsiasi APP trovata sullo store in grado di supportare le stampanti CUPS.
Per questa prova ho scelto PrinterShare, ma ce ne sono molte altre tra cui scegliere. Scarichiamo l’app ed una volta avviata, con semplicità e in pochi secondi troverà la stampante. Sarà sufficiente selezionarla e inviarle un qualsiasi documento da stampare, niente di più facile.

Potrebbe richiede l’ip o il nome del RaspberryPi, il nome è sempre preferibile, perché l’indirizzo ip di norma è dinamico se non avete fatto configurazioni specifiche per un ip fisso sul router o sulla macchina.

Se vuoi restare aggiornato, seguici anche sui nostri social: Facebook , TwitterYouTubeGoogle+Telegram

Discutiamone nel forum

A proposito di Enrico Sartori

Tecnico Microsoft da oltre un decennio, appena ho tempo cerco di imparare un po' di tutto.

Vedi Anche

Musica con Raspberry e DAC: Spotify connect

Se c’è una cosa che mi piace fare quando torno a casa dal lavoro stanco …

Powered by themekiller.com