Неверный аргумент - сканер Brother не работает после обновления (драйвер brscan2)


31

Я недавно обновил Ubuntu 13.10 (Saucy).

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

На веб-сайте 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 -3360C МФЦ-410CN МФЦ-420CN МФЦ-425CN МФЦ-440CN МФЦ-465CN МФЦ-5440CN МФЦ-5460CN МФЦ-5840CN МФЦ-5860CN МФЦ-620CN МФЦ-640CN МФЦ-660CN МФЦ-665CW МФЦ-665CW МФЦ-665CW МФЦ-665CW МФЦ-665CW МФЦ-665CW МФЦ-665CW МФЦ-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):


Пока что я пробовал:

  • Установка вменяемых утилит

  • на веб-сайте брата по поводу установки 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 я могу открыть simple-scan и найти сканер; Более того, вывод scanimage показывает, что все в порядке:

# 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-scanner выдает ошибку канала, показанную здесь: http://pastebin.com/tTNMyD1m, но это, похоже, связано с тем, что брат предоставляет драйвер, а не вменяемый.

Я застрял на этом этапе, любая помощь будет оценена.


Просто нашел эту ссылку, которая, кажется, указывает на то, что результаты sane-find-scanner можно игнорировать, и я должен просто сосредоточиться на ошибке неверного аргумента: linuxquestions.org/questions/slackware-14/…
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. Я попытался изменить разрешения для /dev/bus/usb/...файла безрезультатно. Есть ли другой способ заставить ОС посмотреть правильный номер шины USB / dev для сканера?
Дэвид Томас

Это сработало. После внесения изменений в ответ и загрузки 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/… ?
Bellera

Добро пожаловать в AskUbuntu - пожалуйста, имейте в виду, что я обычно документирую вам -1 для этого: если бы вы прочитали мой вопрос, особенно то, что написано в части «пока я пытался», вы бы знали, что ответ « да'. В будущем, пожалуйста, прочитайте весь вопрос, прежде чем ответить.
virtualxtc

2

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


Спасибо, но по цене этого программного обеспечения я могу купить сканер, совместимый с SANE! Поскольку этот ответ не проверен и только немного лучше, чем «купи лучший сканер», я оставлю вопрос открытым.
virtualxtc

1
По моему (давнему) опыту, VueScan превосходен; вероятно, намного превосходит большинство драйверов сканеров. Его преимущества наиболее очевидны для сканирования фотографий и / или для точного контроля качества сканирования. Я считаю, что вы можете скачать и попробовать это бесплатно. Преимущество в том, что вам больше никогда не придется страдать от ограничений неприятного проприетарного драйвера производителя. К сожалению, вы должны заплатить третьей стороне, чтобы продолжить использовать сканер, за который вы уже заплатили. Многие решили, что стоимость того стоит, потому что VueScan хорошо работает на старых И новых сканерах.
Томми Трасселл

Я потратил несколько часов, пытаясь решить каждую проблему (это можно найти на первых нескольких страницах Google), и VueScan - единственное решение, которое до сих пор работало. Я бы не купил сканер Brother с Linux.
MRule

1

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


У меня не было USB-портов 3 на компьютере, на котором я получал эту ошибку.
virtualxtc

0

Я использую Ubuntu 13.10 32bit

Я использую MFC-7820N, и каждый раз, когда я обновляю ядро, мне приходится переустанавливать все драйверы Brother. У меня есть следующие: brmfc7840nlpr-2.0.2-1.i386, brscan2-0.2.5-1.i386, cupswrapperMFC7840N-2.0.2-1.i386

Затем я дважды проверяю, что правило "ATTRS {idVendor} ==" 04f9 ", ENV {libsane_matched} =" yes "" не было изменено или удалено в /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, потому что они конфликтуют с brother-lpr-drivers-extra. Если я удалю brother-lpr-drivers-extra и установлю драйверы, предоставленные brother, он все равно не будет работать.
Рамиро
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.