Argument non valide - Le scanner Brother ne fonctionne pas après la mise à niveau (pilote brscan2)

31

J'ai récemment mis à jour Ubuntu 13.10 (Saucy).

La numérisation via mon MFC-420CN fonctionnait dans les installations Ubuntu et Linux Mint via Olivia et Oneric. Cependant, une fois la mise à niveau effectuée, la numérisation s'est interrompue. J'ai installé une nouvelle copie de saucy pour vérifier que ce n'était pas seulement quelque chose à voir avec la mise à niveau.

Le site Web de Brother indique que tous les modèles brscan1 ne prennent plus en charge la numérisation USB à partir d'Ubuntu 11.10, mais il ne semble pas s'appliquer aux modèles brscan2 et brscan3. De plus, j'ai trouvé plusieurs autres articles qui semblent indiquer qu'au moins les modèles brscan4 fonctionnent actuellement. Cependant, je n'ai pas pu vérifier que les scanners utilisant brscan2 (ou d'autres plongeurs autres que brscan4) et ubuntu 13.10 (en fait 12.10 et plus) fonctionnent actuellement.

Pour les références croisées / pour aider les autres avec le problème, la liste complète des scanners brscan2 est la suivante:

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-680C MFC-7225N MFC-7420 MFC-7820N MFC-820CW MFC-845CW MFC-8460N MFC-8660DN MFC-8670DN MFC-885CW MFC-8860DN MFC-8870DW MFC-9420CN

Questions / problèmes similaires précédemment posés (mais pour le matériel du pilote brscan3):


Jusqu'ici j'ai essayé:

  • Installer des sane-utils

  • irections sur le site Web de Brother concernant l'installation de brscan2, y compris l'utilisation de l'indicateur dpkg -f

  • modification de /lib/udev/rules.d/40-libsane.rules pour inclure

code:

# Brother scanners

ATTRS{idVendor}=="04f9", ENV{libsane_matched}="yes"
  • copie de fichiers de lib à lib64:

code:

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 .
  • installer ia32-libs et répéter l'installation de sane-utils
  • supprimer le pilote brscan2 64 bits et le remplacer par le pilote 32 bits, mais les résultats de scanimage avec la configuration du pilote 32 bits pour le mode usb ou réseau étaient moins que prometteurs:

code:

# 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).
  • des pilotes Windows 32 bits avec WINE eumlating Win2000 ou XP - il se termine presque en 2000.

Débogage des pilotes 64 bits:

Avec brscan2 installé, je peux ouvrir simple-scan et trouver le scanner; de plus, la sortie scanimage indique que tout va bien:

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

Mais l'analyse (même en tant qu'utilisateur root) ne fonctionne toujours pas.

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

xsane produit une erreur similaire:

 Failed to start scanner: Invalid argument

sane-find-scanner produit une erreur de canal montrée ici: http://pastebin.com/tTNMyD1m mais cela semble lié au fait que frère fournit le pilote, pas sain d'esprit.

Je suis assez coincé à ce stade, toute aide serait appréciée.

virtualxtc
la source
Je viens de trouver ce lien qui semble indiquer que les résultats de sane-find-scanner peuvent être ignorés, et je devrais me concentrer sur l'erreur d'argument non valide: linuxquestions.org/questions/slackware-14/…
virtualxtc
Regardez ça . en plus, vous pouvez ajouter brother-lpr-drivers-mfc9420cnetbrother-cups-wrapper-mfc9420cn
@DuminduMahawela à part les paquets * -dev, j'avais tous ces "pilotes de scanner" installés.
virtualxtc
J'ai envoyé un courriel à frère pour obtenir de l'aide et j'ai référencé cette question au cas où il y aurait des mises à jour. Frère a reconnu mon billet, mais à part ça, je n'ai que de l'air mort. J'ai acheté une autre imprimante-scanner basée sur la liste de compatibilité saine .
virtualxtc
La section "SOLUTION" de cette page peut vous aider? bugs.launchpad.net/ubuntu/+source/xsane/+bug/478761
sabik

Réponses:

23

Après avoir mis à jour vers 13.10, j'ai eu la même erreur lors de la numérisation. Ici, nous avons deux problèmes.

  1. L'erreur Argument non valide n'est pas un problème d'argument, mais un problème d'accès en écriture.
  2. L'autre problème est que le bus et le numéro de dev sont erronés à cause de l'erreur scanimage.

Comment trouver et résoudre le problème?

Installez les pilotes brscan4 à partir du site Web Brother

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

Vérifiez si cela fonctionne

sudo brsaneconfig4 -d

Testez pour voir si le scanner est installé (le scanner doit être allumé). Et exécuter en tant qu'utilisateur PAS 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

Vous pouvez utiliser le script suivant pour mettre à jour les autorisations du scanner.

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

lsusb répertorie les périphériques USB

grep -i brother trouvera l'appareil frère (l'hypothèse que j'ai faite est que vous n'avez qu'un seul appareil frère connecté aux USB à la fois)

sed 's/://' | awk '{printf "/dev/bus/usb/%s/%s", $2,$4}' trouvera les numéros de bus et d'appareils

xargs -i -t sudo chmod 666 "{}" ajoutera une autorisation d'écriture au scanner

Voici des informations plus détaillées sur les raisons pour lesquelles nous avons fait ce que nous avons fait ci-dessus

Pour savoir où se trouve le scanner frère dans le bus, utilisez lsusb. C'est l'un des problèmes de l'image de numérisation. Le bus est 003 et le périphérique est 002 et non le bus 5, dev 1 selon l'image de balayage

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

Pour résoudre le problème, vous devrez utiliser le chemin d'accès en fonction de l'emplacement du scanner frère dans la lsusbcommande. Dans mon cas, c'était bus 003et device 002. Notez que si vous débranchez le câble USB du scanner et le rebranchez dans l'appareil, vous obtiendrez un nouveau numéro et / ou bus. (Le nombre revient à 2 lorsque vous redémarrez le PC)

Exemples:

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

ou juste:

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

Scanimage besoin de corriger le message quand il ne peut pas accéder au scanner pour avoir le bon bus et le bon numéro de dev et aussi dire à l'utilisateur que le problème est un problème d'accès en écriture.

Brotherdoit mettre à jour le code du pilote afin que l'utilisateur global puisse écrire sur le scanner, c'est- chmod 666à- dire à l'emplacement du pilote du scanner

marque
la source
Quelqu'un peut-il confirmer ce correctif? Heureusement, j'ai fait tomber ce scanner de mon bureau un mois après avoir posté la question et j'ai dû acheter un nouveau scanner (compatible SANE). Mark / Dan la réponse est encore un peu floue en raison de divers problèmes de grammaire, veuillez les corriger afin que je puisse me sentir à l'aise pour voter.
virtualxtc
1
Cette réponse semble vraiment prometteuse car la sortie de lsusbet scanimage -Lmontre différents numéros de dev / bus. J'ai essayé de changer les autorisations sur le /dev/bus/usb/...fichier en vain. Existe-t-il un autre moyen pour que le système d'exploitation examine le bon numéro de bus / dev USB pour le scanner?
David Thomas
Cela a fonctionné. Après avoir apporté les modifications dans la réponse et démarré xsane, la première fois que j'essayais d'acquérir un aperçu, cela me donnerait une erreur "scanner n'a pas pu démarrer". Mais réessayer fonctionnerait. Maintenant je peux scanner! :)
jja
2
Il ne l'a pas corrigé pour moi
Natim
1
Cette solution a fonctionné pour moi avec Lubuntu 16.04 et Brother DCP-7030. Cependant, après le redémarrage, toutes les autorisations sont réinitialisées. On dirait qu'une règle udev est nécessaire?
Xavier13
3

Ajoutez simplement votre utilisateur au groupe lp ...

usermod -a -G lp username

De cette façon, vous aurez des autorisations d'écriture pour votre scanner.

Testé avec:

  • 14.04 LTS 64 bits à jour
  • Brother DCP-J315W
  • linux-brprinter-installer-2.0.0-1 téléchargé depuis Brother Support Center

Les autorisations pour l'imprimante / le scanner dans / dev / bus / usb / 001 sont:

crw-rw-r-- 1 root lp

C'est pour cela que l'ajout de votre nom d'utilisateur au groupe lp est une solution.

Bellera
la source
Comme indiqué par le «#», j'exécutais la commande en tant que root et obtenais toujours l'erreur, donc ce n'était certainement pas la solution à l'erreur ci-dessus.
virtualxtc
1
Avez-vous copié (ou lié avec ln -s) les bibliothèques de / usr / lib64 vers / usr / lib comme suggéré sur support.brother.com/g/s/id/linux/en/… ?
Bellera
Bienvenue sur AskUbuntu - sachez que je vous documenterais normalement -1 pour cela: si vous aviez lu ma question, en particulier ce qui est écrit sous la partie "jusqu'à présent, j'ai essayé", vous sauriez que la réponse est ' Oui'. À l'avenir, veuillez lire l'intégralité de la question avant de répondre.
virtualxtc
2

Essayez ce programme appelé VueScan, je cherchais le pilote mfc-420cn et je suis tombé sur ce site: " http://www.hamrick.com/ " Je n'ai pas pu le tester cependant (car je n'ai pas encore trouver le câble d'alimentation de mon ancienne imprimante qui a collecté de la poussière.), mais il a dit qu'il prendrait en charge une grande variété d'imprimantes, alors j'ai pensé que je devrais le poster. Quoi qu'il en soit, j'espère que cela vous aidera.

Jade
la source
Merci, mais pour le prix de ce logiciel, je peux acheter un scanner compatible SANE! Comme cette réponse n'est pas vérifiée et n'est que légèrement meilleure que "acheter un meilleur scanner", je vais laisser la question ouverte.
virtualxtc
1
Dans mon expérience (il y a longtemps), VueScan est excellent; probablement bien supérieur à la plupart des pilotes de scanner. Ses avantages sont les plus évidents pour la numérisation de photographies et / ou pour un contrôle précis de la qualité de numérisation. Je pense que vous pouvez le télécharger et l'essayer gratuitement. L'avantage est que vous n'aurez plus jamais à souffrir des limitations du méchant pilote propriétaire du fabricant. Malheureusement, vous devez payer un tiers pour continuer à utiliser le scanner que vous avez déjà payé. Beaucoup de gens ont décidé que le coût en valait la peine, car VueScan fonctionne bien sur les anciens et les nouveaux scanners.
Tommy Trussell
J'ai passé plusieurs heures à essayer tous les correctifs pour ce problème (qui peuvent être trouvés sur les premières pages de Google), et VueScan est la seule solution qui a fonctionné jusqu'à présent. Je n'achèterais pas un scanner Brother avec Linux.
MRule
1

J'ai rencontré le même problème et, selon https://wiki.debianforum.de/Brother_Scanner, l'erreur "Argument non valide" peut être provoquée si l'imprimante est connectée à un port USB 3 (contrôlé par xhci_hcd). Il a commencé à fonctionner pour moi dès que je suis passé à un port USB 2 (contrôlé par ehci_hcd).

Florian Echtler
la source
Je n'avais pas de ports USB 3 sur l'ordinateur sur lequel j'obtenais cette erreur.
virtualxtc
0

J'utilise Ubuntu 13.10 32bit

J'utilise le MFC-7820N et chaque fois que je mets à niveau le noyau, je dois réinstaller tous les pilotes Brother. Ceux que j'ai sont: brmfc7840nlpr-2.0.2-1.i386, brscan2-0.2.5-1.i386, cupswrapperMFC7840N-2.0.2-1.i386

Je vérifie ensuite que la règle "ATTRS {idVendor} ==" 04f9 ", ENV {libsane_matched} =" yes "" n'a pas été modifiée ou supprimée dans /lib/udev/rules.d/40-libsane.rules

Après tout ça, je redémarre.

Enfin, je donnerai à l'imprimante frère son propre contrôleur hôte USB, juste comme mesure supplémentaire pour les tests.

Kris
la source
brmfc7840nlpr-2.0.2-1.i386 et upswrapperMFC7840N-2.0.2-1.i386 sont des pilotes d'imprimante et ne sont pas pertinents pour cette question.
virtualxtc
Cela pourrait être une chose 64 bits vs 32 bits, cependant, je n'ai jamais eu de problème avec 64 bits auparavant. Quel noyau utilisez-vous? Quelqu'un d'autre peut-il vérifier qu'il fonctionne correctement?
virtualxtc
1
J'ai également récemment mis à niveau vers 13.10 sur une machine 64 bits. Avant mon scanner / imprimante Brother DCP-135C fonctionnait, maintenant il ne fonctionne pas. De plus, je ne peux pas installer les anciens pilotes fournis par Brother car ils sont en conflit avec brother-lpr-drivers-extra. Si je désinstalle brother-lpr-drivers-extra et installe les pilotes fournis par brother, cela ne fonctionne toujours pas.
ramiro