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: Homepage di CUPS

Clicca sulla pagina di amministrazione (Administration), la pagina caricata sarà simile alla seguente:

Pagina di Amministrazione - CUPS

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.

Login a CUPS

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: Selezione della stampante - CUPS Clicca sulla tua stampante e assicurati di mettere il segno di spunta su “Share this printer“: Condivisione stampante - CUPS 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: Impostazione stampante predefinita - CUPS 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
    Il 14 Ottobre 2018 9:39 0Likes

    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
      Il 14 Ottobre 2018 14:02 0Likes

      Ciao Guido,
      Certo che puoi, ci penserà il comando sane-find-scanner a rilevarlo per te.
      Buon lavoro!

  • Guido
    Il 15 Ottobre 2018 8:38 0Likes

    Grazie mille,

    se mi riesce ve lo comunico !

    Ciao

  • miki
    Il 4 Novembre 2018 21:33 0Likes

    salve , non riesco andare avanti , gentilmente può indicarmi quali sono i parametri da inserire nella seguente stringa:
    sudo usermod -a -G lpadmin

    • Dragone2
      Il 4 Novembre 2018 21:38 0Likes

      Buonasera,
      Bisogna inserire il nome utente con il quale si accede al Raspberry PI. Di default è pi, quindi il comando da impartire sarà:

      sudo usermod -a -G lpadmin pi
      • miki
        Il 4 Novembre 2018 22:09 0Likes

        grazie, andando avanti, mi sono riboccato di nuovo :

        non capisco come faccio a sostituire questa stringa Listen localhost:631 con port 631.

        • Dragone2
          Il 4 Novembre 2018 22:55 0Likes

          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
            Il 4 Novembre 2018 23:32 0Likes

            grazie 1000
            risolto

  • bisutti luciano guido
    Il 27 Dicembre 2018 8:50 0Likes

    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
      Il 27 Dicembre 2018 14:18 0Likes

      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.