Ciao a tutti!
Oggi mi si è presentata una richiesta insolita: far rivivere una stampante ad aghi di 20 anni fa (ha addirittura il pulsantino per selezionare il font da utilizzare) nel minor spazio possibile. Ovviamente la cosa più piccola che avevo in casa è il classico raspberry pi. Per poter collegare la stampante al raspberry ho trovato su internet un pratico adattatore usb.

Installazione del raspberry pi

Sinceramente non mi sento di coprire esaustivamente questa parte, basta andare su www.raspberrypi.org, scaricare raspbian, decomprimerlo. Poi, su linux basta lanciare il seguente comando

sudo dd if=/immagine of=/dev/sdx bs=4k

mentre su windows può essere necessario un programmino per flashare la scheda, ma tanto c'è già tutto sul sito.
Alcuni passaggi da effettuare con lo script di installazione del raspberry sono (solo qui vi servirà tastiera e monitor, dopo potrete andare tranquillamente con ssh):

  1. espandere il file system
  2. configurare timezone, locales e tastiera italiana (eventualmente)
  3. Nella sezione avanzate abilitare il server ssh per collegarsi in remoto
  4. eventuali altri ciappini (modifica del nome della macchina, overclock eventuale ecc...)

Configurazione della rete

Un server, per quanto stupida sia la sua funzione (come in questo caso) solitamente ha un indirizzo ip statico. Ho notato che, impostando l'ip statico sul raspberry nella solita maniera lui assume sì l'indirizzo statico, ma mantiene anche l'indirizzo dhcp, assegnando due indirizzi alla stessa scheda. Per evitare quest'anomalia basta procedere in questo modo:

sudo apt-get purge dhcpd5 isc-dhcp-client

Per poi configurare la rete in questo modo (invertire i passaggi può causare la cancellazione del file /etc/network/interfaces, con relative imprecazioni al riavvio della macchina se state lavorando in ssh). Modifichiamo il file /etc/network/interfaces in questo modo:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.2.200
    netmask 255.255.255.0
    gateway 192.168.2.254

Ovviamente adattando i parametri con quelli che fanno al caso vostro. Io suggerisco di cancellare la robaccia che c'è sotto perchè serve per far funzionare il wireless e una nota legge informatica dice che se un servizio non c'è non crea problemi. Al termine della procedura riavviate e verificate che sia tutto a posto. Nel caso malaugurato che il suddetto file esploda e voi non abbiate un monitor basta collegare una tastiera, effettuare l'accesso (nome utente, invio, password, invio, il numlock non è attivo di default) e poi scrivere questo comando:

sudo ifconfig eth0 192.168.2.200 255.255.255.0 up

In questo modo avete configurato al volo l'interfaccia di rete e potete tornare a collegarvi con ssh per vedere cos'è successo.

Per poter collegarvi ad internet avrete anche bisogno di configurare i dns, pertanto il mio consiglio è di disattivare resolvconf (un software che li imposta automaticamente dalle informazioni del dhcp) ed impostarli voi manualmente. Resolvconf non ha un "bottone di spegnimento", quindi ho trovato questo piccolo stratagemma per inibirlo: modifichiamo il file /etc/resolvconf.conf e modifichiamo la riga dove dice il file da aggiornare, io di solito ci aggiungo .disable così scrive da un'altra parte. Poi modifichiamo il file /etc/resolv.conf in questo modo:

nameserver 8.8.8.8
nameserver 8.8.4.4

In questo modo punteremo ai server dns di google. Un semplice ping verso un sito esterno darà conferma che i dns sono a posto.

Installazione di cups

Se tutto è andato a buon fine avrete il vostro server pronto a funzionare. Ora è tempo di installare cups:

sudo apt-get update
sudo apt-get install cups cups-common lynx

Lynx è un browser web da interfaccia testuale, se usate l'interfaccia grafica (nabbi) non ne avrete bisogno. Il mio consiglio è di abilitare la modifica di cups da remoto per facilitare le operazioni. Per poterlo fare, si deve impostare una password all'utente root, poichè sulle distribuzioni simil ubuntu come il raspberry di solito l'utente root viene disattivato e si utilizza sudo per acquisirne i privilegi momentaneamente. Per poter accedere a cups e modificarne le impostazioni si deve per forza fare il login con root, per questo è necessario abilitarlo con sudo passwd root.
Effettuato questo passaggio lanciate lynx localhost:631, andate su Administration, poi in basso ci sono dei quadratini di selezione. Crociate "Allow remote administration", andate su change settings, loggatevi con root ed il gioco è fatto. Da qui in poi potrete usare un browser remoto che vi consentirà di vedere l'interfaccia in modo migliore rispetto a quella da riga di comando.

Installazione delle stampanti

Anche in questa parte non mi dilungherò poichè l'interfaccia si spiega da sola. Vorrei fare solo due considerazioni:

  1. Per installare stampanti sotto windows (che non usino il driver windows perchè è fallato e non va oppure la stampante è molto vecchia) si può creare una classe di stampanti (sotto classes) in cui includere la stampante. Dopodichè, nell'istallazione da windows, è sufficiente utilizzare il seguente link http://192.168.2.220:631/classes/<NomeClasse&gt; come riferimento e specificare il driver appropriato.
  2. Essendo un server di stampa la stampante deve essere condivisa in rete, quindi spuntate l'opportuno flag.

Conclusione

Il mio esperimento è stato un successo: la stampante (ad aghi) funziona correttamente e mi stampa pure le immagini (tipo la pagina di prova di debian). Ora sta a voi provarci e dirmi come va.