之前自己总结了打印机驱动以及打印连接协议等等,但对扫描仪一直没怎么注意,一是客户扫描仪用的少,二是遇到的客户扫描仪都能正常驱动,下载个扫描易就搞定了,尤其是很多一体机官网也带了驱动,但实际上现在的Linux平台都是采用SANE这个框架来进行扫描了,扫描本身比较简单,不像打印各种历史协议,打印设备也是五花八门。
SANE框架里面,前段应用软件和后端的驱动分开,扫描易,Xsane界面,命令行scanimage,都是扫描前端,驱动这些是后端,后端除了实际的驱动也包括网络以及特殊后端 元(meta)backend
SANE配置目录 /etc/sane.d/
dll.conf 决定了要加载哪些后端模块(这些模块在官网也有对应的描述及man手册)后端可以理解为驱动,特殊的后端包括网络,网络上其他saned服务也可以是后端,可以配置/etc/sane.d/net.conf文件,输入网络上saned服务的机器IP,这样可以通过添加扫描别人的机器上的扫描仪了。
dll.conf 里定义的后端在同样的目录会存在 模块名.conf的配置文件,扫描仪测试过程中最主要的问题就是查看后端驱动是否支持,可以用
export SANE_DEBUG_DLL=255
xsane
这样的方法来启动xsane这个前段,启动的时候会列出他加载了哪些后端,然后去寻找了哪些backend的so.这样就知道你的物理打印机驱动是不是被添加上了。
添加驱动理论上就是加后端或者在后端的配置文件添加VID PID 或者设备文件名
然后对应的后端的so文件所在的包是libsane:amd64 和libsane:i386两个包。
摘取canon_dr.conf配置文件中的一段
# DR-C120
usb 0x1083 0x1651# P-201
usb 0x1083 0x1652# DR-F120
option duplex-offset 1640
usb 0x1083 0x1654
可以看到,canon_dr.conf 配置文件里面是配置了很多型号的打印机,摘取的部分是usb连接的,写入了usb设备的 VID PID
SANE先通过 /etc/sane.d/dll.conf 和dll.d目录里面的配置文件查看要加载哪些后端,然后在 /etc/sane.d下加载对应的.conf配置文件以及对应的后端so驱动
比如 dll.conf里配置了canon_dr ,他会读取canon_dr.conf 以及
/usr/lib/x86_64-linux-gnu/sane/libsane-canon_dr.so.1或者
/usr/lib/i386-linux-gnu/sane/libsane-canon_dr.so.1
这样就完成了驱动的加载。这时候通过前端程序就可以查看到连接到系统的扫描设备了。
实际测试64位的xsane无法调用到32位的so文件,所以如果安装的
佳能驱动是32为的后端,就得安装32位的xsane sudo apt install xsane:i386
另外发现佳能的私有驱动和现有标准SANE后端有一些不同,需要添加的时候单独对待。这个有时间单独再记录。
当然,扫描驱动的协议除了SANE ,还有TWAIN等其他集中,可以参考
文件扫描-TWAIN,WIA,ISIS,SANE_大名软件的博客-CSDN博客_twain这个文档扫描功能是软件开发者建立一个网站,内容管理系统,或办公自动化系统的重要组成部分。 市场上有几种不同的扫描驱动程序:TWAINWIAISISSANE当然,对于什么是最佳解决方案,您可能会感到困惑。TWAIN,WIA,ISIS和SANE都是支持从扫描仪获取物理图像并将数字图像存储在计算机上的扫描驱动程序。 尽管他们基本上试图实现相同的任务,但搜索热门度显示TWAIN处于领先地位。这四个...https://blog.csdn.net/weixin_44795817/article/details/104951687这个地址的介绍。