Primeiro, instalei o xsane, programa de scanner do ambiente X-Window. Depois, baixei o driver do scanner HP Scanjet 2400c de um site do governo indiano. Instalei conforme as instruções, embora extraindo os arquivos manualmente para os lugares certos.
Mas havia um problema: o xsane só rodava como root. Rodando como usuário comum, aparecia um aviso: “Acesso ao recurso foi proibido”. Suspeitei de que fosse o novo sistema de gerenciamento de dispositivos udev. Achei algumas informações esparsas de como habilitar dispositivo de scanner no udev e, meio intuitivamente, tentei algo que deu certo.
Criei no diretório /etc/udev/rules.d/ o arquivo 45-libsane.rules com as linhas:
# Hewlet-Packard|Scanjet 2400c # Meira - dados obtidos com sane-find-scanner SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="0a01", MODE=”777″, GROUP=”scanner” LABEL="libsanerulesend"
Os dados do scanner sobre “idVendor” e “idProduct” eu obtive com o programa sane-find-scanner do pacote sane-utils, pela linha de comando.
O retorno de sane-find-scanner foi:
found USB scanner (vendor=0x03f0 [Hewlett-Packard], product=0x0a01 [hp scanjet scanner], chip=GL646_HP) at libusb:002:005
Mais parâmetros podem ser obtidos com esta linha de comando, usando-se os últimos números da linha retornada para localizar o dispositivo usb no bus:
udevadm info -a -p $(udevadm info -q path -n /dev/bus/usb/002/005)
O retorno, entre outras informações, foi:
looking at device '/devices/pci0000:00/0000:00:1d.7/usb2/2-6/2-6.4': KERNEL=="2-6.4" SUBSYSTEM=="usb" DRIVER=="usb" ATTR{configuration}=="" ATTR{bNumInterfaces}==" 1" ATTR{bConfigurationValue}=="1" ATTR{bmAttributes}=="c0" ATTR{bMaxPower}==" 48mA" ATTR{urbnum}=="17679" ATTR{idVendor}=="03f0" ATTR{idProduct}=="0a01" ATTR{bcdDevice}=="0101" ATTR{bDeviceClass}=="ff" ATTR{bDeviceSubClass}=="ff" ATTR{bDeviceProtocol}=="ff" ATTR{bNumConfigurations}=="1" ATTR{bMaxPacketSize0}=="8" ATTR{speed}=="12" ATTR{busnum}=="2" ATTR{devnum}=="5" ATTR{version}==" 1.10" ATTR{maxchild}=="0" ATTR{quirks}=="0x0" ATTR{authorized}=="1" ATTR{manufacturer}=="Hewlett-Packard" ATTR{product}=="hp scanjet scanner" ATTR{serial}=="CN5BSSR1DB"
Nas regras que criei, “Mode=’777′” é a liberação total de acesso padrão Unix. Também criei um grupo “scanner” que não existia e no meu usuário normal habilitei acesso ao scanner, pelo gerenciador de usuários e grupos do Ubuntu.
Não tive paciência de estudar udev a fundo. Não sei se fiz certo. Pra mim tudo isto é vudu, mas estes passos funcionaram comigo.
Atualização: com mais alguns passos descritos em Instalação do scanner HP Scanjet 2400 no Ubuntu 10.04 LTS, a bagaça funcionou no Ubuntu 10.10.
Provavelmente será necessário repetir estes passos a cada atualização do Sane.
Bibliografia
- MORIMOTO, Carlos. Criando regras para o udev. Guia do Hardware. Criado em: 30 jan. 2006. Acesso em 13 fev. 2010.
- SZCZYS, Myke. How to write udev rules. Hack a day. Criado em 18 set. 2009. Acesso em 13 fev. 2010.
- Instalação do scanner HP Scanjet 2400 no Ubuntu 10.04 LTS
Atualização: com Ubuntu 10.04 Lucid Lynx, tive de baixar o Sane mais recente de ftp://ftp.sane-project.org/pub/sane/sane-backends-1.0.21/ , compilar e instalar, antes de copiar os drivers indianos.
Para compilar:
$./configure –prefix=/usr –sysconfdir=/etc
$make
$sudo make install
Bibliografia
http://ubuntuforum-br.org/index.php?topic=42317.0