Nieprawidłowy argument - skaner Brother nie działa po aktualizacji (sterownik brscan2)

31

Niedawno zaktualizowałem system Ubuntu 13.10 (Saucy).

Skanowanie za pomocą mojego MFC-420CN działało w Ubuntu, a Linux Mint instaluje się przez Olivię i Oneric. Jednak po uaktualnieniu z nich skanowanie się zepsuło. Zainstalowałem nową kopię pyskaty, aby sprawdzić, czy nie chodziło tylko o aktualizację.

Na stronie internetowej Brother widnieje informacja, że ​​wszystkie modele brscan1 nie obsługują skanowania USB od wersji Ubuntu 11.10, ale wydaje się, że nie dotyczy to modeli brscan2 i brscan3. Ponadto znalazłem kilka innych postów, które wydają się wskazywać, że przynajmniej modele brscan4 działają obecnie. Jednak nie byłem w stanie zweryfikować skanerów używających brscan2 (lub innych nurków innych niż brscan4) i Ubuntu 13.10 (w rzeczywistości 12.10 i nowszych) obecnie działają.

Pełna lista skanerów brscan2 zawiera następujące odniesienia:

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

Podobne wcześniej zadawane pytania / problemy (ale dla sprzętu sterownika brscan3):


Do tej pory próbowałem:

  • Instalowanie sane-utils

  • poprawki na stronie internetowej brata dotyczące instalacji brscan2, w tym użycie flagi dpkg -f

  • edycja /lib/udev/rules.d/40-libsane.rules w celu włączenia

kod:

# Brother scanners

ATTRS{idVendor}=="04f9", ENV{libsane_matched}="yes"
  • kopiowanie plików z lib do lib64:

kod:

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 .
  • instalowanie ia32-libs i powtarzanie instalacji sane-utils
  • usunięcie 64-bitowego sterownika brscan2 i zastąpienie go 32-bitowym, ale wyniki scanimage z 32-bitowym sterownikiem dla trybu USB lub sieciowego były mniej niż obiecujące:

kod:

# 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).
  • 32-bitowych sterowników Windows z WINE eumlating Win2000 lub XP - prawie kończy się w 2000 roku.

Debugowanie sterowników 64-bitowych:

Po zainstalowaniu brscan2 mogę otworzyć prosty skan i znaleźć skaner; co więcej, wynik scanimage wskazuje, że wszystko jest w porządku:

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

Ale skanowanie (nawet jako użytkownik root) nadal nie działa.

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

xsane powoduje podobny błąd:

 Failed to start scanner: Invalid argument

sane-find-scanner produkuje błąd potoku pokazany tutaj: http://pastebin.com/tTNMyD1m, ale wydaje się, że jest to związane z faktem, że brat zapewnia sterownik, a nie rozsądny.

Utknąłem w tym momencie, każda pomoc byłaby mile widziana.

virtualxtc
źródło
Właśnie znalazłem ten link, który wydaje się wskazywać, że wyniki sane-find-scanner mogą zostać zignorowane, i powinienem skupić się na błędnym błędzie argumentu: linuxquestions.org/questions/slackware-14/…
virtualxtc
Zobacz to . dodatkowo możesz dodać brother-lpr-drivers-mfc9420cnibrother-cups-wrapper-mfc9420cn
@DuminduMahawela oprócz pakietów * -dev miałem zainstalowane wszystkie te „sterowniki skanera”.
virtualxtc
Wysłałem e-mail do brata, by uzyskać pomoc, i odniosłem się do tego pytania, na wypadek, gdyby pojawiły się jakieś aktualizacje. Brat potwierdził mój bilet, ale poza tym wszystko, co dostałem, to martwe powietrze. Kupiłem inny skaner do drukarki na podstawie rozsądnej listy kompatybilności .
virtualxtc
Sekcja „ROZWIĄZANIE” na tej stronie może pomóc? bugs.launchpad.net/ubuntu/+source/xsane/+bug/478761
sabik

Odpowiedzi:

23

Po aktualizacji do 13.10 otrzymałem ten sam błąd podczas skanowania. Są tutaj dwa problemy.

  1. Błąd Nieprawidłowy argument nie stanowi problemu z argumentem, ale jest problemem z dostępem do zapisu.
  2. Innym problemem jest to, że numer magistrali i dev są błędne w wyniku błędu skanowania.

Jak znaleźć i naprawić problem?

Zainstaluj sterowniki brscan4 ze strony internetowej brata

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

Sprawdź, czy to działa

sudo brsaneconfig4 -d

Sprawdź, czy skaner jest zainstalowany (skaner musi być włączony). I działaj jako użytkownik NIE 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

lub

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

Możesz użyć następującego skryptu, aby zaktualizować uprawnienia do skanera.

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

lsusb wyświetla listę urządzeń USB

grep -i brother znajdzie urządzenie Brother (założyłem, że masz tylko jedno urządzenie Brother podłączone do USB na raz)

sed 's/://' | awk '{printf "/dev/bus/usb/%s/%s", $2,$4}' znajdzie numery magistrali i urządzeń

xargs -i -t sudo chmod 666 "{}" doda uprawnienia do zapisu do skanera

Oto bardziej szczegółowe informacje o tym, dlaczego zrobiliśmy to, co zrobiliśmy powyżej

Aby dowiedzieć się, gdzie znajduje się skaner Brother, skorzystaj z magistrali lsusb. Jest to jeden z problemów w scanimage. Magistrala to 003, a urządzenie to 002, a nie magistrala 5, dev 1 według 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
...

Aby rozwiązać problem, musisz użyć ścieżki opartej na lokalizacji skanera Brother w lsusbpoleceniu. W moim przypadku było bus 003i device 002. Pamiętaj, że jeśli odłączysz kabel USB do skanera i włożysz go z powrotem do urządzenia, otrzymasz nowy numer i / lub magistralę. (Liczba powraca do 2 po ponownym uruchomieniu komputera)

Przykłady:

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

Lub tylko:

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

Scanimage trzeba naprawić komunikat, gdy nie może on uzyskać dostępu do skanera, aby mieć właściwą magistralę i numer programisty, a także poinformować użytkownika, że ​​problem dotyczy problemu z dostępem do zapisu.

Brothermusi zaktualizować kod sterownika, aby użytkownik globalny mógł pisać do skanera, tj. chmod 666do lokalizacji sterownika skanera

znak
źródło
Czy ktoś może potwierdzić tę poprawkę? Na szczęście zrzuciłem ten skaner z biurka miesiąc po opublikowaniu pytania i musiałem kupić nowy skaner (zgodny z SANE). Mark / Dan odpowiedź jest nadal nieco niejasna z powodu różnych problemów gramatycznych, proszę je naprawić, aby móc spokojnie głosować.
virtualxtc
1
Ta odpowiedź wygląda naprawdę obiecująco, ponieważ dane wyjściowe lsusbi scanimage -Lpokazują różne numery urządzeń / magistrali. Próbowałem zmienić uprawnienia do /dev/bus/usb/...pliku bezskutecznie. Czy istnieje inny sposób, aby system operacyjny sprawdził poprawną numer magistrali / dev urządzenia dla skanera?
David Thomas
To zadziałało. Po wprowadzeniu zmian w odpowiedzi i uruchomieniu komputera xsane, przy pierwszej próbie uzyskania podglądu pojawił się błąd „nie można uruchomić skanera”. Ale ponowna próba zadziałałaby. Teraz mogę skanować! :)
jja,
2
Nie naprawiło mnie to
Natim,
1
To rozwiązanie działało dla mnie z Lubuntu 16.04 i Brother DCP-7030. Jednak po ponownym uruchomieniu wszystkie uprawnienia są resetowane. Wygląda na to, że potrzebna jest reguła udev?
Xavier13
3

Wystarczy dodać użytkownika do grupy lp ...

usermod -a -G lp username

W ten sposób będziesz mieć uprawnienia do zapisu dla skanera.

Testowane z:

  • 14.04 LTS 64-bit na bieżąco
  • Brother DCP-J315W
  • linux-brprinter-installer-2.0.0-1 pobrany z Brother Support Center

Uprawnienia do drukarki / skanera w / dev / bus / usb / 001 to:

crw-rw-r-- 1 root lp

Właśnie dlatego dodanie twojej nazwy użytkownika do grupy LP jest rozwiązaniem.

Bellera
źródło
Jak wskazano przez „#”, uruchomiłem polecenie jako root i nadal otrzymuję błąd, więc zdecydowanie nie było to rozwiązanie powyższego błędu.
virtualxtc
1
Czy skopiowałeś (lub powiązałeś z ln -s) biblioteki z / usr / lib64 do / usr / lib, jak sugerowano na support.brother.com/g/s/id/linux/en/… ?
Bellera,
Witaj w AskUbuntu - pamiętaj, że normalnie doceniam cię -1 za to: Jeśli przeczytałeś moje pytanie, a zwłaszcza to, co napisano w części „Jak dotąd próbowałem”, wiedziałbyś, że odpowiedź brzmi „ tak'. W przyszłości zapoznaj się z całym pytaniem przed udzieleniem odpowiedzi.
virtualxtc
2

Wypróbuj ten program o nazwie VueScan, szukałem sterownika mfc-420cn i wpadłem na tę stronę internetową: „ http://www.hamrick.com/ ” Nie byłem jednak w stanie tego przetestować (ponieważ wciąż jeszcze nie znajdź kabel zasilający do mojej starej drukarki, która zbiera kurz.), ale powiedziałem, że będzie obsługiwał szeroką gamę drukarek, więc pomyślałem, że powinienem to opublikować. W każdym razie mam nadzieję, że to pomoże.

Jadeit
źródło
Dzięki, ale za cenę tego oprogramowania mogę kupić skaner zgodny z SANE! Ponieważ ta odpowiedź jest niezweryfikowana i tylko nieco lepsza niż „kup lepszy skaner”, pozostawię pytanie otwarte.
virtualxtc
1
Z mojego (dawno) doświadczenia VueScan jest doskonały; prawdopodobnie znacznie lepszy od większości sterowników skanerów. Jego zalety są najbardziej widoczne w przypadku skanowania zdjęć i / lub dokładnej kontroli jakości skanowania. Wierzę, że możesz pobrać i wypróbować za darmo. Zaletą jest to, że nigdy więcej nie będziesz musiał cierpieć z powodu ograniczeń paskudnego, zastrzeżonego sterownika producenta. Niestety musisz zapłacić stronie trzeciej, aby nadal korzystać ze skanera, za który już zapłaciłeś. Wielu ludzi uznało, że koszt jest opłacalny, ponieważ VueScan działa dobrze na starych ORAZ nowych skanerach.
Tommy Trussell,
Spędziłem kilka godzin wypróbowując każdą poprawkę dotyczącą tego problemu (którą można znaleźć na kilku pierwszych stronach Google), a VueScan jest jedynym rozwiązaniem, które do tej pory działało. Nie kupiłbym skanera Brother z Linuksem.
MRUŁ
1

Zetknąłem się z tym samym problemem i zgodnie z https://wiki.debianforum.de/Brother_Scanner błąd „Invalid Argument” może zostać spowodowany, jeśli drukarka jest podłączona do portu USB 3 (kontrolowanego przez xhci_hcd). Zaczęło działać dla mnie, gdy tylko przełączyłem się na port USB 2 (kontrolowany przez ehci_hcd).

Florian Echtler
źródło
Nie miałem portów USB 3 na komputerze, na którym pojawiał się ten błąd.
virtualxtc
0

Używam Ubuntu 13.10 32bit

Używam MFC-7820N i za każdym razem, gdy aktualizuję jądro, muszę ponownie instalować wszystkie sterowniki brata. Mam tylko: brmfc7840nlpr-2.0.2-1.i386, brscan2-0.2.5-1.i386, cupwrapper MFC7840N-2.0.2-1.i386

Następnie dokładnie sprawdzam, czy reguła „ATTRS {idVendor} ==" 04f9 ", ENV {libsane_matched} =„ tak ”” nie została zmodyfikowana ani usunięta w /lib/udev/rules.d/40-libsane.rules

Po tym wszystkim zrestartowałem.

Na koniec dam drukarce Brother własny kontroler hosta USB, jako dodatkowy środek do testowania.

Kris
źródło
brmfc7840nlpr-2.0.2-1.i386 i upswrapperMFC7840N-2.0.2-1.i386 są sterownikami drukarki i nie mają znaczenia dla tego pytania.
virtualxtc
Może to być wersja 64-bitowa vs. 32-bitowa, jednak nigdy wcześniej nie miałem problemów z wersją 64-bitową. Z jakiego jądra korzystasz? Czy ktoś może sprawdzić, czy to działa?
virtualxtc,
1
Niedawno zaktualizowałem również do wersji 13.10 na komputerze 64-bitowym. Zanim mój skaner / drukarka Brother DCP-135C działał, teraz nie działa. Nie mogę również zainstalować starych sterowników dostarczonych przez Brother, ponieważ są one sprzeczne z dodatkowymi sterownikami brother-lpr-drivers-extra. Jeśli odinstaluję brother-lpr-drivers-extra i zainstaluję sterowniki dostarczone przez brata, nadal nie będzie działać.
ramiro