HP LaserJet 1018

Per far funzionare la stampante con GNU/Linux c'è da impazzire un po', ad esempio il firmware non è libero ma deve essere caricato nella stampante ad ogni accensione. Provata con una Ubuntu 8.04 Hardy Heron.

Verificare con lsusb(8) che il bus USB rilevi la stampante:

Bus 001 Device 006: ID 03f0:4117 Hewlett-Packard

Installare i pacchetti:

Per scaricare il firmware da internet e installarlo nella directory giusta:

cd /usr/share/foo2zjs/firmware/
getweb 1018
arm2hpdl sihp1018.img > sihp1018.dl

Ricaricare il modulo kernel in modo che il firmware venga caricato nella stampante:

modprobe -r usblp
modprobe usblp

È udev tramite le regole /etc/udev/rules.d/11-hplj10xx.rules che provvede a caricare il firmware e a creare un link simbolico:

/dev/hplj1018 -> usb/lp0

Problemi

Quando si invia un lavoro in stampa con CUPS si possono verificare dei problemi (nessuna stampa), accompagnati da alcuni errori in /var/log/syslog:

HP_LaserJet_1018?serial=KP1AS0H: prnt/backend/hp.c 496: unable to connect hpssd socket 2207: Connection refused
HP_LaserJet_1018?serial=KP1AS0H: io/hpmud/musb.c 135: unable get_string_descriptor -1: Operation not permitted
HP_LaserJet_1018?serial=KP1AS0H: io/hpmud/musb.c 603: invalid product id string ret=-1
kernel: [ 9918.271830] usblp0: removed
kernel: [ 9918.383559] audit(1231176306.384:13): type=1502 operation="inode_permission" requested_mask="::rw"
        denied_mask="::rw" name="/dev/tty" pid=14386 profile="/usr/sbin/cupsd" namespace="default"

oppure in /var/log/messages:

kernel: [ 9918.271830] usblp0: removed

in questo caso il link simbolico /dev/hplj1018 viene rimosso. Alcune ricette suggeriscono di disabilitare AppArmor per CUPS (impostando la modalità complain, cioè solo warning), eseguendo:

aa-complain /usr/sbin/cupsd

Non ho molte notizie su AppArmor, salvo che si tratta di prodotto Novell, montato di serie su SuSE, in competizione con SELinux. Debian adotta SELinux, non si capisce cosa ci faccia AppArmor su Ubuntu.