3.4. SCSI 支持

编写: Bruce Milner;补充:Andreas Mohr

(提取自 wine/documentation/aspi)

这个文件描述设置 Windows ASPI 接口。

警告/警告/警告!!!!!!

 
如果不正确使用可能会使你的系统报废
如果正确使用可能会使你的系统报废            

我已经说过,ASPI 是从 windows 程序到 SCSI 设备的直接连接。ASPI 只转发程序发送到 SCSI 总线上 SCSI 命令。

如果在你的设置文件中使用了错误的 SCSI 命令,你可以向不合适的设备发送完全伪造的命令 - 例如格式化你的硬设备(假定这个设备给予你权限 - 如果你以 root 运行,所有赌注都将失去)。

所以请确保把程序不需要的所有 SCSI 设备的权限设置为尽可能的受限制!

设置扫描仪的指导: (至少让扫描仪工作起来) (同样适用于其他设备如 CD 刻录机, MO 驱动器,...,诸如此类)

3.4.1. Windows 要求

  1. 扫描仪软件需要使用 "Adaptec" 兼容驱动器(ASPI)。至少与 Mustek 一起,它们允许你选择使用内置卡或 "Adaptec (AHA)" 兼容驱动器。任何其他方式都不能工作。支持通过 DOS ASPI 驱动器(例如, ASPI2DOS) 访问扫描仪的软件。 [AM]

  2. 你可能需要这个软件的一个真实的 windows 安装来正确设置 LUN's/SCSI id。我也不是非常确定。

3.4.2. LINUX 要求

  1. 在 linux 下必须支持你的 SCSI 卡。对未知 SCSI 卡将不能工作。甚至对廉价的垃圾 "扫描仪专用" 控制器在网上都有特定的 Linux 驱动程序。如果你要使用你的 IDE 设备,你需要使用 ide-scsi 模拟器。阅读 http://www.linuxdoc.org/HOWTO/CD-Writing-HOWTO.html 来获得 ide-scsi 设置指导。把 SCSI 驱动程序编译到你的内核中。

  2. 对于最新的(2.2.x)内核好象不要求别的什么了: Linux 缺省使用比 Windows 小的 SCSI 缓冲区。定义了 SG_BIG_BUFF(在 sg.h 中)的内核建造缺省设置太低。SANE 计划推荐 130560 好象就工作的很好。这要求重新建造系统内核。

  3. 为扫描仪建造一个设备(一般 SCSI 设备) - 关于设备编号请参见 http://www.linuxdoc.org/HOWTO/SCSI-Programming-HOWTO.html 的 SCSI 编程 HOWTO。

  4. 我建议让扫描仪设备对一个组可写。我建立了一个叫 scanner 的组并添加上了我自己。以 root 运行会增加向不适当的设备发送错误 SCSI 命令的危险。使用常规用户,你将受到更好的保护。

  5. 对于 Win32 软件(WNASPI32),Wine 在适当的位置进行自动检测。对于 Win16 软件(WINASPI),你需要在 ~/.wine/config 中为你的特定扫描仪添加一个 SCSI 设备条目。格式是 [scsi cCtTdD],这里的 "C" = "controller""T" = "target"D=LUN

    例如,我设置扫描仪为 controller 0、Target 6、LUN 0
    [scsi c0t6d0]
    "Device" = "/dev/sgi"
                  
    对你的特定的 SCSI 设置可能不同。

3.4.3. 一般信息

我使用一个包 "ipplus" 承载 mustek 扫描仪。这个程序使用 TWAIN 驱动器规定来访问扫描仪。

(TWAIN 管理器)

 
ipplus.exe <---> (TWAIN INTERFACE) <---> (TWAIN DATA SOURCE . ASPI) -> WINASPI
          

3.4.4. 注意/缺陷

最大的缺陷是目前只能在 linux 下工作。

ASPI 代码只在下列扫描仪上进行了测试: 

我不担保 ASPI 代码。它可以使我的扫描仪工作。但可能使你的驱动器爆炸。我无法确定。我承担零责任!