Partindo do princípio de que:
- A impressora está devidamente configurada e funcional (pois imprime)
- A impressora está conectada via cabo usb
Se não for possível digitalizar documentos, pode ser que o driver não tenha sido carregado automaticamente pelo subsistema udev quando o cabo usb foi conectado ao computador. Então:
I - vamos ver o modelo da impressora rodando o lsusb
lsusb
Bus 002 Device 003: ID 03f0:7711 HP, Inc Deskjet F4400 series
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 006: ID 10c4:8108 Silicon Labs USB OPTICAL MOUSE
Bus 001 Device 005: ID 1a2c:2c27 China Resource Semico Co., Ltd USB Keyboard
Bus 001 Device 004: ID 214b:7250 Huasheng Electronics USB2.0 HUB
Bus 001 Device 003: ID 5986:053a Acer, Inc HD Webcam
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
o que nos interessa é a linha:
Bus 002 Device 003: ID 03f0:7711 HP, Inc Deskjet F4400 series
dela extraímos o idVendor e idProduct da
impressora, necessário para configurar o UDEV, respectivamente idVendor=03f0 e idProduct=7711
II - encontrar o arquivo a ser modificado
o passo a seguir é exemplificativo porque pode variar dependendo da distribuição.
Aqui estou usando um Bodhi Linux, que tem como init system o SystemD. Em outras distribuições o arquivo pode estar em outro lugar, cabe a você descobrir onde.
Consultado a manpage do udev eu sei que o arquivo está em /lib/udev/rules.d
man udev
Vou modificar um arquivo de regra udev para permitir reconhecer o dispositivo
impressora que está conectado via usb
Para encontrar o arquivo com a regra que precisa ser ser editado basta:
ls *sane*
60-libsane1.rules 99-libsane1.rules
Devem ser encontrados dois arquivos. Em outra distribuição pode ser que o nome seja diferente. Isso não importa!
III - modificando
Vou inserir a seguinte linha (exemplificativa) já adaptada com o resultado retornado do comando lsusb. É importante notar que existe "=" e "==" e é necessário não errar neste ponto
ATTRS{vendor}=="03f0", ATTRS{idProduct}=="7711",MODE="0664",GROUP="scanner",ENV{libsane_matched}="yes"
eu gosto de pensar nesta linha como um comando:
IF (ATTRS{vendor}=="03f0"){
IF (ATTRS{idProduct}=="7711"){
MODE="0664"
GROUP="scanner"
ENV{libsane_matched}="yes"
}
Acho que assim fica fácil de entender o que está acontecendo e adaptar, se necessário.
Importante lembrar que o comando faz referência ao grupo scanner, que deve existir. Na minha máquina está
cat /etc/group | grep scanner
scanner:x:135:saned
Feita a modificação no arquivo
/lib/udev/rules.d/60-libsane1.rules, reinicie a máquina para ver se consegue efetuar a digitalização.
Se ainda assim não conseguir digitalizar, pode ser necessário verificar se os serviços relacionados ao sane estão em execução ou os logs de erro no dmesg
A técnica usada deve servir para qualquer dispositivo usb conectado ao computador que esteja sendo reconhecido mas não esteja funcionando completamente (excluindo dispositivos defeituosos, é claro!)
Nenhum comentário foi encontrado.