Domande? Problemi?

Iscriviti al Google group:

Stampanti

Scopo

Installare una stampante da Windows in modo che:

  • tutti i client windows possano caricare i driver trovandoli sul server,e quindi senza chiederli all’utente

  • sia possibile aggiungere la stampante dall’interno della script di logon via due differenti direttive, a seconda di quello che si vuole ottenere:

    UserPrinter:la stampante verrà resa disponibile nel profilo utente e quindi su tutte le macchine. Questa è la procedura più immediata per stampanti che debbano essere disponibili per tutti.
    PcPrinter:la stampante verrà resa disponibile su ogni macchina dopo che l ammministratore si sia loggato una volta. Questa procedura è più indicata per una stampante che debba essere disponibile a tutti ma solo in alcuni contesti: ad esempio una stampante di un singolo laboratorio

L’obiettivo viene raggiunto in alcuni step separati:

  1. Preparazione di una stampante cups di tipo raw (ovvero che non elabora i dati in arrivo ma li passa alla stampante direttamente). Questa stampante non deve essere usata da Linux direttamente!
  2. Predisposizione di samba per fare da repository dei driver windows
  3. Installazione su un client Windows della stampante e di tutti i suoi driver
  1. Caricamento sul server dei driver della stampante e configurazione della stessa (passo molto importante, vedi sotto)
  2. Configurazione del logon.conf in modo che al logon dell’utente la stampante venga aggiunta automaticamente

Setup

Il setup usato comprende un server e due client XP o Win2000. Con VirtualBox non è difficie fare in modo che il client Windows sia sulla stessa scheda di rete tap creata da netkit.

Procedura

Definizione stampanti in cups

Il primo passo è di create una stampante per il sistema cups. La cosa può avvenire via riga di comando o tramite l’interfaccia web o ancora tramite l’ammistrazione di Ubuntu.

Nota

Per alcune stampanti è importante utilizzare il filtro RAW in quanto il driver usato sarà quello dei client windows.

Per far vedere a samba le nuove stampanti aggiunte lanciamo

/etc/init.d/samba force-reload

Potremo verificare che samba veda le nostra stampanti con

smbclient -g -N -L 127.0.0.1|grep -E '^Printer'

Domain=[CUPS-DOMAIN] OS=[Unix] Server=[Samba 3.2.5]
Domain=[CUPS-DOMAIN] OS=[Unix] Server=[Samba 3.2.5]
Printer|hp1320n_raw|Hp Laserjet 1320n RAW

Configurazione di samba

Configuriamo /etc/samba/smb.conf

[global]
    ...
    printing = cups
    printcap name = cups
    load printers = yes
    browseable = yes
    ...

[printers]
    comment = All Printers
    path = /var/spool/samba
    guest ok = Yes
    printable = Yes
    browseable = No

[print$]
    comment = Printer Drivers
    path = /var/lib/samba/printers
    read only = Yes
    write list = @"Domain Admins", root, administrator
    guest ok = Yes

...
../../../_images/prn-tutta-la-rete.png
printers:questa direttiva rende disponibili le stampanti come share del dominio
load printers:impostato a yes fa sì che samba chieda l’elenco delle stampanti direttamente a cupsd. Le stampanti aggiunte in automatico erediteranno la configurazione dalla share “printers”.
print$:questa share contiene i driver che possono essere richiesti dai client. E` esattamente questa la parte che permette di evitare di dovere fornire i driver ai client.

Forziamo quindi samba a rileggere la propria configurazione

/etc/init.d/samba force-reload

Assicuriamoci in ultimo che la directory che ospiterà i nostri driver contenga le architetture da noi supportate:

/var/lib/samba/printers/
|-- IA64
|-- W32ALPHA
|-- W32MIPS
|-- W32PPC
|-- W32X86
|-- WIN40
`-- x64

e che ad administrator sia consentito scriverci

setfacl -R -m u:administrator:rwx /var/lib/samba/printers
setfacl -R -m d:u:administrator:rwx /var/lib/samba/printers

Installare da windows

l’installazione da Windows dei driver verrà fatta in modo speciale. Partendo dal browsing delle risorse di rete -> server si vedranno

  • le icone delle stampanti (NON USARE)
  • l’icona stampanti e fax (click)

E` importante non cliccare le stampanti direttamente visibili, ma le stesse dentro nella schermata raggiungibile tramite l’icone “stampanti e fax” come mostrato dalla figura.

E` anche importante non installare direttamente i driver, quindi si risponderà “NO”.

../../../_images/prn2-proprieta.png

Si proceda quindi con l’installazione (è possibile vedere tutte le manovre Installazione driver passo passo).

E` importante che si proceda con un ultimo passo: la configurazione della stampante. Questo passo è raccomandato anche se non vi interessa nessun parametro differente dallo standard, perché fa in modo che tutti i parametri vengano scritti correttamente. Il modo consigiato è di passare dalla pagina vrticale a quella orizzontale e poi nuovamente alla verticale.

Anche di questa parte nella pagina indicata sopra ci sono i dettagli.

Verifica

Ora i drivers sono stati caricati nel server:

/var/lib/samba/printers/
|-- COLOR
|   `-- HPCLJ.ICM
|-- IA64
|-- W32ALPHA
|-- W32MIPS
|-- W32PPC
|-- W32X86
|   `-- 3
|       |-- HP__CLJ1.PPD
|       |-- PS5UI.DLL
|       |-- PSCRIPT.HLP
|       |-- PSCRIPT.NTF
|       `-- PSCRIPT5.DLL
|-- WIN40
`-- x64

E` possibile verificare l’aggiunta dei driver lato server con “rpcclient”.

Verifico sul server che i driver siano stati aggiunti

srv-cups:~# rpcclient -U'administrator%isi' -c 'enumdrivers 2' 127.0.0.1 -d0

[Windows NT x86]
Printer Driver Info 2:
    Version: [3]
    Driver Name: [hp LaserJet 1320 PCL 5e]
    Architecture: [Windows NT x86]
    Driver Path: [\\127.0.0.1\print$\W32X86\3\unidrv.dll]
    Datafile: [\\127.0.0.1\print$\W32X86\3\HPC13205.GPD]
    Configfile: [\\127.0.0.1\print$\W32X86\3\hpmdp5r1.dll]

Il parametro enumdrivers determina la quantità di informazioni mostrate, si provi ad esempio a mettere 3 come argomento.

Ovviamente se lo provate su una macchina differente da quella del laboratorio netkit, la password di amministratore sarà differente.

Impostazione della stampante in logon.conf

A questo punto possiamo andare nella sezione web sulle stampanti per impostare l’installazione della stampante al mometo del logon. Come detto in precedenza, questo può avvenire per utente o per pc. La sezione che ci interessa è “Logon” -> “shares”.

../../../_images/web-printers.png

Cliccando sulla aggiunta di stampanti avremo nei due casi la possibilità di aggiungere le stampanti da un menu, vedremo solo le stampanti per cui è stato aggiunto il driver.

../../../_images/printer-menu.png

Da questo momento ogni utente vedrà direttamente le stampanti utente mentre è necessario che ‘administrator’ faccia login sui ogni macchina perché sia visibile la stampante di tipo ‘pc’.

Questo secondo tipo di stampante è più opportuna per stamanti connesse ad un luogo (un laboratorio, la biblioteca...).