Argumento inválido - O scanner Brother não funciona após a atualização (driver brscan2)

31

Atualizei recentemente o Ubuntu 13.10 (Saucy).

A digitalização através do meu MFC-420CN estava funcionando no Ubuntu e Linux Mint instalado por Olivia e Oneric. No entanto, uma vez que eu atualizei a partir deles, a digitalização quebrou. Instalei uma nova cópia do atrevido para verificar se não era apenas algo relacionado à atualização.

O site da Brother notificou que todos os modelos brscan1 não suportam mais a digitalização a partir do Ubuntu 11.10, mas parece não se aplicar aos modelos brscan2 e brscan3. Além disso, encontrei vários outros posts que parecem indicar que pelo menos os modelos brscan4 estão funcionando atualmente. No entanto, não consegui verificar os scanners usando o brscan2 (ou outros mergulhadores que não o brscan4) e o ubuntu 13.10 (atualmente 12.10 e superior) estão funcionando atualmente.

Para fazer referência cruzada / ajudar outras pessoas com o problema, a lista completa dos scanners brscan2 é a seguinte:

DCP-110C DCP-115C DCP-117C DCP-120C DCP-130C DCP-135C DCP-150C DCP-153C DCP-155C DCP-310CN DCP-315CN DCP-330C DCP-340CW DCP-350C DCP-353C DCP-357C DCP- 540CN DCP-560CN DCP-7010 DCP-7020 DCP-7025 DCP-750CW DCP-770CW DCP-8060 DCP-8065DN MFC-210C MFC-215C MFC-230C MFC-235C MFC-240C MFC-260C MFC-3240C MFC-3340CN MFC -3360C MFC-410CN MFC-420CN MFC-425CN MFC-440CN MFC-465CN MFC-5440CN MFC-5460CN MFC-5840CN MFC-5860CN MFC-620CN MFC-640CW MFC-660CN MFC-665CW MFC-680CN MFC-7225N MFC-7420 MFC-7820N MFC-820CW MFC-845CW MFC-8460N MFC-8660DN MFC-8670DN MFC-885CW MFC-8860DN MFC-8870DW MFC-9420CN

Perguntas / problemas anteriores semelhantes (mas para hardware de driver brscan3):


Até agora eu tentei:

  • Instalando sane-utils

  • irections no site do irmão em relação à instalação do brscan2, incluindo o uso do sinalizador dpkg -f

  • editando /lib/udev/rules.d/40-libsane.rules para incluir

código:

# Brother scanners

ATTRS{idVendor}=="04f9", ENV{libsane_matched}="yes"
  • copiar arquivos do lib para lib64:

código:

cd /usr/lib
ln -s ../lib64/libbrscandec2.so.1.0.0 .
ln -s ../lib64/libbrcolm2.so.1.0.1 .
ln -s ../lib64/libbrcolm2.so .
ln -s ../lib64/libbrscandec2.so.1 .
ln -s ../lib64/libbrscandec2.so .
ln -s ../lib64/libbrcolm2.so.1
cd sane
ln -s ../../lib64/sane/libsane-brother2.so.1.0.7 .
ln -s ../../lib64/sane/libsane-brother2.so.1 .
ln -s ../../lib64/sane/libsane-brother2.so .
  • instalando ia32-libs e repetindo a instalação sane-utils
  • remover o driver brscan2 de 64 bits e substituí-lo pelo de 32 bits, mas os resultados da scanimage com a configuração do driver de 32 bits para o modo USB ou de rede foram menos do que promissores:

código:

# 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).
  • dos drivers do Windows de 32 bits com o WINE que exibe o Win2000 ou XP - ele quase completa em 2000.

Depurando drivers de 64 bits:

Com o brscan2 instalado, posso abrir a digitalização simples e encontrar o scanner; além disso, a saída scanimage indica que está tudo bem:

# scanimage -L
device `brother2:bus5;dev2' is a Brother DCP-350C USB scanner

Mas a digitalização (mesmo como usuário root) ainda não funciona.

> sudo scanimage >image.pnm
scanimage: open of device brother2:bus2;dev4 failed: Invalid argument

xsane produz um erro semelhante:

 Failed to start scanner: Invalid argument

O sane-find-scanner produz um erro de canal mostrado aqui: http://pastebin.com/tTNMyD1m, mas isso parece estar relacionado ao fato de o irmão estar fornecendo o driver, não de maneira sã.

Estou bem preso neste momento, qualquer ajuda seria apreciada.

virtualxtc
fonte
Acabei de encontrar este link que parece indicar que os resultados do sane-find-scanner podem ser ignorados, e devo focar apenas no erro de argumento inválido: linuxquestions.org/questions/slackware-14/…
virtualxtc
Veja isso . adicionalmente, você pode adicionar brother-lpr-drivers-mfc9420cnebrother-cups-wrapper-mfc9420cn
@DuminduMahawela, além dos pacotes * -dev, eu tinha todos esses "drivers de scanner" instalados.
Virtualxtc
Enviei um email para o irmão para obter ajuda e referenciei essa pergunta no caso de haver atualizações. O irmão reconheceu meu ingresso, mas, além disso, tudo o que consegui é ar morto. Comprei outro scanner de impressora com base na lista de compatibilidade sã .
Virtualxtc
A seção "SOLUÇÃO" desta página pode ajudar? bugs.launchpad.net/ubuntu/+source/xsane/+bug/478761
sabik

Respostas:

23

Depois de atualizar para a 13.10, recebi o mesmo erro ao digitalizar. Existem dois problemas aqui.

  1. O erro Argumento inválido não é um problema de argumento, mas é um problema de acesso de gravação.
  2. O outro problema é que o barramento e o número do desenvolvedor estão errados devido ao erro de scanimage.

Como encontrar e corrigir o problema?

Instale os drivers brscan4 no site da Brother

sudo dpkg -i brscan4-0.4.2-1.amd64.deb

Verifique se funciona

sudo brsaneconfig4 -d

Teste para verificar se o scanner está instalado (o scanner precisa estar ligado). E execute como usuário NÃO root

$ scanimage -L
device `brother4:bus5;dev1' is a Brother ADS-2000 USB scanner
$ scanimage --test
scanimage: open of device brother4:bus5;dev1 failed:
Invalid argument

ou

$ scanimage
scanimage: open of device brother4:bus5;dev1 failed:
Invalid argument

Você pode usar o seguinte script para atualizar as permissões do scanner.

lsusb | grep -i brother | sed 's/://' | awk '{printf "/dev/bus/usb/%s/%s", $2,$4}' | xargs -i -t sudo chmod 666 "{}"

lsusb lista dispositivos usb

grep -i brother encontrará o dispositivo irmão (suposição que eu fiz é que você tem apenas um dispositivo irmão conectado aos USBs por vez)

sed 's/://' | awk '{printf "/dev/bus/usb/%s/%s", $2,$4}' encontrará os números de barramento e dispositivo

xargs -i -t sudo chmod 666 "{}" adicionará permissão de gravação ao scanner

Aqui estão informações mais detalhadas sobre por que fizemos o que fizemos acima

Para descobrir onde o scanner irmão está no ônibus, use lsusb. Este é um dos problemas na imagem digitalizada. O barramento é 003 e o dispositivo é 002 e não o barramento 5, dev 1, conforme scanimage

$ lsusb
Bus 003 Device 002: ID 04f9:60a0 Brother Industries, Ltd**  
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
...

Para corrigir o problema, você precisará usar o caminho com base na localização do scanner irmão no lsusbcomando. No meu caso, foi bus 003e device 002. Observe que, se você desconectar o cabo USB do scanner e conectá-lo novamente ao dispositivo, receberá um novo número e / ou barramento. (O número volta a 2 quando você reinicia o PC)

Exemplos:

sudo cd /dev/bus/usb/003
sudo chmod 666 002

ou apenas:

sudo chmod 666 /dev/bus/usb/003/002

Scanimage é necessário corrigir a mensagem quando não puder acessar o scanner para ter o número correto de barramento e dev e também informar ao usuário que o problema é um problema de acesso de gravação.

Brotherprecisa atualizar o código do driver para que o usuário global possa gravar no scanner, ou seja, chmod 666no local do driver do scanner

Marca
fonte
Alguém pode confirmar essa correção? Felizmente, tirei este scanner da minha mesa um mês depois de postar a pergunta e tive que comprar um novo scanner (compatível com SANE). Mark / Dan, a resposta ainda não está clara devido a vários problemas gramaticais. Corrija-os para que eu possa me sentir à vontade para votar.
Virtualxtc
1
Esta resposta parece realmente promissora como a saída lsusbe scanimage -Lmostra diferentes números de dev / bus. Tentei alterar as permissões no /dev/bus/usb/...arquivo sem sucesso. Existe outra maneira de fazer com que o sistema operacional procure o número correto de barramento / dev USB para o scanner?
David Thomas
Isso funcionou. Depois de fazer as alterações na resposta e inicializar xsane, a primeira vez que tentei obter uma visualização, isso causaria um erro de "falha ao iniciar o scanner". Mas tentar novamente funcionaria. Agora eu posso digitalizar! :)
JJA
2
Ele não fixa-lo para mim
Natim
1
Esta solução funcionou para mim com o Lubuntu 16.04 e o Brother DCP-7030. No entanto, após a reinicialização, todas as permissões são redefinidas. Parece que uma regra do udev é necessária?
precisa saber é o seguinte
3

Basta adicionar seu usuário ao grupo lp ...

usermod -a -G lp username

Assim, você terá permissões de gravação para o seu scanner.

Testado com:

  • 14.04 LTS 64 bits atualizado
  • Brother DCP-J315W
  • linux-brprinter-installer-2.0.0-1 baixado do Brother Support Center

As permissões para a impressora / scanner em / dev / bus / usb / 001 são:

crw-rw-r-- 1 root lp

É por isso que adicionar seu nome de usuário ao grupo lp é uma solução.

Bellera
fonte
Conforme indicado pelo '#', eu estava executando o comando como root e ainda obtendo o erro, portanto essa definitivamente não era a solução para o erro acima.
virtualxtc
1
Você copiou (ou vinculou com ln -s) as bibliotecas de / usr / lib64 para / usr / lib como sugerido em support.brother.com/g/s/id/linux/en/… ?
Bellera
Bem-vindo ao AskUbuntu - lembre-se de que eu normalmente o documentaria -1 para isso: se você leu minha pergunta, principalmente o que está escrito na parte "até agora eu tentei", você saberia que a resposta é ' sim'. No futuro, leia a pergunta inteira antes de responder.
Virtualxtc
2

Experimente este programa chamado VueScan, eu estava procurando pelo driver mfc-420cn e me deparei com este site: " http://www.hamrick.com/ " Ainda não consegui testar isso (porque ainda tenho que encontre o cabo de alimentação da minha impressora antiga que está coletando poeira.), mas ele disse que seria compatível com uma grande variedade de impressoras, então achei que deveria publicá-la. De qualquer forma, espero que isso ajude.

Jade
fonte
Obrigado, mas pelo preço desse software, posso comprar um scanner compatível com SANE! Como essa resposta não foi verificada e apenas um pouco melhor do que "compre um scanner melhor", vou deixar a pergunta em aberto.
virtualxtc
1
Na minha experiência (há muito tempo), o VueScan é excelente; provavelmente muito superior à maioria dos drivers de scanner. Suas vantagens são mais aparentes na digitalização de fotografias e / ou no controle fino da qualidade da digitalização. Eu acredito que você pode baixar e experimentá-lo gratuitamente. A vantagem é que você nunca mais precisará sofrer com as limitações do desagradável driver proprietário do fabricante. Infelizmente, você deve pagar a terceiros para continuar usando o scanner pelo qual você já pagou. Muitas pessoas decidiram que o custo vale a pena, porque o VueScan funciona bem em scanners antigos e novos.
Tommy Trussell
Passei várias horas tentando todas as correções para esse problema (que podem ser encontradas nas primeiras páginas do Google), e o VueScan é a única solução que funcionou até agora. Eu não compraria um scanner Brother com Linux.
MRule
1

Corri para o mesmo problema e, de acordo com https://wiki.debianforum.de/Brother_Scanner, o erro "Argumento inválido" pode ser causado se a impressora estiver conectada a uma porta USB 3 (controlada por xhci_hcd). Começou a funcionar para mim assim que mudei para uma porta USB 2 (controlada por ehci_hcd).

Florian Echtler
fonte
Eu não tinha portas USB 3 no computador em que estava recebendo esse erro.
virtualxtc
0

Estou usando o Ubuntu 13.10 32bit

Eu uso o MFC-7820N e sempre que atualizo o kernel, tenho que reinstalar todos os drivers irmãos. Os que tenho são: brmfc7840nlpr-2.0.2-1.i386, brscan2-0.2.5-1.i386, cupswrapperMFC7840N-2.0.2-1.i386

Em seguida, verifiquei se a regra "ATTRS {idVendor} ==" 04f9 ", ENV {libsane_matched} =" yes "" não foi modificada ou excluída em /lib/udev/rules.d/40-libsane.rules

Depois de tudo o que eu reiniciar.

Por fim, darei à impressora irmão seu próprio controlador host USB, como uma medida extra para teste.

Kris
fonte
brmfc7840nlpr-2.0.2-1.i386 e upswrapperMFC7840N-2.0.2-1.i386 são drivers de impressora e são irrelevantes para esta pergunta.
Virtualxtc
Pode ser uma coisa de 64 bits vs 32 bits, no entanto, nunca tive problemas com 64 bits antes. Qual kernel você está executando? Alguém pode verificar se eles estão funcionando?
virtualxtc
1
Também atualizei recentemente para 13.10 em uma máquina de 64 bits. Antes do meu scanner / impressora Brother DCP-135C funcionar, agora não funciona. Também não consigo instalar os drivers antigos fornecidos pelo Brother, porque eles entram em conflito com o brother-lpr-drivers-extra. Se eu desinstalar o brother-lpr-drivers-extra e instalar os drivers fornecidos pelo irmão, ele ainda não funcionará.
ramiro