sexta-feira, 2 de abril de 2010

Instalando impressora HP Laserjet p1005 no ArchLinux


Primeiramente instale o foo2zjs. Este pacote contém o driver e o firmware para a impressora. Apesar do site oficial falar que o driver do p1005 é o foo2xqx, o pacote foo2zjs contém os drivers de toda as famílias, não se preocupe.
Esse passo a passo poderá ser adaptada para todas as impressoras que utilizam os drivers foo2* (foo2zjs, foo2lava foo2slx, foo2hiperc, foo2oak, etc.).
Uma peculariedade é o upload de um firmware para impressora. Para isso o foo2zjs conta com a ajuda do módulo usblp. Quando conecta-se a impressora ao sistema, o módulo usblp aciona um gatilho do pacote foo2zjs para fazer upload do firmware de forma automática.

Porém o gatilho está com um bug (pelo menos até a versão foo2zjs 20100329-1). Ela irá causar o erro (/var/log/everything.log):
/sbin/foo2zjs-loadfw: Missing HP LaserJet P1005 firmware file /sihpP1005.dl
/sbin/foo2zjs-loadfw: ...read foo2zjs installation instructions and run ./getweb P1005
Para contornar esse erro, edite o arquivo /sbin/foo2zjs-loadfw e faça as seguintes modificações:
ZJSFWDIR=/usr/share/foo2zjs/firmware para ZJSFW=/usr/share/foo2zjs/firmware

e

XQXFWDIR=/usr/share/foo2xqx/firmware/ para XQXFW=/usr/share/foo2xqx/firmware
A partir daqui, o upload do firmware deverá se dar automaticamente quando plugar a impressora. Você ouvirá a impressora trabalhar e a luz vermelha dela irá acender por alguns segundos (mais ou menos uns 3 a 5 seg). Se der tudo certo, em /var/log/everything.log aparecerá:
usblp0: USB Bidirectional printer dev 10 if 0 alt 0 proto 2 vid 0x03F0 pid 0x3D17
/sbin/foo2zjs-loadfw: loading HP LaserJet P1005 firmware /usr/share/foo2xqx/firmware/sihpP1005.dl to /dev/usb/lp0 ...
/sbin/foo2zjs-loadfw: ... download successful.
O upload do firmware NÃO é dado de forma definitiva, sendo que toda vez que desligar a impressora deverá haver o upload do firmware novamente.
Após isso a impressora está pronta (com firmware alternativo) para ser identificada pelo sistema através do CUPS. Se você instalou o foo2zjs, então o CUPS foi instalado por dependência.

A partir daqui você poderá instalar a impressora normalmente através do CUPS. Inicie o cups:
#/etc/rc.d/cups start
para o inicio automático, adicione cups em MODULES do /etc/rc.conf.

Você poderá instalar através da própria interface web do cups (localhost:631). Ou você poderá instalar através de um de seus frontends. No meu caso, fiz a instalação via system-config-printer-gnome.
Porém para que o CUPS detecte a impressora, o módulo usblp não poderá estar ativo. Por isso deveremos retirar o módulo usblp através do comando:
#modprobe -r usblp
Esse bug ainda não foi resolvido (CUPS 1.4.3), por isso, toda vez que conectarmos a impressora deveremos rodar esse comando. É um jogo de gato e rato, o foo2zjs precisa do usblp para subir o firmware para a impressora e o CUPS não detecta as impressoras com o módulo usblp ativo. Existem alguns workarounds (leia-se gambiarras) pela Internet, porém isso vai depender muito de seu agrado. Vou me limitar a ter que fazer esse comando manualmente.

Execute system-config-printer, e abrirá a tela de configuração de impressoras:


Ctrl+n para instalar uma nova impressora. Digite seu pass de root (para a devida gravação das configurações) e depois de um tempo a impressora deverá aparecer:


Só ir em próximo e aplicar. A impressora deverá ser mostrada nas configurações:

Nenhum comentário:

Postar um comentário