UMAX Astra 并口扫描仪:权限、并口共享与扫描卡顿的处理方法
这个 SANE 后端(umax1220p.sourceforge.net)在 Linux 和 FreeBSD 上驱动 UMAX Astra 610P/1220P/1600P/2000P 以及贴牌的 HP 3200C 并口扫描仪。它已经包含使用这些扫描仪所需的全部功能,剩下的只是代码清理。如果你遇到的是权限不足、扫描仪和打印机抢并口、或者高分辨率扫描时卡顿中断,下面按这三类问题分别说明原因和处理方向。
前提:先确认后端和系统环境
- 该后端自 SANE 1.0.18 起属于标准 SANE 包的一部分,凡是 SANE 能编译的平台它都能编译。
- 但只有存在并口的机器上它才有用。目前运行在 Linux 和 FreeBSD 上,理论上也应能运行于 OS/2 和其他 BSD。
- 它检测 610P、1220P、1600P、2000P 四种型号。HP 3200C 只是 UMAX 扫描仪的换牌产品,所以同样适用。
权限问题:让普通用户也能扫描
后端在条件允许时会使用 ppdev 设备。ppdev 的作用有两点:确保与打印机正确共享并口,以及允许以普通用户身份扫描,也就是不需要 root 权限。
如果你的系统上有 ppdev 而仍然必须用 root 才能扫描,检查方向是:
- 确认内核加载了并口相关支持,且
/dev/parport*或对应的 ppdev 设备节点存在。 - 确认当前用户对该设备节点有读写权限(通常通过把用户加入相应用户组,或调整设备节点的属主/权限来实现)。
- 确认 SANE 实际走的是 ppdev 路径,而不是退回到需要直接端口访问的方式。
如果系统没有可用的 ppdev,后端就无法借助它来共享并口和降权,这时普通用户扫描和打印机共存都会更麻烦。
并口共享:扫描仪和打印机抢同一个口
并口通常只有一个,打印机和扫描仪往往要共用。后端的设计意图正是通过 ppdev 来保证这种共享是正确的。也就是说,在 Linux 上优先让 ppdev 可用,是解决“扫描时打印机不能用、打印时扫描仪报错”这类冲突的关键。
在 FreeBSD 上,后端使用 ppi 设备。但页面明确指出:这个功能需要更多测试才能真正工作,因为 ppi 设备似乎存在一个缺陷,会阻止在 EPP 模式下从扫描仪读取数据。所以如果你在 FreeBSD 上遇到读取失败或共享异常,这属于已知的、尚未完全解决的问题,而不是你的配置错误。
扫描卡顿、中断或失败:延迟敏感
后端与扫描仪的所有通信都在用户态完成,因此它对延迟非常敏感。页面给出的直接建议是:在做高分辨率大图扫描时,必须避免让系统处于高负载状态。
具体做法:
- 扫描期间不要同时跑编译、视频转码、大量磁盘 I/O 等吃 CPU 或占用并口的任务。
- 高分辨率(例如 600 dpi 或 600x1200 dpi)大幅面扫描时尤其要注意,这类任务本身数据量大、耗时长,最容易受延迟影响。
- 如果扫描总是中途出错,先降低分辨率或缩小扫描区域验证是否为负载/延迟问题,再逐步加回去。
支持的扫描参数(用于判断问题是否出在参数上)
后端支持以下能力,可用来排除“是不是根本不支持这个设置”:
| 项目 | 610P | 1220P 及更高型号 |
|---|---|---|
| 分辨率 | 75、150、300、300x600 dpi | 75、150、300、600、600x1200 dpi |
| 色彩 | 彩色、灰度 | 彩色、灰度 |
| 线稿 | 软件线稿模式 | 软件线稿模式 |
此外还提供红、绿、蓝三通道独立手动增益控制,或自动校准;灯管可开可关;支持自定义 gamma 表。如果某个参数设置后行为异常,可先对照上表确认该型号是否支持。
进一步排查的入口
页面本身提供了这些资源分类,遇到具体缺陷或失败案例时可以按类别查阅:download、install、use、known bugs and issues、troubleshooting、lists、todo、changelog、links。页面也欢迎反馈 bug、失败或成功案例,反馈对象为 stefdev。邮件列表(lists)适合查找他人是否遇到过同类权限、并口共享或延迟问题。