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

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

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

Brother的网站发布通知,所有brscan1型号都不再支持Ubuntu 11.10的USB扫描,但它似乎不适用于brscan2和brscan3型号。 此外,我发现其他一些post似乎表明至少brscan4模型目前正在运作。 但是我无法使用brscan2(或brscan4以外的其他潜水员)validation扫描仪,而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驱动程序硬件):

  • 升级到12.04后,Brother打印机MFC-290C的扫描仪不起作用
  • 使用Brother DCP-J725DW扫描时xsane退出“无效参数”,这是什么意思?

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

  • 安装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位驱动程序,但使用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). 
  • 使用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产生类似的错误:

  Failed to start scanner: Invalid argument 

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

我非常坚持这一点,任何帮助将不胜感激。

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

  1. 错误Invalid参数不是参数问题,而是写访问问题。
  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}' 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无法访问扫描器以获得正确的总线和dev编号时,需要修复该消息,并告诉用户该问题是写访问问题。

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

只需将您的用户添加到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组是一个解决方案。

尝试这个名为VueScan的程序,我正在搜索mfc-420cn驱动程序,我遇到了这个网站:“ http://www.hamrick.com/ ”我一直无法测试这个(因为我还没有找到我的旧打印机的电源线一直在收集灰尘。),但它确实说它会支持各种各样的打印机,所以我想我应该发布它。 无论如何,希望这会有所帮助。

我遇到了同样的问题,根据https://wiki.debianforum.de/Brother_Scanner ,如果打印机连接到USB 3端口(由xhci_hcd控制),可能会导致“无效参数”错误。 一旦我切换到USB 2端口(由ehci_hcd控制),它就开始为我工作。

我正在使用Ubuntu 13.10 32bit

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

然后我仔细检查规则“ATTRS {idVendor} ==”04f9“,ENV {libsane_matched} =”是“”未在/lib/udev/rules.d/40-libsane.rules中修改或删除

毕竟我重启了。

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