⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scanners.html

📁 这是很好的学习嵌入式LINUX的文章
💻 HTML
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta name="generator" content="HTML Tidy, see www.w3.org" /><title>图象扫描仪</title><meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.7" /><link rel="HOME" title="FreeBSD 使用手册" href="index.html" /><link rel="UP" title="多媒体" href="multimedia.html" /><link rel="PREVIOUS" title="安装电视卡" href="tvcard.html" /><link rel="NEXT" title="配置FreeBSD的内核" href="kernelconfig.html" /><link rel="STYLESHEET" type="text/css" href="docbook.css" /><meta http-equiv="Content-Type" content="text/html; charset=GB2312" /></head><body class="SECT1" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#840084"alink="#0000FF"><div class="NAVHEADER"><table summary="Header navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><th colspan="3" align="center">FreeBSD 使用手册</th></tr><tr><td width="10%" align="left" valign="bottom"><a href="tvcard.html"accesskey="P">后退</a></td><td width="80%" align="center" valign="bottom">章 7. 多媒体</td><td width="10%" align="right" valign="bottom"><a href="kernelconfig.html"accesskey="N">前进</a></td></tr></table><hr align="LEFT" width="100%" /></div><div class="SECT1"><h1 class="SECT1"><a id="SCANNERS" name="SCANNERS">7.6. 图象扫描仪</a></h1><i class="AUTHORGROUP"><span class="CONTRIB">撰写人</span> Marc Fonvieille.</i> <div class="SECT2"><h2 class="SECT2"><a id="AEN9062" name="AEN9062">7.6.1. 介绍</a></h2><p>像任何其他的现代操作系统一样,FreeBSD 可以使用图像扫描仪。 对扫描仪的标准的访问是通过FreeBSD Ports Collection 中的 <b class="APPLICATION">SANE</b> (Scanner Access Now Easy)<acronym title="Application Programming Interface" class="ACRONYM">API</acronym> 提供的。<b class="APPLICATION">SANE</b> 也会使用一些 FreeBSD 设备驱动来访问扫描仪硬件。</p><p>FreeBSD 支持 SCSI 和 USB 扫描仪。 在做任何配置之前请确保您的扫描仪被 <bclass="APPLICATION">SANE</b> 支持。<b class="APPLICATION">SANE</b> 有一个 <ahref="http://sane-project.org/sane-supported-devices.html"target="_top">支持的设备</a>列表,可以为您提供有关扫描仪的支持情况和状态的信息。 <spanclass="CITEREFENTRY"><span class="REFENTRYTITLE">uscanner</span>(4)</span>手册页也提供了一个支持的 USB 扫描仪列表。</p></div><div class="SECT2"><h2 class="SECT2"><a id="AEN9075" name="AEN9075">7.6.2. 内核配置</a></h2><p>上面提到 SCSI 和 USB 接口都是支持的。 取决于您的扫描仪接口,需要不同的设备驱动程序。</p><div class="SECT3"><h3 class="SECT3"><a id="SCANNERS-KERNEL-USB" name="SCANNERS-KERNEL-USB">7.6.2.1. USB接口</a></h3><p>默认的 <tt class="FILENAME">GENERIC</tt> 内核包含了支持 USB 扫描仪需要的设备驱动。如果您决定使用一个定制的内核, 确保下面在您的内核配置文件中存在下面这些行:</p><pre class="PROGRAMLISTING">device usbdevice uhcidevice ohcidevice uscanner</pre><p>取决于您主板上的 USB 芯片, 您只需要 <var class="LITERAL">device uhci</var> 或者 <varclass="LITERAL">device ohci</var> 中的一种,但是两个都在 内核配置文件中是没有害处的。</p><p>如果您不想重新编译内核而且您的内核也不是 <tt class="FILENAME">GENERIC</tt> 的,您可以用 <span class="CITEREFENTRY"><span class="REFENTRYTITLE">kldload</span>(8)</span>命令直接加载 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">uscanner</span>(4)</span> 设备驱动模块:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbd class="USERINPUT">kldload uscanner</kbd></pre><p>要在每次系统启动的时候加载这个模块, 添加下面这行到 <ttclass="FILENAME">/boot/loader.conf</tt> 中:</p><pre class="PROGRAMLISTING">uscanner_load="YES"</pre><p>在用正确的内核重新启动后, 或者在加载了需要的模块之后,插上您的 USB 扫描仪。扫描仪会出现在您的系统消息缓存 (<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">dmesg</span>(8)</span>)中,就像这样:</p><pre class="SCREEN">uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2</pre><p>这表明我们的扫描仪正在使用 <tt class="FILENAME">/dev/uscanner0</tt> 设备节点。</p><div class="NOTE"><blockquote class="NOTE"><p><b>注:</b> 在 FreeBSD&nbsp;4.X 上,USB 进程(<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">usbd</span>(8)</span>) 必须运行来检测 USB 设备。要启用它, 添加<var class="LITERAL">usbd_enable="YES"</var> 到您的 <ttclass="FILENAME">/etc/rc.conf</tt> 文件中并重新启动。</p></blockquote></div></div><div class="SECT3"><h3 class="SECT3"><a id="AEN9114" name="AEN9114">7.6.2.2. SCSI 接口</a></h3><p>如果您的扫描仪是 SCSI 接口的, 重要的是要知道您使用哪种 SCSI 控制器。 取决于所使用的SCSI 芯片, 您需要调整内核配置文件。 <tt class="FILENAME">GENERIC</tt> 的内核支持最常用的SCSI 控制器。确保阅读 <tt class="FILENAME">NOTES</tt> 文件(在 FreeBSD&nbsp;4.x 下面是 <ttclass="FILENAME">LINT</tt>)并在您的内核配置文件中添加正确的行。 除了 SCSI适配器驱动之外, 您还需要在内核配置文件中有如下行:</p><pre class="PROGRAMLISTING">device scbusdevice pass</pre><p>一旦完全编译好您的内核, 您就可以在启动时的系统消息缓冲中看到这些设备:</p><pre class="SCREEN">pass2 at aic0 bus 0 target 2 lun 0pass2: &lt;AGFA SNAPSCAN 600 1.10&gt; Fixed Scanner SCSI-2 devicepass2: 3.300MB/s transfers</pre><p>如果您的扫描仪没有在系统启动的时候加电, 很可能还需要强制手动检测一下,用 <spanclass="CITEREFENTRY"><span class="REFENTRYTITLE">camcontrol</span>(8)</span> 命令执行一次SCSI 总线扫描:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbd class="USERINPUT">camcontrol rescan all</kbd>Re-scan of bus 0 was successfulRe-scan of bus 1 was successfulRe-scan of bus 2 was successfulRe-scan of bus 3 was successful</pre><p>然后扫描仪就会出现在 SCSI 设备列表里:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbd class="USERINPUT">camcontrol devlist</kbd>&lt;IBM DDRS-34560 S97B&gt;              at scbus0 target 5 lun 0 (pass0,da0)&lt;IBM DDRS-34560 S97B&gt;              at scbus0 target 6 lun 0 (pass1,da1)&lt;AGFA SNAPSCAN 600 1.10&gt;           at scbus1 target 2 lun 0 (pass3)&lt;PHILIPS CDD3610 CD-R/RW 1.00&gt;     at scbus2 target 0 lun 0 (pass2,cd0)</pre><p>有关 SCSI 设备的更多细节,可以查看 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">scsi</span>(4)</span> 和 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">camcontrol</span>(8)</span> 手册页。</p></div></div><div class="SECT2"><h2 class="SECT2"><a id="AEN9141" name="AEN9141">7.6.3. SANE 配置</a></h2><p><b class="APPLICATION">SANE</b> 系统分为两部分: 后端(<ahref="http://www.FreeBSD.org/cgi/url.cgi?ports/graphics/sane-backends/pkg-descr"><ttclass="FILENAME">graphics/sane-backends</tt></a>) 和前端(<ahref="http://www.FreeBSD.org/cgi/url.cgi?ports/graphics/sane-frontends/pkg-descr"><ttclass="FILENAME">graphics/sane-frontends</tt></a>)。 后端部分提供到扫描仪自身的访问。 <bclass="APPLICATION">SANE</b> 的 <ahref="http://sane-project.org/sane-supported-devices.html"target="_top">支持设备</a>列表详细说明了哪一个后端可以支持您的图象扫描仪。如果您想使用您的设备,就必须为您的扫描仪选定正确的后端。 前端部分提供图形化的扫描界面 (<bclass="APPLICATION">xscanimage</b>)。</p><p>要做的第一件事就是安装 <ahref="http://www.FreeBSD.org/cgi/url.cgi?ports/graphics/sane-backends/pkg-descr"><ttclass="FILENAME">graphics/sane-backends</tt></a> port 或者 package。然后,使用 <ttclass="COMMAND">sane-find-scanner</tt> 命令来检查 <b class="APPLICATION">SANE</b>系统做的扫描仪检测:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbd class="USERINPUT">sane-find-scanner -q</kbd>found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3</pre><p>输出显示了扫描仪的接口类型和扫描仪连接到系统上的设备节点。生产厂家和产品型号可能没有显示,不过不重要。</p><div class="NOTE"><blockquote class="NOTE"><p><b>注:</b> 一些 USB 扫描仪需要您加载固件,后端的手册页中有这方面的解释。 您也应该阅读<span class="CITEREFENTRY"><span class="REFENTRYTITLE">sane-find-scanner</span>(1)</span>和 <span class="CITEREFENTRY"><span class="REFENTRYTITLE">sane</span>(7)</span>手册页。</p></blockquote></div><p>现在我们需要检查扫描仪是否可以被扫描前端识别。 默认情况下, <bclass="APPLICATION">SANE</b> 后端自带一个叫做 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">scanimage</span>(1)</span> 的命令行工具。这个命令允许您列出设备以及从命令行执行图片扫描。 <var class="OPTION">-L</var>选项用来列出扫描仪设备:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbd class="USERINPUT">scanimage -L</kbd>device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner</pre><p>没有输出或者消息说明扫描仪没有识别到, 这表明 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">scanimage</span>(1)</span> 无法识别扫描仪。如果发生这种情况,您需要编辑后端配置文件定义所用的扫描仪设备。 <ttclass="FILENAME">/usr/local/etc/sane.d/</tt> 目录包含了所有的后端配置文件。识别的问题会出现在某些 USB 扫描仪上。</p><p>例如,对于<a href="scanners.html#SCANNERS-KERNEL-USB">&#181;&#218; 7.6.2.1节</a>中所用的 USB 扫描仪, <tt class="COMMAND">sane-find-scanner</tt>给我们下面的信息:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbd class="USERINPUT">sane-find-scanner -q</kbd>found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0</pre><p>扫描仪被正确的探测到了,它使用 USB 接口,连接在 <ttclass="FILENAME">/dev/uscanner0</tt> 设备节点上。我们现在可以检查看看扫描仪是否被正确的识别:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbd class="USERINPUT">scanimage -L</kbd>No scanners were identified. If you were expecting something different,check that the scanner is plugged in, turned on and detected by thesane-find-scanner tool (if appropriate). Please read the documentationwhich came with this software (README, FAQ, manpages).</pre><p>既然扫描仪没有被识别,我们就需要编辑 <ttclass="FILENAME">/usr/local/etc/sane.d/epson.conf</tt> 文件。所用的扫描仪型号是 EPSONPerfection 1650, 这样我们知道扫描仪应使用 <var class="LITERAL">epson</var>后端。确保阅读后端配置文件中的帮助注释。改动非常简单:注释掉导致您的扫描仪使用错误接口的所有行 (在我们这种情况下,我们将注释掉从<var class="LITERAL">scsi</var> 开始的所有行,因为我们的扫描仪使用 USB接口),然后在文件的结尾添加指定的接口和所用的设备节点。这种情况下,我们添加下面这行:</p><pre class="PROGRAMLISTING">usb /dev/uscanner0</pre><p>请确保阅读后端配置文件提供的注释以及后端手册页了解更多细节,并使用正确的语法。我们现在可以检验扫描仪是否被识别到了:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbd class="USERINPUT">scanimage -L</kbd>device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner</pre><p>我们的 USB 扫描仪被识别到了。如果商标和型号不匹配也不重要。 相关的关键一条是 <varclass="LITERAL">`epson:/dev/uscanner0'</var> 字段,这个给了我们正确地后端名称和正确的设备节点。</p><p>一旦 <tt class="COMMAND">scanimage -L</tt> 命令可以看到扫描仪,配置就完成了。设备现在准备好等待扫描了。</p><p><span class="CITEREFENTRY"><span class="REFENTRYTITLE">scanimage</span>(1)</span>允许我们从命令行执行图片扫描, 相比之下使用图形用户界面来执行图片扫描会更好。 <bclass="APPLICATION">SANE</b> 提供了一个简单但实用的图形界面: <bclass="APPLICATION">xscanimage</b> (<ahref="http://www.FreeBSD.org/cgi/url.cgi?ports/graphics/sane-frontends/pkg-descr"><ttclass="FILENAME">graphics/sane-frontends</tt></a>)。</p><p><b class="APPLICATION">Xsane</b> (<ahref="http://www.FreeBSD.org/cgi/url.cgi?ports/graphics/xsane/pkg-descr"><ttclass="FILENAME">graphics/xsane</tt></a>)是另一个流行的图形扫描前端。这个前端提供了一些高级特性, 比如多样的扫描模式(photocopy,fax,等。),色彩校正,批量扫描,等等。这两个程序都可以作为 <b class="APPLICATION">GIMP</b>的插件使用。</p></div><div class="SECT2"><h2 class="SECT2"><a id="AEN9215" name="AEN9215">7.6.4. 授予其他用户扫描权限</a></h2><p>前面所有的操作都是用 <tt class="USERNAME">root</tt> 权限来完成的。You may however,need 然而您可能需要让其他的用户也可以访问扫描仪。用户需要有扫描仪所用的设备节点的读和写权限。 比如,我们的 USB 扫描仪使用设备节点 <ttclass="FILENAME">/dev/uscanner0</tt>,这个节点属于 <tt class="GROUPNAME">operator</tt>组。将用户 <tt class="USERNAME">joe</tt> 添加到 <tt class="GROUPNAME">operator</tt>组会允许他使用扫描仪:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbd class="USERINPUT">pw groupmod operator -m <varclass="REPLACEABLE">joe</var></kbd></pre><p>要了解更多细节请阅读 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">pw</span>(8)</span> 手册页。</p><div class="NOTE"><blockquote class="NOTE"><p><b>注:</b> 当然,考虑安全的因素,您在添加用户到任何组, 尤其是 <ttclass="GROUPNAME">operator</tt> 组的时候都应该三思而后行。</p></blockquote></div></div></div><div class="NAVFOOTER"><hr align="LEFT" width="100%" /><table summary="Footer navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><td width="33%" align="left" valign="top"><a href="tvcard.html"accesskey="P">后退</a></td><td width="34%" align="center" valign="top"><a href="index.html"accesskey="H">起点</a></td><td width="33%" align="right" valign="top"><a href="kernelconfig.html"accesskey="N">前进</a></td></tr><tr><td width="33%" align="left" valign="top">安装电视卡</td><td width="34%" align="center" valign="top"><a href="multimedia.html"accesskey="U">上一级</a></td><td width="33%" align="right" valign="top">配置FreeBSD的内核</td></tr></table></div></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -