给扫描仪在Linux系统里安个家

来源: 作者:otto
  Linux下扫描仪的设置和使用明显比Windows操作系统要麻烦得多,其实当前的许多问题都是由于内核和SCSI驱动程序的一些缺陷造成的,如果使用较新的内核版本,只要经过简单的补丁和重新编译就可以让你的扫描仪在Linux下扫出一片斑斓色彩!

  笔者使用的操作系统是中文Linux中最新发布的“蓝点2.0”(BluePoint 2.0)和 “Microtek Scanmaker X6”扫描仪。使用其他Linux版本或其他品牌扫描仪的用户也可以通过类
似的方法下载相关品牌的补丁文件和驱动程序即可。

  方法与步骤:

  (一)下载相关文件

  首先,从最基本的开始——内核的SCSI驱动程序的源代码补丁文件。众所周知,蓝点使用的内核版本是2.2.16,只要下载一个对应Linux内核版本的补丁文件能支持就行了。当你在Linux的“/usr/src”目录里安装了内核源代码后,你可以通过从网站(people.redhat.com/twaugh/parport )下载免费取得这个补丁文件“Linux 2.2.15pre14-ppscsi1”,如果你下载的是“Linux 2.2.16pre14-ppscsi1”的补丁文件就更好,高版本一定能向下兼容而且性能比低版本的要好得多。

  接着是“Linux”系统必不可少的扫描仪驱动程序接口——“SANE”。你可以到(www.mostang.com/sane)下载目前最新的版本。笔者建议你不要下载它的“RPM压缩文包”,而是要下载它的源代码。因为下一个步骤要靠手工来完成某些方面的设置。

  (二)对内核打补丁文件

  为了以防万一,在对内核打补丁文件前应该对内核进行备份,或者出现问题后可以从安装光盘里重新安装内核源代码软件包(光碟中/BluePoint/RPMS/kernel-source-2.2.16-1.i386.rpm)。 当你下载了内核补丁文件后,你要以“root”身份进入系统,把补丁文件放到“/usr/src”目录下,还要依次执行以下命令:

  1、 mv ppSCSI*.patch /usr/src

  2、 patch -p0 〈 ppSCSI*.patch

  此时,内核已经被打好补丁文件了,跟着到了设置和编译的步骤。

  3、 进入源代码目录(/usr/src/linux):cd /usr/src/linux

  4、 调用“make”源代码编译控制程序:“make menuconfig ”

  5、 在控制程序里“SCSI support”选项下(图1),选择“SCSI support",对“SCSI support”和“Generic SCSI support”两项,按下“Y”即可把SCSI支持内嵌到源代码里(显示出“*”号)或者按下“M”把SCSI支持编译为模块(显示出“M”号,使用该模块时必须动态加载)。


图1

  6、 在控制程序里“SCSI support”选项下(如图2),进入“SCSI low level drivers”选项目录,选择“parallel port SCSI adapter”(并行SCSI适配器)和“Onspec 90c26 adapter”(Onspec 90c26适配器)。


图2

  7、 完成设置后,编译内核,编译和安装这些模块。

  (三)编译和安装“SANE”和“Microtek”驱动程序

  笔者下载得到SANE的驱动程序是“sane-1.0.2.tar.gz”,Microtek驱动程序是“microtek2-0.8.tar.gz”。

  当你下载得到了这两个文件后,就以“root”账号进入系统,首先把“SANE”解压缩:tar -xvzf sane-1.0.1.tar.gz 。然后把“microtek2”后台控制程序解压缩:tar -xvzf microtek2-0.8.tar.gz。

  解压后你会看到两个新文件:“microtek2.c”和“microtek2.h”。把它们复制到“SANE”源代码的“backend”目录里,接着进入“SANE”的源代码目录并编译它,如下即可:

  cd sane-1.0.1

  ./configure

  make

  make install

  (四)加载驱动模块

  现在你已经成功在望了,在重启机器之前,必须先打开扫描仪的电源。因为SCSI驱动程序只在启动的时候才检查第2个并行口(COM),如果扫描仪未通电,系统会报告找不到“SANE”设备。在重启后,还必须把所编译的模块加载到内核里。

  如果你的linux系统是“蓝点2.0”,要安装一个动态模块非常容易。实际上,你可以只安装最必要的模块就行了,在运行时其他依赖模块被调用的时候会被自动的装入。先以“root”账号进入登录系统,然后根据情况加载驱动模块:

  如果在第二步中SCSI驱动被编译到内核里:需执行“insmod onscsi” ;

  如果在第二步中SCSI驱动被编译为动态模块,你必须在使用“insmod scsi_mod”(scsi_mod即任何SCSI设备驱动模块)把它加载进来。要执行的命令是:“insmod ppscsi” ,然后是“insmod onscsi ”。

  此时你就可以使用扫描仪了。但是这样必须在每次启动后,都执行这些命令才能使用扫描仪。其实如果想一劳永逸,只要把这两行命令加到系统启动文件“/etc/rc.d/rc.local”的最后就行了(注意:必须是“root”账号登录才有权修改):

  insmod ppscsi

  insmod onscsi

  (五)设置扫描仪设备

  进入“SANE”的源代码的“tools”目录,里面有一个名为“find-scanner”的命令,运行它:“./find-scanner -v”。 它会找到扫描仪并告诉你它的设备位置(也许你必须使用“Shift+PageUp”把屏幕往上翻页才能看到这些信息)。它的位置通常是在“/dev/sg0”或“/dev/sga”,有时候两者会同时出现。

  接着键入命令指明扫描仪设备:“ln -s /dev/sg0 /dev/scanner ”。如果让所有的账号都可以使用扫描仪,则键入命令:“chmod 666 /dev/sga” (这里的dev/sg0都是指扫描仪设备的位置) 。

  好了,这样你就可以打入“scanimage”或者“xscanimage”随时享受扫描乐趣了!

  在Linux操作系统的世界,给你的扫描仪在Linux里安个家应该是件不难的事情,但从整个工作而言,当然比其他操作系统(Windows)要麻烦且困难得多,需要掌握一部分关键命令,但愿通过本文能给你一点了解。 从而加深对“Linux操作系统”的喜爱。


时间:2001-12-10 09:19 来源: 作者:otto 原文链接

好文,顶一下
(0)
0%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量