SANE/扫描仪特定问题

来自 ArchWiki

本文包含 SANE 的扫描仪或制造商特定说明。

Agfa

Snapscan e40

需要来自 此处[死链 2024-10-12 ⓘ] 的固件 Snape40.bin

如果启用了 USB 自动挂起,则可能需要在每次扫描前关闭再打开打印机。

提示: USB 自动挂起可以手动禁用,或使用 powertopTLPLaptop Mode Tools 禁用。

BenQ/Acer

如果您拥有 Acer(现为 BenQ)的 USB 扫描仪,则需要下载合适的固件二进制文件并配置 /etc/sane.d/snapscan.conf

  • 查明您拥有的型号并记下 USB ID
$ lsusb
Bus 002 Device 010: ID 04a5:20b0 Acer Peripherals Inc. (now BenQ Corp.) S2W 3300U/4300U
  • 转到 snapscan 主页,查看您的扫描仪是否受支持以及您需要哪个固件(例如,u176v046.bin)。
  • 在 Internet 上搜索固件镜像并将其下载到 /usr/share/sane/snapscan/
  • 编辑 /etc/sane.d/snapscan.conf 的开头并配置以下两行
firmware /usr/share/sane/snapscan/u176v046.bin
/dev/usb/scanner0 bus=usb

Brother

为了安装 Brother 扫描仪或打印机/扫描仪一体机,您需要正确的驱动程序。要找到正确的驱动程序,请参阅 Brother 支持中您型号的 FAQ,即首页 > 国家 > 您的型号 > 常见问题解答和故障排除 > Linux > 扫描仪 / 扫描键工具 > 使用 XSane 或 GIMP 扫描。您也可以在网上搜索。或者查看以下更多扫描仪的信息。或者提取以下每个 AUR 软件包。每个软件包似乎都包含适用于它的型号的详尽列表。

然后,安装适当的软件包

现在,扫描仪应该可以被 SANE 识别。

对于网络扫描仪,Brother 为每个 brscan 版本提供不同的配置工具(例如,用于 brscan2 兼容设备的 brsaneconfig2)

# brsaneconfig2 -a name=<ScannerName> model=<ScannerModel> ip=<ScannerIP>

示例

# brsaneconfig2 -a name=SCANNER_DCP770CW model=DCP-770CW ip=192.168.0.110

要获取扫描仪的 IP 和节点名称,您可以使用 Nmap

$ nmap -sP 10.0.0.0/24

也可以通过扫描仪的节点名称而不是其 IP 地址添加扫描仪,例如

# brsaneconfig4 -a name=Brother_DCP-L3550CDW model=DCP-L3550CDW nodename=BRWC0B5D72A0B87

网络扫描

在网络扫描的情况下,例如通过 WiFi,Sane 可能仍然无法找到扫描仪。如果是这样,您需要在 /etc/sane.d/net.conf 文件中指定扫描仪的 IP 地址。

现在使用 scanimage --list-devices 检查 sane 是否能够找到您的扫描仪。如果找不到,请进一步检查 Sane 是否通过网络期望此设备(请参阅 [1][死链 2023-05-06 ⓘ])。检查 /etc/sane.d/dll.conf 是否包含 brotherX,其中 X 代表上面 brscan 的版本。如果未找到任何内容,请将 brotherX 添加到文件末尾。

无效参数

如果安装了所有必需的软件包,但仍然收到“无效参数”错误,则可能意味着配置文件已损坏。运行以下命令(如果是 brscan4)

 # brsaneconfig4 -d

输出应缩小问题范围。最有可能的是连接未正确设置。如果是网络扫描仪,请通过使用编辑器打开 /etc/opt/brother/scanner/brscan4/brsanenetdevice4.cfg 来检查 IP 地址是否正确。如果是 USB 连接,请检查配置文件中扫描仪的路径是否设置正确。为此,请将 lsusb 命令的值与您的配置文件进行比较,并在必要时更改它们。您也可以尝试遵循 上面的网络扫描 中的 brotherX 建议,即使对于非网络扫描仪也是如此。

Scan-key-tool

Brother 发布了一个工具,可以通过用户与扫描仪本身的交互(例如,通过在扫描仪的键盘上选择“扫描到电子邮件”、“扫描到图像”等)而不是通过连接的计算机来触发扫描。可以通过安装 brscan-skeyAUR 软件包并使用 systemd 启动 brscan-skey.service 来设置此功能。请注意,默认情况下,此服务以软件包创建的 brscan-skey 用户身份运行,该用户的家目录位于 /srv/brscan-skey

Brother 提供了一些默认脚本,当在键盘上选择扫描类型时执行这些脚本。这些脚本可能需要安装 brscan-skeyAUR 软件包的一些可选依赖项。对于除“扫描到电子邮件”之外的所有选项,可以在 $HOME/brscan 中找到结果输出,其中 $HOME 是运行此工具的用户的家目录(因此如果通过 systemd 作为系统范围的进程启动,则为 /srv/brscan-skey)。

可以更改在键盘上选择给定类型的扫描时发生的操作。这是通过编辑 /opt/brother/scanner/brscan-skey/brscan-skey-0.2.4-0.cfg 完成的。对于 IMAGEOCREMAILFILE 中的每个变量 SCAN_COMMAND,命令

 $ $SCAN_COMMAND $SCANNER_DEVICE $SCANNER_FRIENDLY_NAME

在选择相应的扫描类型时执行。请注意,$SCAN_COMMAND 未被引用,因此可能会在最终执行的命令中指定多个位置参数。$SCANNER_DEVICE 指的是应为 sane 前端指定的设备名称(例如,在使用 scanimage 时通过 --device-name 标志),例如 brother3:bus4;dev2$SCANNER_FRIENDLY_NAME 是扫描仪的人性化名称。

xsane 崩溃

本文或本节的事实准确性存在争议。

原因

如果 xsane 崩溃并显示消息“=bugchk_free(ptr==(nil))@brother_modelinf.c(482)”,则您需要创建链接 /usr/local/Brother -> /usr/share/brother

Canon

通过网络扫描 Canon PIXMA 或 imageCLASS 多功能一体打印机/扫描仪

找出您的打印机/扫描仪的 IP 地址,并以 bjnp://10.0.0.20 的格式将其添加到 /etc/sane.d/pixma.conf 的新行中。对于 imageCLASS 打印机,您可能需要使用 mfnp://10.0.0.20 格式。

提示: 如果 设置了 mDNS 解析,则可以使用 mDNS .local 地址而不是 IP 地址。例如 bjnp://MyPixmaPrinter.local

Sane 现在应该可以找到您的设备。有关更多详细信息,请参阅 sane-pixma(5)

或者,scangearmp2AUR 可用于某些无法通过网络检测到的 Canon PIXMA 多功能一体打印机/扫描仪。

Epson

驱动程序后端

对于 Epson 扫描仪,您可以在两个不同的后端之间进行选择:“Image Scan v3”(imagescanAUR/utsushi)或“Image Scan! for Linux”(iscanAUR/epkowa)。imagescan/utsushiiscan/epkowa 提供了受支持设备的列表。

Image Scan v3

如果您必须使用 Image Scan v3 后端,您可以安装 imagescanAUR。默认情况下,它应该会自动检测受支持的 USB 扫描仪。如果您的扫描仪未被识别,您可以直接编辑 /etc/utsushi/utsushi.conf 并添加以下行。

[devices]
dev1.udi     = esci:usb:<vendor id>:<product id>
dev1.name    = foo
dev1.model   = <Model Name of the scanner>

如果您想使用网络扫描仪,您还需要安装 imagescan-plugin-networkscanAUR。然后编辑 /etc/utsushi/utsushi.conf 并将扫描仪的 IP 地址输入到其中。

[devices]
myscanner.udi    = esci:networkscan://<ip-address-here>:1865
myscanner.vendor = Epson
myscanner.model  = Model-name

当您然后通过输入命令启动 Image Scan v3 时

$ utsushi

扫描仪的名称应显示在左上角。如果发生连接问题,将显示错误对话框。

Image Scan! for Linux

  • 安装 iscanAUR 软件包。
  • 为您的扫描仪安装适当的 iscan-plugin 软件包(例如,iscan-plugin-gt-x820AUR 用于 Epson Perfection Photo V600)
  • 运行 udevadm control --reload,以便 udev 将设备识别为扫描仪并应用适当的权限。

对于网络(包括 Wi-Fi)扫描仪,安装 iscan 和 iscan-plugin-networkAUR,然后编辑 /etc/sane.d/epkowa.conf 并添加以下格式的行

net <IP-address|hostname> [port-number]

iscan 的上游版本不支持 16bpc 色彩深度扫描。选择除 8 之外的任何位深度都会导致 iscan 在没有警告的情况下停止,使扫描仪卡住,直到重新启动。要启用 16bpc 扫描,iscan 过去需要进行修补。在 此论坛帖子 中找到的旧补丁可能会启用 16bpc 深度模式。

Epson DS-6500

通常,此设备与 epsonds-backend 一起使用。但是,扫描多页时可能会出现“设备 I / O 期间出错”错误。如果发生此错误,可以使用 Image Scan v3 后端,并且需要安装 imagescanAUR。如果要使用网络模块,可以在安装 imagescan-plugin-networkscanAUR 后在 /etc/utsushi/utsushi.conf 中配置扫描仪,如上所述。

Epson Perfection V39

已知此设备(供应商 ID:0x04b8,设备 ID:0x013d)受 SANE 的 epkowa 后端 支持。要使用此后端,请安装 iscan-dataAURiscanAURiscan-plugin-gt-s650AUR

后一个软件包提供了使扫描仪工作所需的固件 /usr/share/iscan/esfw010c.bin

如果设备设置成功,运行 scanimage -L 会导致

  • 扫描仪唤醒并执行一些移动,
  • 设备正面持续亮蓝色 LED,以及
  • 类似于 device `epkowa:interpreter:001:007' is a Epson Perfection V39 flatbed scanner 的输出。

在某些情况下,由于 iscan-plugin-gt-s650AUR 提供的固件不正确,上述操作会失败。

注意: 固件不正确的症状
  • 蓝色设备 LED 无休止地闪烁,
  • scanimage -d device_name 失败,并显示 scanimage: sane_start: Invalid argument

此论坛帖子 中所述,使用 epsonscan2-non-free-pluginAUR 提供的固件 esfw010c.bin 可以解决该问题。似乎存在同一固件的不同不兼容版本。

Epson Perfection V550 Photo

安装 iscan-plugin-perfection-v550AUR

Epson Perfection 1270

对于 Epson Perfection 1270,您还需要一个名为 esfw3e.bin 的固件。可以通过安装 Windows 驱动程序获得它。

修改 snapscan 后端的配置文件 /etc/sane.d/snapscan.conf。将固件路径行更改为您的路径

# Change to the fully qualified filename of your firmware file, if
# firmware upload is needed by the scanner
firmware /mnt/mydata/Backups/firmware/esfw3e.bin

并在末尾或您喜欢的任何位置添加以下行

# Epson Perfection 1270
usb 0x04b8 0x0120

您可以通过 sane-find-scanner 命令获取此类代码信息 (usb 0x04b8 0x0120)。

还要将此类信息行添加到 /etc/hotplug/usb/libsane.usermap 以设置您的权限,例如

# Epson Perfection 1270
libusbscanner 0x0003 0x04b8 0x0120 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000

重新插上扫描仪,您现在拥有一个可工作的 Epson Perfection 1270。

注意: 如果我定义了 X 和 Y 值,我可以扫描图像,但如果没有,则会发生错误消息,例如:scanimage: sane_start: Error during device I/O,如果有人知道任何其他原因,请将它们添加到此部分。
  • 为了防止在启用 ADF(自动文档进纸器)的情况下尝试扫描时出现 scanimage: sane_start: Error during device I/O 和扫描仪挂起,我必须删除或注释掉 /etc/sane.d/dll.conf 中的所有后端,而是将此添加到文件中
    snapscan

如果您仍然收到 Error during device I/O 消息,请检查扫描仪的运输锁(在扫描仪底部)是否已打开。

Epson Perfection 1670/2480/2580/3490/3590

注意: 安装说明仅针对 Epson Perfection 3590 进行了测试,但应与其他型号类似。检查上面的说明和下面的链接,如果您可以验证您的扫描仪可以工作,请编辑此 wiki 页面。

确保下载适用于您的 Epson 型号的正确固件。您可以在此处此处获得一些型号及其驱动程序的概述。固件的下载链接已损坏,但您可以使用此链接作为替代。确保更改链接的固件文件名以适合您的型号。如果您想从官方 epson 站点自行下载和提取固件源,可以使用本指南

作为替代方法,您也可以安装 AUR 软件包 sane-epson-perfection-firmwareAUR,它将从官方来源下载固件,提取二进制文件并将它们安装到 /usr/share/sane/snapscan/

修改 snapscan 后端的配置文件 /etc/sane.d/snapscan.conf。将固件路径行更改为您的路径

# Change to the fully qualified filename of your firmware file, if
# firmware upload is needed by the scanner
firmware /usr/share/sane/snapscan/esfw52.bin

Epson Perfection 3590 不需要其他修改,其他型号也可能不需要。如果您仍然遇到问题,如果您完全删除 iscanAUR 软件包,也可能会有所帮助。

通过网络连接的 EPSON WorkForce 打印机/扫描仪

安装 imagescanAURimagescan-plugin-networkscanAUR

编辑配置文件 /etc/utsushi/utsushi.conf。找到 [devices] 部分并编辑 dev2 的模板。相应地替换 IP 地址。您可以在打印机屏幕上找到 IP 地址。例如,

...
dev2.udi    = esci:networkscan://192.168.1.123:1865
dev2.model  = WF-2860
dev2.vendor = EPSON
...

同时,注释掉 /etc/sane.d/dll.conf 中的 epson2,因为它与 ImageScan 冲突

完成此操作后,您可以使用任何 SANE 前端来访问此扫描仪。

Fujitsu

Fujitsu fi 系列

对于某些 Fujitsu fi 系列文档扫描仪,pfufsAUR 专有驱动程序比已经成熟的 SANE 默认驱动程序提供更高级的功能,例如控制用于在扫描文档上盖章的可选印章器或从主机请求耗材的准确状态。

ScanSnap S300/S300M/S1100/S1300

为了操作 ScanSnap 扫描仪,需要固件文件,可以从此处下载或从 Windows 驱动程序中提取。获取您需要的文件并将它们放在 /usr/share/sane/epjitsu 目录中,如果该目录不存在,则应创建该目录。例如,您应该最终得到一个名为 /usr/share/sane/epjitsu/1100_0B00.nal 的文件。这些文件应归 root 用户所有。

为了确保您在正确的位置拥有正确的文件,请记下设备 ID

# sane-find-scanner
found possible USB scanner (vendor=0x04c5 [FUJITSU], product=0x1200 [ScanSnap S1100]) at libusb:003:011

/etc/sane.d/epjitsu.conf 中应该有一个对应的条目,例如 usb 0x04c5 0x1200,它又应该引用您刚刚添加的固件文件的路径。

对于 S300/S300M 扫描仪,300M_0C00.nal300_0C00.nal 文件是可互换的;S300 设备可以使用 300M_0C00.nal 文件,而 S300M 设备可以使用 300_0C00.nal 文件。可以重命名文件以适合 /etc/sane.d/epjitsu.conf 中的条目,或者可以编辑该条目以匹配文件名。

固件文件的备用下载位置:此处此处

用于获取和安装固件的命令

 # git clone https://github.com/stevleibelt/scansnap-firmware.git
 # mkdir -p /usr/share/sane/epjitsu
 # cp scansnap-firmware/*.nal /usr/share/sane/epjitsu

HP

如果您的 HP 设备受 hplip 支持安装 hplip 软件包。

它带有几个工具

  • hp-setup 用于添加和设置设备
  • hp-check 用于检查成功运行所需的所有依赖项的安装情况(一个非常有用的工具)
  • hp-plugin 是“HPLIP 插件下载和安装实用程序”(插件也可从 hplip-pluginAUR 获得)。
  • hp-scan 是“HPLIP 扫描实用程序”。如果您需要该工具,则需要安装 python-pillow

hp-setup 默认在 GUI 模式下运行,这需要 python-pyqt5。您可以使用 -i 标志运行 CLI。

如果设备通过 USB 连接,请以 root 身份运行 hp-setup 并按照屏幕上的说明进行操作。

如果您的设备连接在网络上,请改用 hp-setup printer_ip

使用网络 HP 扫描仪扫描的替代方法

  • 找出您的网络 HP 扫描仪的 IP 地址,例如 192.168.1.8
  • 使用 hp-makeuri 实用程序创建设备 URI
$ hp-makeuri 192.168.1.8
hpaio:/net/DeskJet_3630_series?ip=192.168.1.8
  • 此 URI 可以提供给 xsane 或 scanimage 工具,例如
$ xsane "hpaio:/net/DeskJet_3630_series?ip=192.168.1.8"
$ scanimage --device "hpaio:/net/DeskJet_3630_series?ip=10.12.129.6" --format=png --resolution 300 >scan01.png

Lexmark

有关 Lexmark 设备的打印问题,请阅读 CUPS/打印机特定问题#Lexmark

大多数 Lexmark 扫描仪仍然(2019 年)不受 SANE 支持,因此无法通过 sane-find-scannerscanimage -L 检测到。Lexmark 为 GNU/Linux 提供了非自由驱动程序,该驱动程序应该支持所有扫描仪。但是,该驱动程序仅针对 Debian、OpenSUSE、Fedora 和 Red Hat 发行,而不针对 Arch。以下是安装方法。

警告

在执行这些步骤之前,请注意

  • 此驱动程序是非自由的(Lexmark 版权所有)
  • 尚未经过广泛测试(但该驱动程序应该适用于所有 Lexmark 扫描仪)
  • 树不符合 Arch 标准 — 即,所有内容都将安装在 /usr/local 中;您将获得一个 /usr/lexmark/ 符号链接;并获得指向安装在 /usr/local/lexmark 中的文件的符号链接。
  • 如果您已经安装了一些 Lexmark 驱动程序,此过程可能会产生冲突。

步骤

  1. 确保已安装 Java
  2. 下载包含驱动程序的 .deb 文件[死链 2021-11-19 ⓘ] 并保存它(例如,在 ~/lexmark.deb)。

选项 1:使用 DPKG

dpkg 是基于 Debian 的发行版的标准软件包管理器。除非您确切知道自己在做什么,否则不应使用它来替换 pacman。只需以 root 身份运行

# dpkg -i lexmark.deb

重新启动后,您的扫描仪应被检测到。

选项 2:手动安装

或者,如果您不想安装 dpkg 或希望精确控制安装期间执行的操作,您可以按照这些说明进行操作(假设您正在 ~ 中工作)。请注意,将不会检查 md5 校验和,这可能会导致安全问题。

  1. 运行 ar x lexmark.deb 提取 ~/lexmark.deb 存档。可以删除文件 debian-binary
  2. 提取 ~/control.tar.gz~/data.tar.gz 存档。
  3. data.tar.gz 提供了一个 ~/usr/ 目录。以 root 身份,将 ~/usr/local/lexmark 移动到 /usr/local/lexmark
  4. 以 root 身份运行 ~/control/postinst 以执行安装。此脚本将自动设置所有文件所有者和 chmod,然后设置一些字体、驱动程序和文档技巧。它最终还将运行 /usr/local/lexmark/network-scan.link,在您的 Arch 架构中创建多个符号链接。
  5. 重新启动后,您的扫描仪应被检测到。

选项 3:使用 AUR 软件包

安装 lexmark-network-scanAUR 软件包。

支持的设备

此过程已针对以下设备成功测试

  • Lexmark MB2236(仅 USB;网络未经测试)。
  • Lexmark MX517de(仅网络;USB 未经测试)。
  • Lexmark X204n(仅网络;USB 未经测试)。

待办事项

为了改进 Lexmark 扫描仪支持,您可以

  • 检查此过程是否适用于您的计算机和设备
  • 帮助定义此过程所需的依赖项列表
  • 创建一个 AUR 软件包,该软件包的安装不会搞乱架构。即,这样的软件包不应需要创建 /usr/lexmark 符号链接,并且应该是容器化的(例如在 /opt/lexmark 中)。

Medion

如果您拥有 Medion 的 USB 扫描仪 MD 9705,则需要下载合适的固件二进制文件。此固件文件位于 Windows 的设备驱动程序中。

查明您拥有的型号并记下 USB ID

$ lsusb
Bus 006 Device 007: ID 05d8:4003 Ultima Electronics Corp. Artec E+ 48U

https://download.medion.com/downloads/treiber/scamd9705w9xxp.exe 下载 windows 驱动程序

然后输入以下命令以提取固件文件,并将其复制到 SANE 期望的位置

$ unzip scamd9705w9xxp.exe Win2000/Artec48.usb
# cp Win2000/Artec48.usb /usr/share/sane/artec_eplus48u/Artec48.usb

Mustek

BearPaw 2400CU

与 sane-gt68xx (sane-gt68xx-firmware) 配合使用

Samsung

对于某些 Samsung MFP 打印机,您可能需要编辑 /etc/sane.d/xerox_mfp.conf

示例条目

#Samsung SCX-3200
usb 0x04e8 0x3441

根据需要更改打印机型号。您可以使用 lsusb 获取 idVendor 和 idProduct 代码。请参阅此帖子

要通过网络而不是 usb 接口访问扫描仪,请在 /etc/sane.d/xerox_mfp.conf 中添加一行,例如

#Samsung scx4500w wireless ip network address
tcp xx.xx.xx.xx

其中 xx.xx.xx.xx 是打印机的静态 ip 地址。