This is an old revision of the document!
Table of Contents
HP Color LaserJet CM1312nfi MFP
Come funziona questa laser a colori multifunzione con GNU/Linux? Io l'ho provata con una Debian Squeeze.
Anzitutto alcuni dati relativi alla velocità di stampa: dopo l'accensione occorre circa un minuto prima che la stampante sia pronta, nella stampa di dieci copie di un documento a colori (una pagina PDF di 723k) la stampante ha impiegato circa 45 secondi per pagina.
Stampante
Pacchetti Debian Squeeze installati
- hplip
- hplip-gui
- hplip-cups
Dalla pagina di amministrazione web di CUPS: aggiungi stampante. La stampante viene rilevata automaticamente sulla rete locale, può essere usata tramite tre diversi protocolli:
- dnssd://HP%20Color%20LaserJet%20CM1312nfi%20MFP%20(AB5810)._pdl-datastream._tcp.local/
- dnssd://HP%20Color%20LaserJet%20CM1312nfi%20MFP%20(AB5810)._printer._tcp.local/
- socket://192.168.3.3
dnssd è un backend di comunicazione basato sul DNS Service Discovery, socket invece è una connessione TCP/IP - in genere sulla porta 9100 - tipica delle stampanti HP. Non ci dovrebbero essere differenze funzionali tra questi backend di cumunicazione, neppure con lo hp:/ che, sebbene non venga rilevato in automatico, è specfico di HP e viene preferito da hp-setup (vedi avanti). Il comando hp-check segnala come anomalia l'utilizzo di un backend diverso da hp:/.
I vari backend sono installati in /usr/lib/cups/backend/ e sono forniti dai pacchetti cups e hplip.
Tra i modelli di stampanti disponibili uno di questi dovrebbe andare bene:
- HP Color LaserJet cm1312 MFP hpijs pcl3, 3.10.6
- HP Color LaserJet cm1312 MFP pcl3, hpcups 3.10.6
- HP Color LaserJet CM1312 MFP Series Postscript
- HP Color LaserJet cm1312 MFPnfi pcl3, hpcups 3.10.6
Si è preferito l'ultimo che è quello scelto dalla procedura automatica hp-setup.
Scansione da pannello
È possibile effettuare la scansione operando sul pannello della stampante salvando l'immagine su una memory card inserita nella stessa. La memory card è condivisa in rete locale tramite protocollo CIFS (Samba/Windows), quindi dovrebbe essere possibile aprire la scansione direttamente dal computer.
In realtà con Samba c'è un problema che si manifesta con tutti i client: smbclient, Konqueror, smbnetfs, ecc. Questo il messaggio di errore con smbclient:
smbclient //192.168.3.3/memory_card -U guest%guest Domain=[WORKGROUP] OS=[threadx] Server=[NQ 4.32] smb: \> SMBecho failed. Maybe server has closed the connection
In realtà la connessione avviene, infatti tramite l'opzione -c è possibile listare il contenuto della memory card e scaricare un file. Certo, comodo un accidente!
smbclient //192.168.3.3/memory_card -U guest%guest -c 'cd HPCM1312; dir; get HP0005.jpg'
Domain=[WORKGROUP] OS=[threadx] Server=[NQ 4.32]
  .                                   D        0  Fri Nov 12 09:08:48 2010
  ..                                  D        0  Fri Nov 12 09:08:48 2010
  HP0001.jpg                          A   782923  Fri Nov 12 11:22:34 2010
  HP0002.jpg                          A   788798  Fri Nov 12 11:25:32 2010
  HP0003.jpg                          A   800136  Fri Nov 12 15:47:00 2010
  HP0004.jpg                          A   783165  Fri Nov 12 15:48:34 2010
  HP0005.jpg                          A   782811  Fri Nov 12 15:49:08 2010
                31232 blocks of size 512. 15744 blocks available
getting file \HPCM1312\HP0005.jpg of size 782811 as HP0005.jpg (615.5 KiloBytes/sec)
Con la scansione da pannello della stampante si ha un controllo molto limitato dei parametri di acquisizione, ad esempio la risoluzione massima impostabile è di 300 dpi. La velocità della scansione è buona: un'intera pagina A4 in circa 15 secondi, ma la qualità lascia molto a desiderare.
Scansione via rete (richiede software non libero)
È possibile effettuare la scansione da computer via rete utilizzando il programma sane, purtroppo in questo caso è necessario installare un plugin software non libero.
I pacchetti Debian Jessie da installare sono questi (software libero):
- hplip
- sane
- xsane
- libsane-hpaio
L'utente non privilegiato deve appartenere ai gruppi scanner e lp per poter utilizzare lo scanner.
Con il cmando hp-makeuri (dal pacchetto hplip) è possibile scoprire gli identificativi della multifunzione:
hp-makeuri 192.168.3.3 CUPS URI: hp:/net/HP_Color_LaserJet_CM1312nfi_MFP?ip=192.168.3.3 SANE URI: hpaio:/net/HP_Color_LaserJet_CM1312nfi_MFP?ip=192.168.3.3 HP Fax URI: hpfax:/net/HP_Color_LaserJet_CM1312nfi_MFP?ip=192.168.3.3
Per utilizzare il backend hpaio di sane si lancia il comando:
xsane 'hpaio:/net/HP_Color_LaserJet_CM1312nfi_MFP?ip=192.168.3.3'
Si ottiene l'errore Error during device I/O, in /var/log/syslog si scopre che manca una libreria non libera:
xsane: scan/sane/soapht.c 86: unable to load restricted library 
    /usr/share/hplip/scan/plugins/bb_soapht.so: 
    cannot open shared object file: No such file or directory
Si deve quindi procedere all'installazione del plugin software non libero; è possibile procedere in tre modi diversi.
Modo 1: esecuzione del tool hp-setup
Il comando hp-setup (fornito dal pacchetto hplip) provvede a scaricare da internet il software, lo installa e lo configura per supportare stampante, scanner, fax, ecc. La cosa brutta è che lo fa al di fuori del sistema gestione pacchetti Debian. Vedi più avanti una descrizione dettagliata.
Modo 2: esecuzione diretta dello script hplip-X.YY.Z-plugin.run
Per avere un maggior controllo si può installare il solo archivio hplip-X.YY.Z-plugin.run scaricandolo dal repository di OpenPrinting. Si deve scaricare l'esatta versione corrispondente al pacchetto hplip installato (per Debian Jessie è hplip-3.14.6-plugin.run). Si deve eseguire come root e con accesso al display grafico (display che serve solo per mostrare la licenza da accettare):
sh ./hplip-3.14.6-plugin.run
Viengono installate diversi file in alcune directory:
- /usr/share/hplip/plugin.spec
- /usr/share/hplip/scan/plugins/(- bb_marvell.so,- bb_soapht.so,- bb_soap.so)
- /usr/share/hplip/prnt/plugins/(- hbpl1.so,- hbpl1-x86_32.so,
Modo 3: estrazione e installazione manuale dei file
In questo modo si controlla esattamente quali file installare a dove, ad esempio è preferibile usare la gerarchia /usr/local/share/ invece di /usr/share/. 
Nell'archivio hplip-X.YY.Z-plugin.run vengono fornite solo le architetture i386 e amd64 (file x86_32.so e x86_64.so rispettivamente), è necessario copiare solo quelle relative al proprio sistema, in questo esempio x86_64):
# Make directories for plugin binaries. mkdir -p /usr/local/share/hplip/scan/plugins ln -s /usr/local/share/hplip/scan/plugins /usr/share/hplip/scan/ mkdir -p /usr/local/share/hplip/prnt/plugins ln -s /usr/local/share/hplip/prnt/plugins /usr/share/hplip/prnt/ # Download and unpack archive. wget http://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-3.14.6-plugin.run chmod 755 hplip-3.14.6-plugin.run mkdir hplip cd hplip ../hplip-3.14.6-plugin.run --tar xvf # Copy binaries. cp bb_marvell-x86_64.so bb_soap-x86_64.so bb_soapht-x86_64.so /usr/local/share/hplip/scan/plugins/ ln -s bb_marvell-x86_64.so /usr/local/share/hplip/scan/plugins/bb_marvell.so ln -s bb_soap-x86_64.so /usr/local/share/hplip/scan/plugins/bb_soap.so ln -s bb_soapht-x86_64.so /usr/local/share/hplip/scan/plugins/bb_soapht.so cp hbpl1-x86_64.so /usr/local/share/hplip/prnt/plugins/ ln -s hbpl1-x86_64.so /usr/local/share/hplip/prnt/plugins/hbpl1.so # Copy additional files. cp plugin.spec /usr/local/share/hplip/ ln -s /usr/local/share/hplip/plugin.spec /usr/share/hplip/plugin.spec # Create status file. cat << EOF > /var/lib/hp/hplip.state [plugin] installed = 1 eula = 1 version = 3.14.6 EOF chmod 644 /var/lib/hp/hplip.state
Per la funzione scan via rete dovrebbe essere sufficiente la sola libreria bb_soapht.so.
Finalmente si riesce ad eseguire xsane e fare una acquisizione: a 600 dpi occorre poco più di un minuto. Anche in questo caso la qualità non impressiona, soprattutto nelle zone scure si perdono molte delle sfumature.
Il programma xsane è in grado di rilevare automaticamente lo scanner hpaio - senza specificarlo sulla riga di comando - solo se questo è installato in CUPS (/etc/cups/printers.conf) nel modo in cui viene configurato da hp-setup (vedi avanti).
hp-setup
Con la procedura hp-setup (fornita dal pacchetto hplip) è possibile installare e configurare il software HPLIP per utilizzare la stampante, lo scanner ed il fax tramite i tradizionali sistemi CUPS e sane di GNU/Linux. Il tutto funziona al di fuori del meccanismo di controllo dei pacchetti Debian, vengono scaricate da internet e installate delle librerie di software non libero che servono soprattutto per la funzione scanner e fax.
La procedura modifica alcuni file di configurazione del sistema quindi deve essere eseguita con i privilegi di root.
Ecco un elenco delle directory che vengono create:
/usr/share/hplip/prnt/plugins/ /usr/share/hplip/data/firmware/ /usr/share/hplip/scan/plugins/ /usr/share/hplip/fax/plugins/ /usr/share/hplip/ui4/ /usr/share/hplip/data/plugins
Vengono creati dei file PPD in /etc/cups/ppd/ (uno per la stampante ed uno per il fax), viene aggiunta una stampante al file /etc/cups/printers.conf, vengono aggiunte delle regole udev in /etc/udev/rules.d/ (di nome 86-hpmud-hp_laserjet_*).
Questi sono i parametri impostati da hp-setup in CUPS:
- Protocollo per la stampantehp:/net/HP_Color_LaserJet_CM1312nfi_MFP?zc=NPIAB5810
- Protocollo per il fax:hpfax:/net/HP_Color_LaserJet_CM1312nfi_MFP?zc=NPIAB5810
- Driver per la stampante:HP Color LaserJet cm1312nfi MFP pcl3, hpcups 3.10.6
 Al termine della procedura (lanciata senza interfaccia grafica con 
hp-setup –interactive) viene eseguito un test che produce il seguente messaggio di errore:
/usr/lib/pymodules/python2.6/gtk-2.0/gtk/__init__.py:127:
    RuntimeWarning: PyOS_InputHook is not available for interactive use of PyGTK
Per verificare se la stampante multifunzione è configurata correttamente si può eseguire il comando:
hp-check -r
Aggiornamento firmware
L'aggiornamento del firmware si può fare solo da Windows, infatti il pacchetto è distribuito solo come eseguibile compilato.
È stato necessario disporre di una macchina Windows XP con Service Pack 3 e driver di stampa HP Universal Printing PCL6 installato (upd-pcl6-x32-5.4.0.11744.exe). Il driver di stampa si configura indicando l'indirizzo IP della stampante.
Dopo aver lanciato l'eseguibile CM1310_CM2320_MFP_Series_FW_Update-20120104.exe, la stampante viene individuata tramite il driver di stampa e il programma provvede all'upload del nuovo firmware.
Tenuta in esercizio
| Colore | Installazione | Esaurito | Pagine stampate | 
|---|---|---|---|
| Nero (prima fornitura) | 2010-11-11 | 2011-12-27 | 446 | 
| Ciano (prima fornitura) | 2010-11-11 | ||
| Magenta (prima fornitura) | 2010-11-11 | ||
| Giallo (prima fornitura) | 2010-11-11 | 
