Qualche giorno fa ho realizzato un server per stampare e scannerizzare foto e documenti con la mia stampante su un Raspberry PI, collegandola direttamente a quest’ultimo tramite cavetto USB. Purtroppo non avendo una stampante wireless questa soluzione mi è stata molto utile, per condividere con qualsiasi dispositivo (sia smartphone, tablet o PC) la stampante, con la possibilità di stampare e scannerizzare da qualsiasi punto della casa.
Ecco in dettaglio i passi che ho seguito:
Per prima cosa bisogna procurarsi CUPS, il server di stampa, che ci permetterà di condividere la nostra stampante via HTTP. Per farlo utilizzeremo il seguente comando:
sudo apt-get update && sudo apt-get install cups
Dopodiché bisognerà aggiungere il nostro account utente sul Raspberry PI nel gruppo lpadmin, che ci permetterà di diventare amministratori di stampa, utilizzando il comando:
sudo usermod -a -G lpadmin <nome-utente>
CUPS di default ascolta solo le connessioni locali, cioè quelle che arrivano dallo stesso Raspberry PI. Per permettere l‘accesso remoto bisognerà andare a modificare il file /etc/cups/cupsd.conf.
Da linea di comando risulta semplice, usando:
sudo nano /etc/cups/cupsd.conf
Cerchiamo la riga contenente:
Listen localhost:631
E cambiamola a:
Port 631
Ricordandoci di aggiungere queste 2 linee:
BrowseRemoteProtocols CUPS dnssd BrowseAddress @LOCAL
Cerchiamo poi la root Location del server e modifichiamola in modo che diventi così:
<Location /> Order allow,deny Allow all </Location>
Abilitiamo anche l’accesso all’amministrazione, modificando in questo modo l’admin Location:
<Location /admin> </Location>
Cerchiamo infine il blocco Location di /admin/conf e cancelliamo Order allow,deny
, che ci abiliterà l’accesso ai files di configurazione.
Adesso con il comando:
sudo service cups reload
Ricarichiamo il file di configurazione di CUPS in memoria. Se visitiamo con un qualunque browser l’IP seguito dalla porta 631 del nostro Raspberry PI dovremmo riuscire a collegarci alla pagina di gestione di CUPS. In sostanza, l’URL della pagina dovrebbe essere simile a questo: https://192.168.0.8:631 e la schermata che apparirà dovrebbe essere simile a questa:
Clicca sulla pagina di amministrazione (Administration), la pagina caricata sarà simile alla seguente:
Clicca su “Add printer” in alto a sinistra. Verrà richiesta un’autenticazione tramite password. Digitiamo il nostro username e la password del nostro utente su Raspbian / Raspberry PI OS.
Nota: Se venisse visualizzata una pagina con scritto Forbidden ma non viene richiesta nuovamente l’autenticazione significa che il vostro account non ha i permessi per gestire la stampa, dovete quindi ripetere il secondo comando presentato in questo progetto.
Se la stampante è stata collegata al Raspberry PI via cavo, dovresti avere una schermata simile alla seguente: Clicca sulla tua stampante e assicurati di mettere il segno di spunta su “Share this printer“: Adesso scegli il driver della stampante dalla lista che viene proposta, se non sai quale scegliere cerca quello che propone CUPS. Infine imposta le impostazioni di stampa predefinite: Fatto! Nel caso in cui la tua stampante incorpori uno scanner, è consigliabile procedere come segue, per poter scannerizzare via Wi-Fi tramite il Raspberry PI:
sudo apt-get update sudo apt-get install sane
Sane ci permetterà di condividere il nostro scanner. Controlliamo che lo scanner sia stato rilevato con il comando:
sudo sane-find-scanner
Dovrebbe uscire qualcosa di simile a questa schermata:
pi@print-server ~ $ sudo sane-find-scanner # sane-find-scanner will now attempt to detect your scanner. If the # result is different from what you expected, first make sure your # scanner is powered up and properly connected to your computer. # No SCSI scanners found. If you expected something different, make sure that # you have loaded a kernel SCSI driver for your SCSI adapter. # Also you need support for SCSI Generic (sg) in your operating system. # If using Linux, try "modprobe sg". found USB scanner (vendor=0x03f0 [HP], product=0xa011 [Deskjet 3050A J611 series]) at libusb:001:005 found USB scanner (vendor=0x0bda [Manufacturer Realtek ], product=0x8172 [RTL8191S WLAN Adapter ]) at libusb:001:004 found USB scanner (vendor=0x0424, product=0xec00) at libusb:001:003 # Your USB scanner was (probably) detected. It may or may not be supported by # SANE. Try scanimage -L and read the backend's manpage. # Not checking for parallel port scanners. # Most Scanners connected to the parallel port or other proprietary ports # can't be detected by this program.
Fatto ciò, e se risulta tutto ok, procedi andando a modificare: /etc/default/saned
con il comando:
sudo nano /etc/default/saned
e assicuriamoci che sia stato impostato: RUN=yes
.
Dopodiché apriamo il file: /etc/sane.d/saned.conf
sempre utilizzando:
sudo nano /etc/sane.d/saned.conf
e impostiamo il Network ID della nostra rete, ad esempio:
192.168.1.0/24
permetterà a Sane di accettare connessioni da tutti gli IP che iniziano con 192.168.1.
Nel mio caso utilizzerò 192.168.0.0/24
.
Aggiungiamo poi l’utente “saned” al gruppo lp con il comando:
sudo adduser saned lp
E riavviamo il servizio:
sudo service saned restart
Facciamo poi partire in automatico il servizio (per Sistemi vecchi):
sudo update-rc.d saned defaults
Su sistemi più recenti si può anche utilizzare:
sudo systemctl enable saned
Controlliamo poi che tutto sia OK:
sudo service saned status
È tutto, con questo abbiamo concluso.
Per scannerizzare su PC con Windows sarà necessario installare il software: SaneTwain.
Su Linux è invece consigliabile: XSane.
Una volta installati i software assicuratevi di aver immesso l’IP corretto e la porta 6566, con il relativo nome utente “saned” o quello del gruppo lp.
10 Commenti
Guido
Mi avvicino da poco al mondo Rpi e non ho grandi competenze informatiche, però desideravo chiedere se è possibile
connettere uno scanner non incorporato con il metodo spiegato!
saluti e grazie
Guido
Dragone2
Ciao Guido,
Certo che puoi, ci penserà il comando sane-find-scanner a rilevarlo per te.
Buon lavoro!
Guido
Grazie mille,
se mi riesce ve lo comunico !
Ciao
miki
salve , non riesco andare avanti , gentilmente può indicarmi quali sono i parametri da inserire nella seguente stringa:
sudo usermod -a -G lpadmin
Dragone2
Buonasera,
Bisogna inserire il nome utente con il quale si accede al Raspberry PI. Di default è pi, quindi il comando da impartire sarà:
miki
grazie, andando avanti, mi sono riboccato di nuovo :
non capisco come faccio a sostituire questa stringa Listen localhost:631 con port 631.
Dragone2
Si tratta di cercare un eventuale “Listen localhost:631” e di sostituirlo con “Port 631”. Lo puoi fare con un qualsiasi editor di testo. Con nano si tratta di premere i tasti Ctrl + W e digitare “Listen localhost:631” senza virgolette e premere invio. Dopodiché basterà premere il tasto Canc per eliminare il testo e scrivere al suo posto “Port 631” sempre senza virgolette. Quando hai finito, premi Ctrl + X e rispondi con Y o S alla domanda che ti porrà.
miki
grazie 1000
risolto
bisutti luciano guido
Salve Dragone,
ho tentato di eseguire download Cups, però la console mi ha dato
subito una serie di errori “Unable to fetch http: //motivo errore//
mi puoi spiegare come risolvere il problema .
Grazie per la disponibilità.
Guido
Dragone2
Ciao Guido,
Hai provato ad aggiornare la cache di apt? Devi fare apt-get update prima di fare apt-get install cups, probabilmente non la aggiorni da un po’ di tempo e quindi non riesce a trovare i files da scaricare sui relativi server. In teoria ti basta questo per risolvere, se non hai fatto altre modifiche.