Ungültiges Argument - Brother-Scanner funktioniert nach dem Upgrade nicht (brscan2-Treiber)

31

Ich habe kürzlich Ubuntu 13.10 (Saucy) aktualisiert.

Das Scannen über meinen MFC-420CN funktionierte unter Ubuntu und Linux. Mint wurde über Olivia und Oneric installiert. Sobald ich jedoch ein Upgrade durchgeführt hatte, brach der Scanvorgang ab. Ich habe eine neue Kopie von saucy installiert, um zu überprüfen, ob dies nicht nur mit dem Upgrade zu tun hat.

Auf der Brother-Website wird darauf hingewiesen, dass ab Ubuntu 11.10 nicht mehr alle brscan1-Modelle USB-Scanning unterstützen, jedoch nicht für brscan2- und brscan3-Modelle. Außerdem habe ich einige andere Beiträge gefunden , die darauf hindeuten, dass derzeit mindestens brscan4-Modelle funktionieren. Ich konnte jedoch nicht überprüfen, ob die Scanner mit brscan2 (oder anderen Tauchern außer brscan4) und Ubuntu 13.10 (aktuell 12.10 und höher) funktionieren.

Die vollständige Liste der brscan2-Scanner enthält die folgenden Verweise, um anderen bei dem Problem zu helfen:

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

Ähnliche zuvor gestellte Fragen / Probleme (aber für brscan3-Treiberhardware):


Bisher habe ich versucht:

  • Installation von Sane-Utils

  • Hinweise zur Installation von brscan2 auf der Website des Bruders, einschließlich der Verwendung des Flags dpkg -f

  • Bearbeiten von /lib/udev/rules.d/40-libsane.rules, um einzuschließen

Code:

# Brother scanners

ATTRS{idVendor}=="04f9", ENV{libsane_matched}="yes"
  • Kopieren von Dateien von lib nach 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 .
  • ia32-libs installieren und die Installation von sane-utils wiederholen
  • Entfernen des 64-Bit-Treibers brscan2 und Ersetzen durch den 32-Bit-Treiber, aber die Ergebnisse von Scanimage mit dem 32-Bit-Treiber, der für den USB- oder Netzwerkmodus eingerichtet wurde, waren weniger als vielversprechend:

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).
  • Von den 32-Bit-Windows-Treibern mit WINE, die Win2000 oder XP umwandeln, ist WINE im Jahr 2000 fast fertiggestellt.

Debuggen von 64-Bit-Treibern:

Wenn brscan2 installiert ist, kann ich simple-scan öffnen und den Scanner finden. Außerdem zeigt die Ausgabe von scanimage an, dass alles in Ordnung ist:

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

Das Scannen (auch als Root-Benutzer) funktioniert jedoch immer noch nicht.

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

xsane erzeugt einen ähnlichen Fehler:

 Failed to start scanner: Invalid argument

sane-find-scanner erzeugt einen Pipe-Fehler, der hier angezeigt wird: http://pastebin.com/tTNMyD1m. Dies scheint jedoch mit der Tatsache zusammenzuhängen, dass der Bruder den Treiber bereitstellt und nicht sane.

Ich stecke an dieser Stelle ziemlich fest, jede Hilfe wäre dankbar.

virtualxtc
quelle
Ich habe gerade diesen Link gefunden, der darauf hindeutet, dass die Ergebnisse von sane-find-scanner ignoriert werden können, und ich sollte mich auf den ungültigen Argumentfehler konzentrieren: linuxquestions.org/questions/slackware-14/…
virtualxtc
Sieh das . Außerdem können Sie hinzufügen brother-lpr-drivers-mfc9420cnundbrother-cups-wrapper-mfc9420cn
@DuminduMahawela Abgesehen von den * -dev-Paketen hatte ich alle diese "Scannertreiber" installiert.
virtualxtc
Ich habe Bruder per E-Mail um Hilfe gebeten und auf diese Frage verwiesen, falls es Updates gibt. Bruder hat mein Ticket bestätigt, aber abgesehen davon ist alles, was ich bekommen habe, tote Luft. Ich habe einen anderen Drucker-Scanner gekauft, basierend auf der Liste der vernünftigen Kompatibilitäten .
Virtualxtc
Der Abschnitt "LÖSUNG" auf dieser Seite kann helfen? bugs.launchpad.net/ubuntu/+source/xsane/+bug/478761
sabik

Antworten:

23

Nach dem Update auf 13.10 ist beim Scannen derselbe Fehler aufgetreten. Hier gibt es zwei Probleme.

  1. Der Fehler Ungültiges Argument ist kein Argumentproblem, sondern ein Schreibzugriffsproblem.
  2. Das andere Problem ist, dass der Bus und die Entwicklungsnummer aufgrund des Scanbildfehlers falsch sind.

Wie finde und behebe ich das Problem?

Installieren Sie die brscan4-Treiber von der Brother-Website

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

Überprüfen Sie, ob es funktioniert

sudo brsaneconfig4 -d

Prüfen Sie, ob der Scanner installiert ist (Scanner muss eingeschaltet sein). Und als Benutzer NICHT root ausführen

$ 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

oder

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

Mit dem folgenden Skript können Sie die Berechtigungen für den Scanner aktualisieren.

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

lsusb listet usb geräte auf

grep -i brother findet das Brother-Gerät (ich gehe davon aus, dass nur ein Brother-Gerät gleichzeitig an die USB-Geräte angeschlossen ist)

sed 's/://' | awk '{printf "/dev/bus/usb/%s/%s", $2,$4}' Hier finden Sie die Bus- und Gerätenummern

xargs -i -t sudo chmod 666 "{}" fügt dem Scanner eine Schreibberechtigung hinzu

Hier finden Sie detailliertere Informationen darüber, warum wir das getan haben, was wir oben getan haben

Um herauszufinden, wo der Bruder Scanner im Bus ist, verwenden Sie lsusb. Dies ist eines der Probleme im Scanbild. Der Bus ist 003 und das Gerät ist 002 und nicht Bus 5, dev 1 gemäß Scanbild

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

Um das Problem zu beheben, müssen Sie den Pfad verwenden, der auf der Position des Bruderscanners im lsusbBefehl basiert . In meinem Fall war es bus 003und device 002. Beachten Sie, dass Sie eine neue Nummer und / oder einen neuen Bus erhalten, wenn Sie das USB-Kabel vom Scanner trennen und wieder an das Gerät anschließen. (Die Zahl kehrt zu 2 zurück, wenn Sie den PC neu starten.)

Beispiele:

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

oder nur:

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

Scanimage Sie müssen die Meldung korrigieren, wenn Sie nicht auf den Scanner zugreifen können, um die richtige Bus- und Entwicklernummer zu erhalten, und dem Benutzer mitteilen, dass das Problem ein Schreibzugriffsproblem ist.

Brothermuss den Treibercode aktualisieren, damit globale Benutzer auf den Scanner schreiben können, dh chmod 666auf den Speicherort des Scannertreibers

Kennzeichen
quelle
Kann jemand diesen Fix bestätigen? Glücklicherweise habe ich diesen Scanner einen Monat, nachdem ich die Frage gestellt hatte, vom Tisch geworfen und musste einen neuen (SANE-kompatiblen) Scanner kaufen. Mark / Dan Die Antwort ist aufgrund verschiedener Grammatikprobleme immer noch etwas unklar. Beheben Sie diese bitte, damit ich mich beim Abstimmen wohlfühlen kann.
Virtualxtc
1
Diese Antwort sieht sehr vielversprechend aus, da die Ausgabe von lsusbund scanimage -Lverschiedene Entwickler- / Busnummern zeigt. Ich habe versucht, die Berechtigungen für die /dev/bus/usb/...Datei ohne Erfolg zu ändern . Gibt es eine andere Möglichkeit, das Betriebssystem zu veranlassen, die richtige USB-Bus- / Entwicklungsnummer für den Scanner zu ermitteln?
David Thomas
Das hat funktioniert. Nachdem xsaneich die Änderungen in der Antwort vorgenommen und hochgefahren hatte , gab es beim ersten Versuch, eine Vorschau zu erhalten, einen Fehler "Scanner konnte nicht gestartet werden". Aber ein erneuter Versuch würde funktionieren. Jetzt kann ich scannen! :)
jja
2
Ich habe es nicht behoben
Natim
1
Diese Lösung funktionierte für mich mit Lubuntu 16.04 und Brother DCP-7030. Nach dem Neustart werden jedoch alle Berechtigungen zurückgesetzt. Sieht aus wie eine Udev-Regel benötigt wird?
Xavier13
3

Fügen Sie einfach Ihren Benutzer zur Gruppe lp hinzu ...

usermod -a -G lp username

So haben Sie Schreibrechte für Ihren Scanner.

Getestet mit:

  • 14.04 LTS 64 Bit aktuell
  • Brother DCP-J315W
  • linux-brprinter-installer-2.0.0-1 wird vom Brother Support Center heruntergeladen

Die Berechtigungen für den Drucker / Scanner unter / dev / bus / usb / 001 sind:

crw-rw-r-- 1 root lp

Aus diesem Grund ist das Hinzufügen Ihres Benutzernamens zur lp-Gruppe eine Lösung.

Bellera
quelle
Wie durch das '#' angezeigt, habe ich den Befehl als root ausgeführt und trotzdem den Fehler erhalten, sodass dies definitiv nicht die Lösung für den obigen Fehler war.
virtualxtc
1
Haben Sie die Bibliotheken von / usr / lib64 nach / usr / lib kopiert (oder mit ln -s verknüpft), wie unter support.brother.com/g/s/id/linux/en/… angegeben ?
Bellera,
Willkommen bei AskUbuntu - bitte beachten Sie, dass ich Sie normalerweise für Folgendes dokumentieren würde: Wenn Sie meine Frage gelesen hätten, insbesondere das, was unter dem Teil "Bisher habe ich es versucht" steht, würden Sie wissen, dass die Antwort " Ja'. Bitte lesen Sie in Zukunft die gesamte Frage, bevor Sie antworten.
virtualxtc
2

Probieren Sie dieses Programm mit dem Namen VueScan aus. Ich habe nach dem Treiber mfc-420cn gesucht und bin auf die folgende Website gestoßen: " http://www.hamrick.com/ " Finden Sie das Stromkabel zu meinem alten Drucker, der Staub sammelt.), aber es hat gesagt, es würde eine Vielzahl von Druckern unterstützen, also dachte ich, ich sollte es posten. Wie auch immer, hoffe das hilft.

Jade
quelle
Danke, aber für den Preis dieser Software kann ich einen SANE-kompatiblen Scanner kaufen! Da diese Antwort nicht verifiziert und nur geringfügig besser ist als "einen besseren Scanner kaufen", lasse ich die Frage offen.
virtualxtc
1
Nach meiner (vor langer Zeit) Erfahrung ist VueScan ausgezeichnet. wahrscheinlich den meisten Scannertreibern weit überlegen. Seine Vorteile kommen am deutlichsten beim Scannen von Fotos und / oder bei der Feinsteuerung der Scanqualität zum Tragen. Ich glaube, Sie können es kostenlos herunterladen und ausprobieren. Der Vorteil ist, dass Sie nie wieder unter den Einschränkungen des bösen proprietären Treibers des Herstellers leiden müssen. Leider müssen Sie einen Dritten bezahlen, um den Scanner, für den Sie bereits bezahlt haben, weiter verwenden zu können. Viele Leute haben entschieden, dass sich die Kosten lohnen, da VueScan gut mit alten UND neuen Scannern funktioniert.
Tommy Trussell
Ich habe mehrere Stunden damit verbracht, jedes Update für dieses Problem (das auf den ersten Seiten von Google zu finden ist) zu testen, und VueScan ist die einzige Lösung, die bisher funktioniert hat. Ich würde keinen Brother-Scanner mit Linux kaufen.
MRule
1

Ich bin auf dasselbe Problem gestoßen , und laut https://wiki.debianforum.de/Brother_Scanner kann der Fehler "Ungültiges Argument" verursacht werden, wenn der Drucker an einen USB 3-Anschluss angeschlossen ist (gesteuert von xhci_hcd). Es hat für mich funktioniert, sobald ich auf einen USB 2-Port umgestiegen bin (gesteuert von ehci_hcd).

Florian Echtler
quelle
Ich hatte keine USB-3-Anschlüsse auf dem Computer, auf dem dieser Fehler auftrat.
virtualxtc
0

Ich benutze Ubuntu 13.10 32bit

Ich verwende MFC-7820N und muss jedes Mal, wenn ich den Kernel aktualisiere, alle Bruder-Treiber neu installieren. Die, die ich habe, sind: brmfc7840nlpr-2.0.2-1.i386, brscan2-0.2.5-1.i386, cupswrapperMFC7840N-2.0.2-1.i386

Ich überprüfe dann noch einmal, ob die Regel "ATTRS {idVendor} ==" 04f9 ", ENV {libsane_matched} =" yes "" in /lib/udev/rules.d/40-libsane.rules nicht geändert oder gelöscht wurde

Nach all dem starte ich neu.

Zuletzt werde ich dem Bruderdrucker einen eigenen USB-Host-Controller geben, nur als zusätzliche Testmaßnahme.

Kris
quelle
brmfc7840nlpr-2.0.2-1.i386 und upswrapperMFC7840N-2.0.2-1.i386 sind Druckertreiber und für diese Frage irrelevant.
Virtualxtc
Könnte eine 64-Bit-vs-32-Bit-Sache sein, aber ich hatte nie zuvor Probleme mit 64-Bit. Welchen Kernel läufst du? Kann jemand überprüfen, ob dies funktioniert?
Virtualxtc
1
Ich habe kürzlich auch ein Upgrade auf 13.10 auf einer 64-Bit-Maschine durchgeführt. Bevor mein Brother DCP-135C Scanner / Drucker funktionierte, funktioniert er jetzt nicht mehr. Außerdem kann ich die von Brother bereitgestellten alten Treiber nicht installieren, da sie im Konflikt mit brother-lpr-drivers-extra stehen. Wenn ich brother-lpr-drivers-extra deinstalliere und die von brother bereitgestellten Treiber installiere, funktioniert es immer noch nicht.
Ramiro