PrinterScannerServer
Questa guida è mirata alla creazione di un server di stampa e scansione con l'utilizzo di un raspberry pi, nel caso specifico utilizzerò una stampante multi funzione "Epson SX110" ma questo non toglie la possibilità di utilizzare due dispositivi separati o altre stampanti multi funzione similari, l'unico vincolo è la compatibilità con i programmi utilizzati ma vista la svariata scelta di driver già inclusi nei Sw diciamo che la compatibilità e quasi totale. Per la realizzazione di questa magia utilizzerò due programmi. CUPS e l'acronimo di "Common Unix printing system" e permette di condividere la stampante sulla rete e sarà possibile gestirla per mezzo di un interfaccia HTML. SANE è l'acronimo di "Sharing a scanner with the Network – even Windows" e riesce a gestire lo scanner comunicando con un programma installato nel pc. Iniziamo dal principio installando e configurando una versione immagine ancora vergine, per i più esperti basterà saltare questi primi passaggi.
Materiale necessario:
-
-Raspberri Pi escluso versione A e alimentatore -Cavo di rete -Cavo USB – Stampante -Stampante / scanner o Multi funzione
Installazione Raspbian: Dal sito Raspberry Pi scaricare l'ultima immagine del programma. Formattare una SD card da 4gb o superiore con l'apposito tool SD Cadr Formatter , nell' OPTION selezionare l'opzione "Full(Erase)" per essere sicuri di preparare bene l'SD.
Formattata l'SD card con Win32Disk imager possiamo caricare l'immagine scaricata precedentemente. All'avvio del Rpi impostare le preferenze . "Expand File system" serve a estendere l'immagine precedentemente caricata a tutta la memoria disponibile. "Internationa lisation Options" ->Change Timezone serve a selezionare il proprio fuso orario. L'impostazione del fuso orario non è necessaria per il nostro scopo, giusto per sincronizzare gli orologi del pc.
Ora passiamo al SO collegato il cavo di rete e aggiorniamolo all'ultima versione.
sudo apt-get update sudo apt-get upgrade
L'aggiornamento richiede un tempo considerevolmente lungo ma lasciamolo lavorare.
Impostazione indirizzo statico dell'RPI
Questa impostazione è fondamentale per indirizzare la stampante di rete e lo scanner.
sudo ifconfig
visualizziamo lo stato attuale della connessione di rete appuntare i parametri del "inet addr:x.x.x.x Bcast:x.x.x.x Mask:x.x.x.x"
sudo netstat -nr
Appuntiamo il "Destination:x.x.x.x Gateway:x.x.x."
a questo punto impostiamo la scheda di rete aprendo il file di configurazione
sudo nano /etc/network/interfaces
commentare "#" la linea
iface eth0 inet dhcp
scivere
iface eth0 inet static address x.x.x.x netmask x.x.x.x network x.x.x.x broadcast x.x.x.x gateway x.x.x.x
In address o dare l'indirizzo che si è scritto con inet addr o assegnarne uno specifico. per modificare il DNS modificando il file
sudo nano/etc/resolv.conf
immettere il nameserver x.x.x.x e name server x.x.x.x
Installazione di CUPS
sudo apt-get install cups sudo usermod -a -G lpadmin pi
Cosi facendo installo cups e do all'utente pi i privilegi di root per poi gestire le funzioni dell stampante
sudo nano /etc/cups/cupsd.conf commentare Listen localhost :631 con # e mettere "Port 631" In questo modo risponderà a tutte le chiamate interne o esterne sulla porta 631 e potremo gestire la sua interfaccia html dal nostro pc. Scorrendo in giù nel file aggiungere a :
#restrict access to server Allow @local #restrict access to the admin page Allow @local #restrict access to the configuration file Allow @local
Salvare ed uscire. Riavviare CUPS
sudo service cups restart
Riavviato il Rpi dovremmo essere abilitati ad aprire la pagina di cups da qualsiasi browser collegato alla nostra rete. Per aprire la pagina di configurazione digitare sulla barra del browser l'indirizzo del Rpi:631 da questo momento in poi la configurazione di cups può essere fatta con interfaccia grafica.
Cliccare su "Amministrazione" e poi aggiungi stampante, la stampante sara riconosciuta dal sistema. La stampante aggiunta sara visibile nella pagina "printers" cliccando sul nome della stampante in blu si apre la pagina di gestione stampante, nel menu maintenace lanciare il test di stampa "Print Test Page".
Configuriamo il server di cups
sudo nano /etc/cups/cupsd.conf
Trovare e commentare "server name muhost.domain.com" Sostituire con Server Name x.x.x.x "indirizzi del Rpi" Trovare e commenatre "BrowserAddress @LOCAL" Sostituire con BrowserAddress x.x.x.x "indirizzi del Rpi"
Dopo la riga Allow From 127.0.0.1 Aggiungere AllowFrom x.x.x.x "indirizzi del Rpi" Salvare e riavviare CUPS
sudo service cups restart
Installiamo ora la stampante in windows nel mio caso "XP"
Aprire il pannello di controllo e la relativa gestione stampanti, cliccare su "Aggiungi stampante"
http://Indirizzo Rpi :631/printers/"PrintersName" il nome giusto lo trovi su CUPS
A questo punto verrano chiesti i driver, se non sono compresi nell'elenco proposto installare la stampante sul computer e poi ripetere la ricerca della stampante.
Provare a lanciare la stampa.
Installazione SANE
Questo programma funziona abbinato ad un altro programma installato nel pc. Installiamo SANE utils che contiene sane
sudo apt-get install xinetd sane-utils
ora aprire e configurare il file di avvio di Sane
sudo nano /etc/default/saned
#defaults for the saned initscript, for sane-utils #Set to yes to start saned RUN=yes #set to the user saned should run as RUN_AS_USER=saned
Salvare e chiudere Avvio Sane e provo se riconosce lo scanner
cd /home/pi /etc/init.d/saned start
Verifico cosa vedo nelle USB sia da utente che root
$ lsusb $ scanimage -L #questo comando restituisce la presenza dello scanner $ exit
esco dal root
Ora che lo scanner e stato riconosciuto da SANE con il prossimo comando andiamo a vedere sane su quale porta e configurato
root@raspberrypi:/etc/xinetd.d# cat /etc/services | grep sane
Visualizzerà
sane-port 6566/tcp sane saned # SANE network scanner daemon
se non fosse cosi bisogna aggiungerla
root@raspberrypi:/# cd /etc/xinetd.d root@raspberrypi:/etc/xinetd.d# touch sane-daemon root@raspberrypi:/etc/xinetd.d# which saned /usr/sbin/saned root@raspberrypi:/etc/xinetd.d# nano sane-daemon
Creare il file per la configurazione di Xlnet
sudo nano /etc/xinetd.d/sane-daemon
contenente
service sane-port { socket_type = stream server = /usr/sbin/saned protocol = tcp user = saned group = saned wait = no disable = no }
Modificare la configurazione di SANE
sudo nano /etc/sane.d/saned.conf
# saned.conf # Configuration for the saned daemon ## Daemon options # [...] # data_portrange = 10000 - 10100 ## Access list # [...] # The hostname matching is not case-sensitive. #scan-client.somedomain.firm x.x.x.x/x "Da modificare con il vostro IP" #192.168.0.1 #192.168.0.1/29 #[2001:7a8:185e::42:12] #[2001:7a8:185e::42:12]/64 # [...]
Aggiungo saned al gruppo lp
sudo adduser saned lp
Ora riavviare l'RPI
sudo reboot
Ora configurare il programma Sane Twain Nel campo x.x.x.x mettere l'indirizzo del Rpi
Dal simbolo dello scanner lanciare la scansione.