参数无效 - 升级后Brother扫描器无法正常工作(brscan2驱动程序)

Modified on: Sat, 09 Jun 2018 15:29:23 +0800

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

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

Brother的网站上注意到所有brscan1型号都不再支持Ubuntu 11.10的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 -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 eumlating 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产生类似的错误:

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

sane-find-scanner生成管道错误,如下所示:
http://pastebin.com/tTNMyD1m
但这似乎与兄弟提供司机的事实有关,而不是理智。

我非常坚持这一点,任何帮助都会受到赞赏。

最佳答案

更新到13.10后,我在扫描时遇到了同样的错误。这里有两个问题。

  1. 错误无效参数不是参数问题,但是是写访问问题。
  2. 另一个问题是扫描图像错误导致总线和开发号码错误。
  3. 醇>

    如何找到并解决问题?

    从兄弟网站安装brscan4驱动程序

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

    检查它是否有效

    sudo brsaneconfig4 -d
    

    测试是否安装了扫描仪(扫描仪需要打开电源)。并以用户身份运行

    $ 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电缆连接到扫描仪并将其重新插入设备,您将获得一个新号码和/或总线。 (重新启动PC时,数字返回2)

    示例:

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

    或只是:

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

    Scanimage需要修复邮件,因为它无法访问扫描程序以获得正确的总线和开发号码,并且还告诉用户问题是写访问问题。

    Brother需要更新驱动程序代码,以便全局用户可以写入扫描程序,即chmod 666到扫描程序驱动程序位置


相关问答

添加新评论