====== 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 [[http://www.dns-sd.org/|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 * **HP Color LaserJet cm1312nfi MFP hpijs pcl3, 3.18.12 (color, 2-sided printing)** 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 ==== Installazione del plugin non libero ==== Si deve quindi procedere all'installazione del **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 [[http://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/|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 Vengono 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 stampante **''hp:/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''** FIXME 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 ^ Progressivo ^ | Nero (prima fornitura) | 2010-11-11 | 2011-12-27 | 446 | 446 | | Ciano (prima fornitura) | 2010-11-11 | | | | | Magenta (prima fornitura) | 2010-11-11 | | | | | Giallo (prima fornitura) | 2010-11-11 | | | | | Ciano | 2012-06-29 | 2016-11-15 | 438 | 2994 | | Magenta | 2012-06-29 | 2016-11-15 | 438 | 2994 | | Giallo | 2013-05-05 | | | | | Nero | 2015-05-21 | | | | | Ciano | 2016-11-15 | | | | | Magenta | 2016-11-15 | | | |