参数无效-升级后Brother扫描仪不起作用(brscan2驱动程序)


31

我最近升级了Ubuntu 13.10(Saucy)。

通过MFC-420CN进行的扫描已在Ubuntu中运行,并且通过Olivia和Oneric安装了Linux Mint。但是,一旦我从这些版本升级,扫描就会中断。我安装了一份新的saucy副本,以验证它不仅与升级有关。

Brother的网站上注意到,自Ubuntu 11.10起,所有brscan1型号均不再支持USB扫描,但似乎不适用于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-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-685CW MFC-7220 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驱动程序硬件):


到目前为止,我已经尝试过:

  • 安装sane-utils

  • 兄弟网站上有关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位驱动程序,但是使用针对USB或网络模式的32位驱动程序设置的scanimage结果并不令人满意:

码:

# 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).
  • 使用WINE枚举Win2000或XP的32位Windows驱动程序-几乎在2000年完成。

调试64位驱动程序:

安装brscan2后,我可以打开简单扫描并找到扫描仪。而且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, 但这似乎与兄弟提供驱动程序而不是理智的事实有关。

在这一点上,我很受困,不胜感激。


刚刚发现这个链接,似乎表明理智找到的扫描器的结果可以忽略不计,我应该只专注于无效的参数错误:linuxquestions.org/questions/slackware-14/...
virtualxtc

看到这个。additionaly您可以添加brother-lpr-drivers-mfc9420cnbrother-cups-wrapper-mfc9420cn

除了* -dev软件包以外,@ DuminduMahawela还安装了所有这些“扫描仪驱动程序”。
virtualxtc 2014年

我已经给兄弟发送了电子邮件,以寻求帮助,并在有任何更新的情况下引用了此问题。兄弟承认了我的票,但除此之外,我得到的只是死气沉沉。我根据健全的兼容性列表购买了另一台打印机扫描仪。
virtualxtc

此页面的“解决方案”部分可能有帮助?bugs.launchpad.net/ubuntu/+source/xsane/+bug/478761
sabik

Answers:


23

更新到13.10后,扫描时出现相同的错误。这里有两个问题。

  1. 错误无效参数不是参数问题,而是写访问问题。
  2. 另一个问题是由于scanimage错误,总线和开发号错误。

如何找到并解决问题?

从兄弟网站安装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。这是扫描图像中的问题之一。根据scanimage,总线为003,设备为002,而不是总线5,开发人员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 003device 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的)扫描仪。Mark / Dan由于各种语法问题,答案仍然不清楚,请修正它们,以便让我感到满意。
virtualxtc

1
这个答案看起来非常有希望,因为它会显示不同的dev / bus编号,lsusbscanimage -L显示不同的编号。我尝试将/dev/bus/usb/...文件权限更改为无效。还有另一种方法可以让操作系统查看扫描仪的正确USB总线/设备号吗?
大卫·托马斯

这工作了。更改答案并启动后xsane,我第一次尝试获取预览时会出现“扫描仪无法启动”错误。但是重试它会起作用。现在我可以扫描了!:)
jja 2014年

2
它没有固定对我来说
Natim

1
该解决方案对Lubuntu 16.04和Brother DCP-7030都适用。但是,重新启动后,所有权限都会重置。看起来是否需要udev规则?
Xavier13年

3

只需将您的用户添加到lp组...

usermod -a -G lp username

这样,您将拥有扫描仪的写入权限。

经过测试:

  • 14.04 LTS 64位最新
  • 兄弟DCP-J315W
  • 从Brother支持中心下载的linux-brprinter-installer-2.0.0-1

/ dev / bus / usb / 001上的打印机/扫描仪的权限为:

crw-rw-r-- 1 root lp

为此,将您的用户名添加到lp组是一个解决方案。


如“#”所示,我以root用户身份运行命令,但仍然收到错误,因此,这绝对不是上述错误的解决方案。
virtualxtc

1
您是否按照support.brother.com/g/s/id/linux/en/…的建议将库从/ usr / lib64复制(或与ln -s链接)到/ usr / lib ?
贝莱拉

欢迎来到AskUbuntu-请注意,我通常会为此给您-1的文件:如果您已阅读了我的问题,特别是“到目前为止我已经尝试过”的部分写了什么,您将知道答案是“是'。将来,请在回答前阅读整个问题。
virtualxtc 2015年

2

尝试使用名为VueScan的程序,我正在搜索mfc-420cn驱动程序,但我遇到了以下网站:“ http://www.hamrick.com/ ”尽管我仍无法对此进行测试(因为我仍然无法(找到积尘的旧打印机的电源线。),但它确实说它可以支持各种各样的打印机,所以我认为应该将其发布。无论如何,希望这会有所帮助。


谢谢,但是对于该软件的价格,我可以购买SANE兼容扫描仪!由于此答案尚未得到验证,仅比“购买更好的扫描仪”稍微好一点,因此我将保留这个问题。
virtualxtc 2014年

1
根据我的长期经验,VueScan非常出色;可能远胜于大多数扫描仪驱动程序。对于扫描照片和/或对扫描质量进行精细控制,其优势最为明显。我相信您可以免费下载并试用。优点是您再也不必遭受制造商讨厌的专有驱动程序的限制。不幸的是,您必须付费给第三方才能继续使用已经付款的扫描仪。许多人认为该成本值得,因为VueScan在新旧扫描仪上都能正常工作。
Tommy Trussell,2014年

我已经花了几个小时尝试解决此问题的所有方法(可以在Google的前几页中找到),而VueScan是迄今为止唯一有效的解决方案。我不会购买带有Linux的Brother扫描仪。
MRule


0

我正在使用Ubuntu 13.10 32位

我使用MFC-7820N,每次升级内核时,都必须重新安装所有的兄弟驱动程序。我拥有的是:brmfc7840nlpr-2.0.2-1.i386,brscan2-0.2.5-1.i386,cupswrapperMFC7840N-2.0.2-1.i386

然后,我再次检查/lib/udev/rules.d/40-libsane.rules中的规则“ ATTRS {idVendor} ==” 04f9“,ENV {libsane_matched} =” yes“”是否已被修改或删除。

毕竟,我重新启动。

最后,我将给兄弟打印机它自己的USB主机控制器,作为测试的一项额外措施。


brmfc7840nlpr-2.0.2-1.i386和upswrapperMFC7840N-2.0.2-1.i386是打印机驱动程序,与此问题无关。
virtualxtc

可能是64位与32位的事情,但是,我以前从未遇到过64位的问题。您正在运行什么内核?其他人可以验证他们是否可以正常工作吗?
virtualxtc

1
最近,我还在64位计算机上升级到了13.10。在我的Brother DCP-135C扫描仪/打印机工作之前,现在没有。另外,我无法安装Brother提供的旧驱动程序,因为它们与brother-lpr-drivers-extra冲突。如果我卸载brother-lpr-drivers-extra并安装brother提供的驱动程序,则仍然无法使用。
ramiro
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.