Discuta este tópico no fórum

Se este conteúdo te ajudou, deixe um presente!

quarta-feira, 14 de maio de 2014

OpenWRT: Compartilhando um Scanner na rede

No último artigo, mostrei como configurar uma impressora de rede no OpenWRT. É grande a comodidade de uma impressora na rede. Fazê-lo com uma impressora simples e sem custos (considerando que o roteador você já tem) é melhor ainda.

OK, impressora já está configurada e imprimindo pela rede. Mas o scanner?

Atualmente são raras as impressoras puras. Em geral elas agregam outras funções, principalmente um scanner. Neste post vamos configurar o SANE para permitir que máquinas remotas possam digitalizar documentos pela multifuncional na rede.

Instalação

Vou considerar que partimos do ponto onde já existe uma impressora USB configurada no roteador. Se não for o caso, talvez algum passo da impressora fique pendente (talvez a parte do USB). Se alguém estiver nesta situação (quer somente o scanner pela rede e não a impressão) e tiver problemas, comente ai que tentaremos diagnosticar o que falta. O mesmo vale para conectar um scanner (não impressora). Se ele funciona em um Linux (pelo SANE), deve funcionar.

Antes de começar, você vai precisar de alguns mega de espaço em disco. Se não estiver usando uma unidade USB para estender o disco, esta é a sua oportunidade.

Você vai precisar instalar os seguintes pacotes do OpenWRT:
  • sane-backends
  • sane-frontends
Ele vai baixar mais alguns por dependência. Se tudo der certo, o comando "scanimage -L" deverá mostrar sua impressora. Se for uma HP, você vai precisar do pacote hplip. Infelizmente ele traz consigo dependências não desejadas, como o cups (eu avisei que precisaria de espaço...). Após a instalação, o scanimage vai funcionar para scanners HP:
root@router:~# scanimage -L
device `hpaio:/usb/Officejet_J4660_series?serial=BR145GXXXXXXXX' is a Hewlett-Packard Officejet_J4660_series all-in-one
Agora basta colocar o SANE para escutar na rede. Você precisa colocar os endereços (cliente ou de rede) autorizados a usar seu scanner em /etc/sane.d/saned.conf. Se quiser liberar acesso para qualquer cliente da rede, basta adicionar um +:
root@router:~# echo + >>  /etc/sane.d/saned.conf
Podemos testar já neste ponto se os clientes podem alcançar o serviço. Rode o saned manualmente:
root@router:~# /usr/sbin/saned -d
Ele vai funcionar para um único comando, mas é suficiente para testar. Possivelmente ocorrerá um erro:
check_host: getaddrinfo for local hostname failed: Name or service not known
Isto ocorre porque o saned não conseguiu achar o endereço IP pelo nome do roteador. Você precisará adicionar este nome manualmente no /etc/hosts. O nome adicionado deve ser o mesmo que aparece no prompt do shell (após o "@" e antes do ":"):
root@router:~#
No meu caso, basta colocar "router" depois de localhost em /etc/hosts. Ficou assim:
127.0.0.1 localhost router
Pule para a configuração de um cliente e, se funcionar, volte para este ponto e complete a configuração do servidor.

Configuração do servidor

O sane depende de um superserver, um processo que espera por conexões e as repassa aos respectivos servidores. Isto simplifica o desenvolvimento do servidor e pode economizar memória (por poder disparar o serviço apenas quando alguém irá usá-lo).

Neste caso, a sugestão é instalar o xinetd. Instale o pacote xinetd do OpenWRT.

Atualização: para impressoras multifuncionais, o uso do SANE faz com que o módulo usblp remova a entrada /dev/usb/lp0, que é usada para impressão. Desta forma, a impressão não funciona mais após o uso do scanner (até que a impressora ou o roteador sejam reiniciados ou o cabo reconectado). Para contornar o problema, sugiro a criação deste script /usr/sbin/saned.reload_usblp:
#!/bin/sh
#
# When a SANE scanning occurs, /dev/usb/lp0 is lost.
# Reload usblp after the scanjob is finished in order to
# recreate /dev/usb/lp0 
#
/usr/sbin/saned "$@"
rmmod usblp
insmod /lib/modules/$(uname -r)/usblp.ko


Ele precisa ter permissão de execução.
Atualização 3: a nova versão do OpenWRT (14.07) não apresenta este problema. 

Você precisa criar o arquivo de configuração do SANE para o xinetd em /etc/xinetd.d/sane com este conteúdo:
service sane-port
{        
  socket_type = stream
  server = /usr/sbin/saned
  protocol = tcp
  user = root
  group = root
  wait = no  
  disable = no
}      
Basta disparar o xinetd e habilitá-lo para ligar com o roteador:
/etc/init.d/xinetd enable
/etc/init.d/xinetd start
Seu scanner deve estar funcionando!

Clientes

Vou mostrar a configuração de um cliente em Linux. Quando estiver rodando em Windows, eu completo a parte do Windows e atualizo este artigo.

Linux

Em geral, as distribuições Linux já pré-instalam o SANE. Se for seu caso, basta editar /etc/sane.d/net.conf para configurar o SANE a buscar um scanner na rede. Só colocar uma linha que aponte para seu roteador. No meu caso, eu consigo alcançá-lo por router.lan. Pode ser também o IPv4 ou IPv6 dele. Para os mais acomodados, rode como root:
echo router.lan >> /etc/sane.d/net.conf
Lembre-se de ajustar o router.lan apropriadamente. Na sequência, o scanimage vai listar o scanner da rede.
cliente-linux $ scanimage -L
device `net:router.lan:hpaio:/usb/Officejet_J4660_series?serial=BR145GXXXXXXXX' is a Hewlett-Packard Officejet_J4660_series all-in-one
Note que diferentemente do scanimage no roteador, neste existe referência de que ele está na rede e no servidor router.lan. Se isto não funcionar, existe algum problema com seu saned. Para diagnosticar o problema, se estiver rodando manualmente o "saned -d", observe as mensagens na tela. Caso já esteja rodando ele no xinetd, olhe os logs do roteador (logread).

Se estiver rodando manualmente o "saned -d", depois do scanimage, ele irá encerrar. Para utilizar o scanner, você deve completar a configuração do servidor.

Windows

No Windows temos duas alternativas. A que recomendo é o wiasane. Ele cria um scanner virtual que acessa (via SANE) o scanner remoto. As versões atuais funcionam sem problemas em todos os meus testes.

Outra é o SaneTwainPode ser o zip ou o instalador windows. Ele é composto de um driver Twain e um aplicativo independente. Infelizmente, o driver só está preparado para ambientes 32-bit. Contudo, o aplicativo funciona perfeitamente. Depois de instalado ou descompactado, você terá acesso ao programa ScanImage.exe. Ele pode ser usado diretamente como um cliente do scanner. Na primeira execução ele irá permitir a confiuguração do servidor SANE (seu roteador). Ele deve ser suficiente para quem quer digitalizar para um arquivo de imagem. Porém, não consegui fazer o driver TWAIN funcionar possivelmente por estar em um sistema 64-bit (li comentários que funcionou mesmo o desenvolvedor avisando que não iria).



É isso pessoal. Mais um ótimo uso para seu OpenWRT. Até a próxima.

PS: Ainda está na fila a divulgação automática da impressora na rede por ZeroConf.

Atualização: adicionado workaround para problema de impressão após o uso do scanner. Obrigado Felipe por ter avisado da existência do problema.

Atualização 2: driver wiasane está funcioando na versão wiasane-v0.0.0.5-16-gfab7d78-dbg. Logo deve sair uma versão oficial com o problema resolvido. Versões atuais do driver não devem apresentar o problema.

Atualização 3: versão nova do OpenWRT funciona sem o workaround!

40 comentários:

  1. Luiz, eu instalei a firmware openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-sysupgrade no meu TP-Link WDR4300 sem ter instalado nenhuma versão factory antes. Agora o roteador não funciona o reset e eu entrei no modo de reparo e fiz o comando firstboot no telnet mas quando ele faz o reboot a firmware continua lá. Eu não entendo do assunto, eu instalei a firmware pois meu chromecast não estava funcionando e pesquisando alguns usuários conseguiram usando uma firmware do OpenWRT. A pergunta é: tem como eu reverter pra firmware padrão com essa sysupdate instalada ou é melhor ver se consigo trocar o roteador na loja?

    ResponderExcluir
    Respostas
    1. Para começar, trocar o firmware deve violar a garantia ;-)
      Você deveria ter instalado a versão factory. Fico surpreso pelo roteador ter aceitado. Não sei quais serão as consequências e se vai funcionar reverter.

      Firstboot é para zerar as configurações/alterações desde a última gravação de firmware. Não vai voltar ao firmware original. Essas são as instruções para desinstalar:
      http://luizluca.blogspot.com.br/2012/05/openwrt-turbine-seu-roteador.html

      Excluir
    2. Obrigado pela resposta Luiz. Vou procurar assistência especializada na minha cidade pra ver se eles conseguem salvar. Abraço.

      Excluir
    3. no openwrt o reset funciona como um acionador de modo de segurança.. quando vc reinicia o roteador e aperta ele logo q vc liga ele aciona o sistema em um modo q nao funciona as configurações para q vc possa restaurar alguma configuração q vc fez errado

      Excluir
  2. Boa noite Luiz. Você saberia dizer se é possível instalar o scanner da Xerox WorkCentre 3045B no Sane? A impressora eu consegui instalar numa boa com o Cups, o scanner não tive sucesso.

    ResponderExcluir
    Respostas
    1. Pelo que eu vi rapidamente, deve ser o driver xerox_mfp. A xerox tbm tem um driver proprietário para linux mas ele não deve estar compilado para a arquitetura de um roteador ;-)

      Excluir
    2. Tem como me dar uma luz? Não sou intimo do Linux a esse ponto. rsrsrs

      Excluir
  3. Olá Luiz, obrigado pelos tutoriais. Consegui compartilhar a impressora HP C4280 com o roteador TL-WDR4300 e seguindo alguns outros tutoriais em inglês expandi a memória do roteador com um pendrive (na segunda USB). Por ssh consigo habilitar e desabilitar o wifi pelo 3g usando uma hospedagem remota (porque no geral deixo o wifi desabilitado). Enfim, ficou bem legal o uso do roteador. Iria instalar o transmission nele, mas fiz isto no NAS da D-Link que comprei.

    Consegui compartilhar também o scanner da mesma multifuncional acima (HP C4280) mas quando eu rodo o "scanimage" na linha de comando no terminal do OSx a imagem é gerada sem problemas (consegui instalando e configurando os pacotes deste site para o Mavericks http://www.ellert.se/twain-sane/) em breve farei acho que até um tutorial para o Mac) mas depois de fazer uma cópia a impressora não imprime mais nada (continua funcionando o scanner, mas impressão somente se eu desligar e ligar a impressora, aí começa a imprimir o que ficou pendente).

    E o problema acontece scaneando pelo SANEDroid também (app para android), só não testei ainda no Windows se o problema acontece.

    Com você acontece este problema da impressão parar de funcionar depois de usar o scanner em rede pelo sane? Estou procurando uma forma de reiniciar o sane, para ver se ele libera a impressora, ou alguma outra idéia. Mas não me aprofundei ainda, se você souber de algo.

    E outra dúvida, pelo que eu vi o sane suporta apenas salvar imagens em pnm (padrão) ou tiff (usando --format=tiff). JPG não tem como mesmo né?

    ResponderExcluir
    Respostas
    1. Não vi este problema de não imprimir após scanear. Pode ser que a impressora não recebeu o comando de "parar de scanear", por problemas internos ou do driver. Já tentou simplesmente o "cancelar operação" na impressora? Talvez funcione. Provavelmente o problema também aconteceria no Linux. Se quiser ir mais a fundo, pode testar com ela diretamente no Linux e ver se o problema acontece. Se for o caso, pode reportar para o projeto SANE.

      A imagem que ele o scanimage gera é em formatos pnm e tiff (--format=pnm|tiff). Mas dificilmente se usa diretamente o scanimage. Outras interfaces, em geral, vão ler o que o scanimage gera e oferecem para salvar como JPEG, PDF, etc.

      Excluir
    2. Felipe, você está certo. Existe problema de imprimir após scanear.
      O problema é que o dispositivo da impressora desaparece.

      root@router:~# ls /dev/usb/
      lp0
      root@router:~# scanimage >/dev/null
      root@router:~# ls /dev/usb/
      root@router:~#

      Não precisa reiniciar a impressora. Nos meus testes, apenas desconectar/reconectar o cabo.
      Por software, pode remover/adicionar o módulo usblp:

      root@router:/lib# rmmod usblp
      root@router:/lib# insmod /lib/modules/3.3.8/usblp.ko
      root@router:/lib# ls /dev/usb/
      lp0

      O problema é um conflito entre o usblp (que pouco se usa em sistemas mais complexos) e o SANE. Talvez se
      a impressão fosse com o CUPS (que não usa o usblp) não teria problemas.

      Uma vez detectado o problema, fica mais fácil localizar casos anteriores:

      https://forum.openwrt.org/viewtopic.php?id=29470
      http://tomatousb.org/forum/t-393986/printing-dilema-usblib-cups-or-usblp-p910nd

      Já criei um bug para isto.

      Também criei um workaround para o uso na rede. Funcionou perfeitamente. A ideia é recarregar o módulo após a operação do SANE
      terminar. Vou atualizar o artigo acima.

      Abs,

      Excluir
    3. Legal, não tinha visto sua resposta antes aqui. Ótimo que você postou uma solução para o problema do scanner e da impressão. Vou testar nos próximos dias e volto pra comentar, usei o OpenWrt (na verdade de forma bem limitada pois usava aquele roteador mais simples da TP-Link que não dava pra fazer muita coisa e assim não pude me aprofundar muito). Já havia tentado apertar o botão "Cancelar" na impressora após copiar alguma coisa mas não havia resolvido.

      Legal que você postou a solução no primeiro link acima e o problema vem desde 2011.

      Abs e muito obrigado.

      Excluir
    4. Funcionou aqui o workaround, demorei pra conseguir testar porque levei o roteador pra outro lugar sem impressora. Mas agora está completamente funcional com Windows 8, OSx Mavericks e no Android.
      Tive dificuldades apenas em copiar e colar o conteúdo do script saned.reload_usblp que você postou aqui no blog, e como não analisei o conteúdo do script ele não funcionou, copiando ele melhor formatado do fórum do openwrt onde você também postou foi sem problemas. Obrigado.

      Excluir
    5. Blz Felipe. Obrigado pelo aviso. O blogspot realmente modificou a formatação. Vou lutar com ele para resolver (ou editar o HTML).

      Excluir
  4. Boa tarde Luiz! Tudo beleza?

    Por favor, poderia me ajudar com uma dificuldade? Estou com dificuldade em montar permanentemente um compartilhamento NFS no fstab de um TP-LINK TL-WDR4300 com OpenWrt. Eu consigo montar manualmente, mas se o roteador reiniciar as configurações de montagem são perdidas. Eu segui a wiki http://wiki.openwrt.org/doc/howto/nfs.server?s[]=fstab de como fazer isso em um cliente NFS, mas não dá certo.

    Eu adicionei a linha:

    192.168.135.25:/Logs /mnt/storage nfs rw,async,auto 0 0

    nos arquivos /etc/fstab e etc/config/fstab para fazer teste e mesmo assim não monta o compartilhamento durante o boot do roteador.

    Tem alguma ideia de onde está o problema?

    André L. Gonzalez

    ResponderExcluir
    Respostas
    1. Olá André,

      A montagem manual (usando mount) é perdida ao reiniciar. Isto é característica dos Unix, como o Linux que é utilizado no OpenWRT.

      Pergunta: Você está usando o OpenWRT como cliente ou servidor?

      Excluir
  5. Olá Luiz,

    Você chegou a reparar alguma diferença na qualidade da imagem gerada pelo comando scanimage em relação à uma digitalização feita com a multifuncional conectada direto no PC? Conectado ao Mac (Mavericks), e rodando o comando a imagem parece lavada e perde-se um pouco de nitidez, as cores ficam bem piores que usando diretamente conectado ao computador. Isso usando 300 dpi em ambas as digitalizações, tentei várias combinações na linha de comando e sempre a imagem gerada é parecida. Percebi que o JPEG gerado diretamente pelo computador tem um perfil YCbCr e H2V2, pesquisei e me parece que isso diz respeito ao perfil de cores, enquanto que a imagem gerada pelo scanimage tem um perfil "8 bits RGB" além de um tamanho de arquivo 20x maior (imagino que seja porque apesar de colocar --compression JPEG ainda assim o arquivo final seja tiff ou pnm sem compressão). Tentei colocar --icc-profile YCbCr e dá erro dizendo que não pode abrir o perfil YCbCr ou tentando H2V2).

    Na verdade não sei quais as opções de --icc-profile para embutir no tiff gerado. Ou como criar algo parecido e se realmente é isso que está dando a grande diferença nas imagens geradas.

    Se você souber de algo ficaria muito agradecido se pudesse compartilhar.

    ResponderExcluir
    Respostas
    1. Felipe,

      scanimage é um cliente do SANE. Deve funcionar tanto para impressoras locais (se o MAC usa o SANE), como as remotas. Você deve inicialmente comparar a qualidade da imagem gerada pelo scanimage nas duas situações.

      Não sou especialista em SANE mas não deve existir diferenças entre a comunicação via roteador-USB e diretamente via USB. A rede apenas repassa os pacotes.

      Se o MacOSX usa o SANE, deve existir alguma opção, talvez por padrão, aplicada ao SANE para melhorar por padrão a qualidade, que não está sendo aplicada para o scanner na rede. Isto pode ser também no cliente de scanner que você usa. Ele não reconhece a impressora na rede?

      Excluir
  6. Sim, o uso do scanimage está tudo certo, tanto remotamente, quando conectado no pc rodo o comando e a imagem é gerada, e também rodando o comando scanimage conectado por ssh ao roteador, a diferença é conectado ao pc e usando os drivers da HP para o OSx, com este último a qualidade da cópia é bem melhor, imagino que algum comando do "scanimage -h" possa melhorar a qualidade, mas já usei quase todas as opções e nenhuma muda a qualidade, a não ser as mais óbvias de resolução e tal.

    Mas vou fazer mais uns testes no Windows também, com outros clientes no próprio OSx (phpsane, que apesar de usar o mesmo scanimage no final de tudo, apresenta algumas configurações diferentes)

    Mas no fim acho que o driver fechado da HP deve conseguir de alguma forma copiar com mais qualidade mesmo. Se eu descobrir algo volto aqui comentar.

    ResponderExcluir
  7. Muito bom seu blog Luiz, parabéns. Uma pergunta, esse workaround com o script (rodo a 12.09) é colocado no lugar de /usr/sbin/saned na linha server = , correto? Deve ser pois foi o que fiz e depois do scan o módulo é recarregado e a impressora volta a funcionar. Outra é sobre os software pra windows. O wiasane em windows >= 8 precisa desabilitar a imposição de verificação de driver, e o sanetwain funciona de boa, somente quando ele não acha o dispositivo da um erro de access violation onde pra sair dele somente via gerenciador de tarefas. Outra, tenho um MR3420 v2 novo, grudo a BB nele ou espero a versão nova? Abraço, continue o bom trabalho.

    ResponderExcluir
    Respostas
    1. Sim, mas a sugestão é usar o openwrt mais novo, sem este bug (no kernel).

      O BB está legal mas, se quiser esperar, o CC deve sair em uns meses (está em RC1). Aviso em um post quando sair.

      Excluir
  8. Esqueci de comentar, sanetwain na versão x64 do windows funciona. Confirmado.

    ResponderExcluir
  9. Olá Luiz, bom, aqui mesmo atualizando para o OpenWRT 14.07 o problema do lp0 ser perdido após um scaneamento continua. Não sei se talvez por eu ter utilizado a opção de manter as configurações do OpenWRT 12.09 e mesmo tendo que instalar vários pacotes e configurar algumas coisas novamente.

    Talvez eu tente fazer o procedimento inteiro novamente, instalando a partir do firmware original da TP-Link. Você pode só me confirmar se o problema com você foi resolvido mesmo, eu testei escaneando através do SANEDroid no Android. As impressões vão sem problemas, porém se no meio faço uma digitalização a impressora se "perde".

    ResponderExcluir
  10. Ahh, e como você fez a atualização? Foi em um roteador já com o OpenWRT, manteve as configurações? Obrigado.

    ResponderExcluir
    Respostas
    1. Felipe,

      Não tive mais o problema de perder a lp0 desde o upgrade. Se ele ainda existe para você, vai ficar bem claro nos logs. Manda aí a parte que a lp0 some. Podem ser problemas distintos e, por isto, um upgrade não resolveria.

      Quanto ao upgrade, como não vai manter os softwares, normalmente faço um backup antes, realizado uma instalação limpa e levo conf por conf para o novo ambiente. Mas isto é talvez mais do que precisa. Faço para avaliar bem o upgrade e parar os possíveis problemas aqui no blog.

      Excluir
  11. Olá Luiz Luca! Tudo bem?

    Angariando informações pelo Google sobre o SANE consegui acesso a seu site e acabei encontrando várias coisas úteis por aqui (como o repositório com HPLIP atualizado :D ).

    Estou a usar um roteador TPLINK WDR3600 juntamente com DD-WRT v24-sp2 (11/20/14) std - build 25408 (até tentaria instalar o OpenWRT, mas na minha última tentativa em um outro router ele simplesmente brickou, acabei ficando com medo do pacote.... além do mais o DDWRT é mais intuitivo).

    Segui esse tutorial para a instalação do OPKG > http://www.dd-wrt.com/phpBB2/viewtopic.php?p=777884#777884

    Agora estou com o OPKG funcionando liso no roteador.

    Porém ao instalar todas as dependências e pacotes possíveis, o "scanimage -L" retorna que não foi encontrado nenhum scanner na rede, porém o "sane-find-scanner" retorna:

    "found USB scanner (vendor=0x03f0 [Hewlett-Packard], product=0x042a [HP LaserJet Professional M1132 MFP]) at libusb:001:005"

    Ou seja, de fato minha impressora está na rede e está sendo reconhecida, porém não consigo digitalizar pois a parte responsável do SANE não identifica o hardware.

    Impressão está funcionando normalmente, default pelo ddwrt. Ou seja, o p910nd já permite eu imprimir sem nenhum adicional ou instalação a parte.

    Será que você conseguiria me ajudar a configurar essa multifuncional no meu roteador?
    Até tentaria instalar o OpenWRT mas tenho certo receio.... Preciso de uma interface intuitiva para não ficar quebrando a cabeça quando der problema. Além do mais não é apenas eu que tenho acesso ao router... então se der problema e eu não estiver por perto essa outra pessoa tem que ser capaz de conseguir manusear o sistema sem grandes problemas.

    ResponderExcluir
    Respostas
    1. Ignore o nome "Asus Hotspot", estava brincando para ver o quão personalizável seria o SSH hahha:

      root@Asus Hotspot ~ $ sane-find-scanner

      # sane-find-scanner will now attempt to detect your scanner. If the
      # result is different from what you expected, first make sure your
      # scanner is powered up and properly connected to your computer.

      # No SCSI scanners found. If you expected something different, make sure that
      # you have loaded a kernel SCSI driver for your SCSI adapter.
      # Also you need support for SCSI Generic (sg) in your operating system.
      # If using Linux, try "modprobe sg".

      found USB scanner (vendor=0x03f0 [Hewlett-Packard], product=0x042a [HP LaserJet Professional M1132 MFP]) at libusb:001:005
      # Your USB scanner was (probably) detected. It may or may not be supported by
      # SANE. Try scanimage -L and read the backend's manpage.

      # Not checking for parallel port scanners.

      # Most Scanners connected to the parallel port or other proprietary ports
      # can't be detected by this program.
      root@Asus Hotspot ~ $ sane-find-scanner

      # sane-find-scanner will now attempt to detect your scanner. If the
      # result is different from what you expected, first make sure your
      # scanner is powered up and properly connected to your computer.

      # No SCSI scanners found. If you expected something different, make sure that
      # you have loaded a kernel SCSI driver for your SCSI adapter.
      # Also you need support for SCSI Generic (sg) in your operating system.
      # If using Linux, try "modprobe sg".

      found USB scanner (vendor=0x03f0 [Hewlett-Packard], product=0x042a [HP LaserJet Professional M1132 MFP]) at libusb:001:005
      # Your USB scanner was (probably) detected. It may or may not be supported by
      # SANE. Try scanimage -L and read the backend's manpage.

      # Not checking for parallel port scanners.

      # Most Scanners connected to the parallel port or other proprietary ports
      # can't be detected by this program.
      root@Asus Hotspot ~ $ scanimage -L

      No scanners were identified. If you were expecting something different,
      check that the scanner is plugged in, turned on and detected by the
      sane-find-scanner tool (if appropriate). Please read the documentation
      which came with this software (README, FAQ, manpages).

      Excluir
    2. Diego, DD-WRT fica um pouco fora do tópico. Nunca usei para conhecer as diferenças (e podem ser elas o problema).

      Aparentemente ele encontrou o scanner, mas pela mensagem do sane-find-scanner, isto não quer dizer que tem o driver (no caso, o hplip). Se estiver com os dois funcionando (e com um hplip que suporte seu scanner) deveria aparecer no scanimage. Eu verificaria se o hplip está OK.

      Excluir
    3. Pode o CUPS ser o problema?
      Pelo que vi como a instalação do OPKG foi feito em unidade externa e tudo que é instalado fica em /opt/ o CUPS por exemplo está com problema.
      Tive que abrir o cupsd.conf e mudar tudo que e colocar /opt/ no início, e no init.d eu mudei o cupsd.conf para inicializar as coisas em /opt/ também.

      No que resultou? Bom, no início sem modificar nada quando eu ia para 10.0.0.1:631 eu recebia Refused Request. Após mudar para /opt/ começou a acessar uma página com título "Not Found - Cups 1.6.4 (ou algo assim)" e no corpo do site escrito "Not Found" em negrito. O que aprendi com isso? Que toda instalação via "opkg install nomedopacote" eu preciso acessar os arquivos de configuração e mandar inicializar em /opt/. Mas ainda estou travado do lado de fora pois ainda não consegui acesso pleno ao CUPS.

      Uma dúvida: o P910ND é um servidor de impressão, correto? Como já estou imprimindo normalmente, faz-se necessário a configuração do CUPS para o Sane funcionar?

      No hplip eu já modifiquei os arquivos conf e coloquei o /opt/ mas não senti diferença alguma.

      Excluir
    4. Se usasse meus pacotes, eu fiz um patch para que a parte do hplip para sane nao usasse o cups (ele usava para autolocalizar impressoras multifuncionais na rede).

      Provavelmente o problema é o uso do /opt. Nem tudo vai rodar desta forma. Com o OpenWRT, a expansão do disco fica transparente e não abaixo de /opt.

      Novamente, se usas dd-wrt, estás sozinho nesta empreitada.

      Excluir
    5. Este comentário foi removido pelo autor.

      Excluir
    6. OK... você me convenceu.
      Instalei o OpenWRT :D

      Uma dúvida: Como minha impressora é HP e eu quero tanto o Scanner quanto o Print Server, devo prosseguir com a instalação do CUPS?

      Ou existe algo como o P910ND para o OpenWRT?

      Excluir
    7. PS: Fiquei sabendo que o Samba gerencia as impressoras também. Acredito que seja para apresentar a impressora na rede, não é isso mesmo?

      Porque como preciso do Samba, se eu puder minimizar o uso de aplicativos, até deixaria só ele rodando. Mas o SANE eu sei que vai ser obrigatório. Agora o CUPS estou no dúvida.

      Excluir
    8. Muitas perguntas...

      Sim, só seguir as confs do artigo que terá o disco aumentado.

      Não, não instale o cups. O cups trabalha por padrão com spool, que é impraticável no roteador. Sim, existe algo como o p910nd no OpenWRT... e é chamado de p910nd. ;)
      http://luizluca.blogspot.com.br/2014/05/openwrt-compartilhando-sua-impressora.html

      Sim, o samba compartilha impressoras, mas provavelmente isto foi desabilitado no OpenWRT. Mesmo que não, não é o que você quer. Sugiro que fique com o p910nd e o sane (sem o cups). Esqueça por enquanto o CUPS no roteador.

      Excluir
    9. Este comentário foi removido pelo autor.

      Excluir
  12. Usando o sane-daemon e sane-libs + dependências da distribuição oficial Chaos Calmer, pulei para o passo HPLIP.

    Não existe nenhum compilado pronto para o Chaos Calmer, então pensei em instalar a versão do Barrier Breaker disponível no seu repositório luizluca.github.io/openwrt/14.07/ar71xx/packages/
    Instalou sem erros, ao digitar sane-find-scanner é identificado o scanner, e ao digitar scanimage -L eu recebo:

    device `hpaio:/usb/HP_LaserJet_Professional_M1132_MFP?serial=000000000SS17TR2PR1a' is a Hewlett-Packard HP_LaserJet_Professional_M1132_MFP all-in-one

    Ou seja, o HPLIP parece ter identificado minha impressora com sucesso. Porém ao usar o scanimage -T é retornado:

    scanimage: open of device hpaio:/usb/HP_LaserJet_Professional_M1132_MFP?serial=000000000SS17TR2PR1a failed: Error during device I/O

    E pelo WIA do Windows fica me pedindo credenciais para entrar, digitando todo tipo de usuário e senha (root + senha, root + sem senha, root + root....) retorna erro de comunicação, provavelmente por causa do scanimage -T

    Tela de solicitação de credenciais: http://i.imgur.com/8KkRLJZ.png
    Tela de retorno após digitar credenciais: http://i.imgur.com/QjCrTGd.png
    E agora *>* ?

    ResponderExcluir
    Respostas
    1. Agora que saquei que o SANE parece não estar sendo executado da maneira que deveria....
      root@OpenWrt:~# saned -d
      [saned] main: starting debug mode (level 2)
      [saned] saned (AF-indep+IPv6) from sane-backends 1.0.25 starting up
      [saned] do_bindings: [0] bind failed: Address already in use
      [saned] do_bindings: [1] bind failed: Address already in use
      [saned] do_bindings: couldn't bind an address. Exiting.
      [saned] FATAL ERROR; bailing out, waiting for children...
      [saned] bail_out: all children exited

      Excluir
    2. Diego, o problema da falta de pacotes foi resolvido.

      O saned -d não pode rodar em conjunto com o xinetd. Desligue o xinetd antes deste teste.

      Excluir
    3. Estou com o mesmo problema do amigo Diego acima.

      scanimage: open of device hpaio:/usb/HP_LaserJet_Professional_M1132_MFP?serial=000000000YP75F8WPR1a failed: Error during device I/O

      root@LEDE:~# /usr/sbin/saned -d
      [saned] saned (AF-indep+IPv6) from sane-backends 1.0.27 starting up
      [saned] do_bindings: [0] bind failed: Address in use
      [saned] check_host: access by remote host: ::ffff:192.168.1.2
      [saned] init: access granted to samue@::ffff:192.168.1.2
      [saned] bailing out, waiting for children...
      [saned] bail_out: all children exited



      Alguma solução? Tem como resolver esse problema?

      Excluir
  13. Luiz Olá, como vai você, eu preciso hplip e sane compilado para Kirkwood, você ser tão amável de compilá-lo? Você me faria um grande favor se você compilar e me dar uma URL para arquivos ipk. Muito Obrigado!!

    Eu tem a PogoPlug V4 Mobile com OpenWrt 15.05.1 funciona corretamente com HP Deskjet F4180

    lsusb: Bus 001 Device 002: ID 03f0:7e04 Hewlett-Packard DeskJet F4100 Printer series

    sane-find-scanner: found USB scanner (vendor=0x03f0 [HP], product=0x7e04 [Deskjet F4100 series]) at libusb:001:002

    scanimage : no scanner found...

    Obrigado!

    ResponderExcluir
    Respostas
    1. Respondido em http://luizluca-blogspot.1115460.n5.nabble.com/SANE-e-HPLIP-tp123p424.html. Tente não duplicar postagens.

      Excluir