Dopo avere visto nella prima parte come installare DD-WRT sull’Asus WL-500gPv2 e le funzioni usb e nas messe a disposizione, passo alla descrizione su come implementare le funzioni di print server.
Ci sono alcuni requisiti di cui abbiamo bisogno per implementare tale funzione: il kernel deve riconoscere la stampante usb collegata e creare il device con cui gestirla, deve essere attiva una partizione jffs in modo da installare il pacchetto p910nd che gestirà le stampe in arrivo, dobbiamo avere l’accesso alla shell tramite ssh o telnet.
Vediamo i passi da seguire:
- Collegarsi tramite ssh o telnet sul router.
- Collegare il cavo usb della stampante ad una delle due porte del router. Una volta inserita il kernel dovrebbe avere creato il device
lp0
in/dev/usb/
- installare il pacchetto p910nd con i seguenti comandi
ipkg update ipkg -d root install p910nd
in questo modo verrà installato
p910nd
sul file system/jffs
- Creare uno script per fare avviare
p910nd
al boot del router. Lo script deve essere salvato nella directory/jffs/etc/config/
, deve avere come estenzione.startup
e deve contenere il seguente comando/jffs/usr/sbin/p910nd -b -f /dev/usb/lp0 0
naturalmente allo script deve essere assegnato il permesso di esecuzione
chmod +x nome_script.startup
A questo punto riavviando il router possiamo verificare se p910nd
è in esecuzione con un semplice ps
p910nd è un piccolo print server che non gestisce lo spool ma manda direttamente in stampa sul device specificato dal parametro -f
ciò che arriva sulla sulla porta 9100, 9101 o 9102 a seconda del parametro numerico indicato in coda al comando (0,1,2). Sempre in base a quest’ultimo, all’esecuzione del comando ps
, in output viene mostrato come processo il comando p9100d, p9101d o p9102d. Il parametro -b
indica che la comunicazione deve essere bidirezionale.
Verifichiamo ora se p910dn rimane in ascolto sull’apposita porta, ovvero la 9100 in questo caso.
A questo punto possiamo passare all’installazione della stampante sui client. Sotto Ubuntu Linux la stampante deve essere installata con protocollo AppSocket/HP JetDirect, mentre sotto windows deve essere creata una nuova porta tcp in modalità ROW e con porta 9100.
Installazione sotto Ubuntu Linux 8.10
- Eseguire l’installazione andando su Sistema/Amministrazione/Stampa.
- Aggiungere una nuova stampante.
- Scegliere come tipo di connessione AppSocket/Jet Direct, impostando come host l’indirizzo di rete o l’hostname, se viene gestito il dns, del router e lasciando come porta la 9100.
- A questo punto l’installazione prosegue scegliendo la marca e il modello della stampante.
Installazione sotto Windows XP
- Avviare l’installazione di una nuova stampante da l’apposita applet
- Scegliere “Stampante locale collegata al computer”
- Creare una nuova porta di tipo “Standard TCPI/IP Port”
- Specificare come indirizzo della stampante l’indirizzo ip o l’host name del router
- Impostare come tipo di periferica “Personalizzata”
- Variare le impostazioni della porta e mettere il protocollo come ROW e il numero porta come 9100
Conclusioni
A questo punto la stampante è configurata e se tutto è andato per il verso giusto stamperà anche 🙂
Nella prossima parte vedremo com installare HDSamba per trasformare il nostro router, in abbinamento con un Hard Disk USB, in un NAS fruibile tramite il protocollo Samba.
David Bigagli
[…] Asus wl-500gp v2 e dd-wrt: nas, print server e altro (seconda parte) Author: admin | Categoria Linux Dopo avere visto nella prima parte come installare DD-WRT sull’Asus WL-500gPv2 e le funzioni usb e nas messe a disposizione, passo alla descrizione su come implementare le funzioni di print server. Ci sono alcuni requisiti di cui abbiamo bisogno per implementare tale funzione: il kernel deve riconoscere la stampante usb collegata e creare il device con […] Vai alla Fonte […]
Se non possedete un client ssh o non vi va di usare telnet, potete usare winscp impostando per la connessione il protocollo “SCP”.
Quando create lo script di avvio del servizio p910d vi consiglio di chiamarlo usb.startup in modo da poter essere usato anche per eventuali altri servizi che controllino i dispositivi collegati ad una delle USB.
Se dopo l’inserimento della riga:
/jffs/usr/sbin/p910nd -b -f /dev/usb/lp0 0
la stampante continua a non funzionare, provare a togliere “-b” dalla riga. Molte stampanti richiedono inoltre l’abilitazione a UHCI e OHCI della USB1.1 (potete trovarli all’interno del pannello di ammministrazione del router sotto Services->USB).
Assicurarsi inoltre che il file /jffs/etc/init.d/p910nd contenga la riga:
DEFAULT=/jffs/etc/default/p910nd
Ciao,
potreste spiegarmi meglio il primo passo, ovvero “Collegarsi tramite ssh o telnet sul router”?
Una volta avviato il Terminale da Ubuntu cosa devo fare o scrivere?
Dopo qualche ora di ragionamenti e ricerche ho trovato la soluzione.
Per collegarsi al router avviare il Terminale di Linux quindi scrivere
Telnet indirizzo_ip_delrouter
alla richiesta del login inserire “root” (senza virgolette)
alla richiesta della password scrivere quella impostata per l’accesso dal webconfig
Se poi volete accedere all’elenco cartelle/file contenuti dentro il router, ad es. per metterci lo script io ho utilizzato WinSCP con lo stesso nome utente e password, ma penso si possa usare un qualsiasi cliente FTP.
Spero di essere stato utile…
Ringrazio ovlasking e Carlo per i suggerimenti dati qui e su altri post.
P.S. Per accedere al router con Telnet il nome utente è sempre “root” anche se lo avete modificato dal webconfig!
Una domanda:
è possibile collegare due stampanti? magari collegando alla porta USB del router un duplicatore di porte al quale sono collegati i cavi usb delle stampanti?
Io ho provato ma la stampa parte sempre sulla prima stampante, immagino perchè la porta impostata è sempre 192.168.1.1
E’ possibile ovviare a questo problema?
Ciao Carlo innanzitutto mi scuso per il ritardo con cui rispondo, ma le ferie incombevano.
La connessione di due sampanti collegate per mezzo di un duplicatore usb non l’ho mai provata, ma ho provato a collegarvi due unità storage (un hd usb e un penna usb) e tutti e due venivano viste correttamente e creato l’apposito device.
Qundi per verificare se il kernel rileva le due stampanti collegate puoi controllare se vengono creati due device impartendo il seguente comando dopo esserti collegato via ssh o telnet:
ls -l /dev/usb/
l’output restituito dovrebbe essere due linee simili alle seguenti:
crw-rw---- 1 root root 180, 0 Jan 1 1970 lp0
crw-rw---- 1 root root 180, 0 Jan 1 1970 lp1
Se il secondo device (lp1) non viene creato il kernel non ha riconosciuto la stampante.
Se in vece è tutto ok, nello script in cui hai inserito il comando p910nd inserisci una seconda riga come segue:
/jffs/usr/sbin/p910nd -b -f /dev/usb/lp1 1
In questo modo la stampante gestita dal device lp1 starà in ascolto sulla porta 9101, infatti l’ultimo parametro di p910nd indica su che porta rimanere in ascolto: 0 stà per 9100, 1 per 9101 e 2 per 9102.
A questo punto puoi installare il driver, come indicato nel posto, sul pc che dovrà stampare su la stampante stando attento a cambiare la porta da 9100 (proposta di default) a 9101.
Spero che tutto funzioni, fammi sapre.
A presto
Scusami lejubila per il ritardo del mio ringraziamento.
Purtroppo mi sono accorto solo ora della tua dettagliatissima risposta.
Non posso, attualmente metterla im atto in quanto sono modificate le esigenze di dislocazione delle stampanti e quindi ce ne sarà solo una
collegata al router Asus.
Se ci sarà l’occasione in futuro proverò il collegamento e ti farò sapere!
Intanto grazie di tutto!!!!!
[…] Asus wl-500gp v2 e dd-wrt: nas, print server e altro (seconda parte) […]