Неправильний аргумент - Сканер Brother не працює після оновлення (драйвер brscan2)


31

Нещодавно я оновив Ubuntu 13.10 (Saucy).

Сканування через мій MFC-420CN працювало в Ubuntu, а Linux Mint встановлюється, хоча Olivia та Oneric. Однак, як тільки я оновив їх, сканування зламалось. Я встановив свіжу копію пікантності, щоб переконатися, що це не просто щось із оновленням.

На веб-сайті Brother є повідомлення, що всі моделі brscan1 більше не підтримують сканування usb, як для Ubuntu 11.10, але, схоже, це не застосовується для моделей brscan2 та brscan3. Більше того, я знайшов кілька інших публікацій, які, схоже, вказують, що принаймні моделі brscan4 зараз працюють. Однак я не зміг перевірити сканери за допомогою brscan2 (або інших дайверів, крім brscan4) та ubuntu 13.10 (фактично 12.10 і новіших).

Для перехресних посилань / для допомоги іншим з проблемою повний список сканерів brscan2 є наступним:

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

Подібні раніше задані питання / проблеми (але для апаратного забезпечення драйверів brscan3):


Поки я намагався:

  • Встановлення здорових утиліт

  • irections на веб-сайті брата щодо встановлення brscan2, включаючи використання прапора dpkg -f

  • редагування /lib/udev/rules.d/40-libsane.rules включити

код:

# Brother scanners

ATTRS{idVendor}=="04f9", ENV{libsane_matched}="yes"
  • копіювання файлів з lib в lib64:

код:

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 та повторення встановлення sane-utils
  • видалення 64-бітного драйвера brscan2 та заміна його на 32-розрядний, але результати сканування з налаштуванням 32-бітного драйвера для usb або мережного режиму були менш перспективними:

код:

# 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-ти бітних драйверів Windows з WINE, емуляцією Win2000 або XP, - майже завершується в 2000 році.

Налагодження 64-бітних драйверів:

Якщо встановлено brscan2, я можу відкрити простий сканування і знайти сканер; до того ж результат сканування зображення вказує на те, що все в порядку:

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

Але сканування (навіть як користувач root) все ще не працює.

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

xsane видає аналогічну помилку:

 Failed to start scanner: Invalid argument

сканер sane-find-Scan створює помилку в трубі, показану тут: http://pastebin.com/tTNMyD1m, але це, мабуть, пов’язано з тим, що брат надає драйвер, а не розумно.

Я досить застряг на цьому етапі, будь-яка допомога буде вдячна.


Щойно знайшлося це посилання, яке, здається, вказує на результати сканування зразкового
virtualxtc

Дивіться це . додатково ви можете додати brother-lpr-drivers-mfc9420cnіbrother-cups-wrapper-mfc9420cn

@DuminduMahawela окрім пакетів * -dev У мене були встановлені всі "драйвери сканера".
virtualxtc

Я надіслав брату по допомогу і посилався на це питання, якщо є якісь оновлення. Брат визнав мій квиток, але окрім цього все, що я отримав, - мертве повітря. Я придбав ще один принтер-сканер на основі списку сумісних можливостей .
virtualxtc

Розділ "РІШЕННЯ" на цій сторінці може допомогти? bugs.launchpad.net/ubuntu/+source/xsane/+bug/478761
sabik

Відповіді:


23

Після оновлення до 13.10 я отримав таку ж помилку під час сканування. Тут є дві проблеми.

  1. Помилка Недійсний аргумент не є проблемою аргументу, але є проблемою доступу для запису.
  2. Інша проблема полягає в тому, що шина та номер розробника неправильні від помилки сканування зображення.

Як знайти та виправити проблему?

Встановіть драйвери brscan4 з веб-сайту брата

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

Перевірте, чи працює він

sudo brsaneconfig4 -d

Перевірте, чи встановлений сканер (сканер потрібно включити). І запускати як користувач НЕ 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

або

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

Ви можете використовувати наступний скрипт для оновлення дозволів для сканера.

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

lsusb перелічує пристрої usb

grep -i brother знайде пристрій брата (припущення, що я зробив це, що у вас є лише один братський пристрій, підключений до USB)

sed 's/://' | awk '{printf "/dev/bus/usb/%s/%s", $2,$4}' знайде номери шин та пристроїв

xargs -i -t sudo chmod 666 "{}" додасть дозвіл на запис сканеру

Ось більш детальна інформація про те, чому ми зробили те, що робили вище

Щоб дізнатися, де використовується сканер брата, на якому використовується шина lsusb. Це одна з проблем сканування. Шина - 003, а пристрій - 002, а не шина 5, dev 1 відповідно до сканування

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

Щоб вирішити проблему, вам потрібно буде використовувати шлях, заснований на розташуванні брата сканера в lsusbкоманді. У моєму випадку це було bus 003і device 002. Зауважте, що якщо ви відключите кабель USB до сканера та підключите його назад до пристрою, ви отримаєте новий номер та / або шину. (Число повертається до 2 при перезавантаженні ПК)

Приклади:

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

або просто:

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

Scanimage потрібно виправити повідомлення, коли він не може отримати доступ до сканера, щоб мати правильну шину та номер розробника, а також повідомити користувачеві, що проблема - проблема доступу до запису.

BrotherНеобхідно оновити код драйвера, щоб глобальний користувач міг записувати на сканер, тобто chmod 666в місце драйвера сканера


Чи може хтось підтвердити це виправлення? На щастя, я скинув цей сканер зі свого робочого столу через місяць після того, як я опублікував питання і довелося придбати новий (сумісний з SANE) сканер. Позначте / Дані відповідь досі трохи незрозумілий через різні проблеми граматики, будь ласка, виправте їх, щоб я почував себе комфортно під час голосування.
virtualxtc

1
Ця відповідь виглядає дійсно багатообіцяючою, оскільки вихід lsusbта scanimage -Lпоказ різних номерів розробників / шин. Я спробував змінити дозволи на /dev/bus/usb/...файл безрезультатно. Чи є інший спосіб змусити ОС переглянути правильний номер шини / розвідки USB для сканера?
Девід Томас

Це спрацювало. Після внесення змін у відповідь та завантаження xsaneвперше, коли я спробував придбати попередній перегляд, це призведе до помилки "сканер не запустився". Але повторна спроба спрацює. Тепер я можу сканувати! :)
jja

2
Це для мене це не виправлено
Natim

1
Це рішення працювало для мене з Lubuntu 16.04 та Brother DCP-7030. Однак після перезавантаження всі дозволи скидаються. Схоже, потрібне правило udev?
Xavier13

3

Просто додайте свого користувача до групи lp ...

usermod -a -G lp username

У такому випадку у вас буде дозвіл на запис сканера.

Тестували:

  • 14,04 LTS 64-бітний оновлений
  • Брат DCP-J315W
  • linux-brprinter-installer-2.0.0-1, завантажений із Центру підтримки Brother

Дозволи для принтера / сканера в / dev / bus / usb / 001:

crw-rw-r-- 1 root lp

Саме для цього додавання вашого імені користувача до групи lp - це рішення.


Як зазначено в "#", я запускав команду як root і все ще отримував помилку, тому це, безумовно, не було рішенням помилки вище.
virtualxtc

1
Ви скопіювали (або пов’язали з ln -s) бібліотеки з / usr / lib64 в / usr / lib, як було запропоновано на support.brother.com/g/s/id/linux/en/… ?
Беллера

Ласкаво просимо до AskUbuntu - будь ласка, майте на увазі, що я б зазвичай вам доручив вас -1 для цього: Якби ви прочитали моє запитання, особливо те, що написано в частині "Досі я намагався", ви б знали, що відповідь " так'. Надалі, будь ласка, прочитайте все питання, перш ніж відповісти.
virtualxtc

2

Спробуйте цю програму під назвою VueScan, я шукав драйвер mfc-420cn, і я наткнувся на цей веб-сайт: " http://www.hamrick.com/ " Я не зміг перевірити це, хоча (тому що я все ще маю знайдіть кабель живлення до мого старого принтера, який збирає пил.), але він сказав, що він підтримує велику кількість принтерів, тому я подумав, що слід його розмістити. У будь-якому випадку, сподіваюся, що це допомагає.


Дякую, але за ціну цього програмного забезпечення я можу купити сканер, сумісний з SANE! Оскільки ця відповідь неперевірена і лише трохи краща, ніж "купити кращий сканер", я залишаю питання відкритим.
virtualxtc

1
На моєму (давно) досвіді VueScan є чудовим; напевно, набагато перевершує більшість драйверів сканерів. Його переваги найбільш очевидні для сканування фотографій та / або для тонкого контролю якості сканування. Я вірю, що ви можете завантажити і спробувати його безкоштовно. Перевага полягає в тому, що вам більше не доведеться страждати з обмеженнями бридкого фірмового драйвера виробника. На жаль, вам доведеться заплатити сторонній стороні, щоб продовжити користуватися сканером, за який ви вже заплатили. Багато людей вирішили, що вартість варта, оскільки VueScan добре працює на старих І нових сканерах.
Томмі Труссель

Я витратив кілька годин на те, щоб виправити цю проблему (її можна знайти на перших сторінках Google), і VueScan - єдине рішення, яке працювало досі. Я б не купував сканер Brother з Linux.
МРУЛ

1

Я зіткнувся з тією ж проблемою, і згідно з https://wiki.debianforum.de/Brother_Scanner, помилка "Недійсний аргумент" може бути викликана, якщо принтер підключений до порту USB 3 (керується xhci_hcd). Він почав працювати для мене, як тільки я перейшов на порт USB 2 (керований ehci_hcd).


У мене не було 3 портів на комп'ютері, я отримував цю помилку.
virtualxtc

0

Я використовую Ubuntu 13.10 32bit

Я використовую MFC-7820N і кожен раз, коли я оновлюю ядро, мені доведеться перевстановити всі брати драйвери. Ті, які у мене є: brmfc7840nlpr-2.0.2-1.i386, brscan2-0.2.5-1.i386, чашкова упаковкаMFC7840N-2.0.2-1.i386

Потім я ще раз перевіряю, що правило "ATTRS {idVendor} ==" 04f9 ", ENV {libsane_matched} =" так "" не було змінено або видалено в /lib/udev/rules.d/40-libsane.rules

Зрештою, що я перезавантажую.

І нарешті, я дам братовому принтеру власний USB-контролер, як додатковий захід для тестування.


brmfc7840nlpr-2.0.2-1.i386 та upswrapperMFC7840N-2.0.2-1.i386 є драйверами принтерів і не мають відношення до цього питання.
virtualxtc

Це може бути 64-бітова проти 32-бітна річ, однак у мене ніколи не було проблем із 64-бітною. Яке ядро ​​ти працюєш? Чи може хтось ще переконатися, що це працює?
virtualxtc

1
Я також нещодавно оновив до 13.10 на 64-бітній машині. До того, як сканер / принтер Brother DCP-135C працював, тепер це не відбувається. Також я не можу встановити старі драйвери, надані Brother, оскільки вони конфліктують з брат-lpr-driver-extra. Якщо я вилучую брат-lpr-драйвери-додаткові та встановлюю драйвери, надані братом, він все одно не працює.
ramiro
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.