CUPS 与 Sun
最近我花了一些时间来构建一个长期的项目。很长一段时间以来,我一直用一台旧的台式电脑作为我的打印服务器。因为这台机器有点吵,所以不用的时候我就把它关掉。这导致一些客户端机器不喜欢打印机在错误的时间可用。
我手头还有一个带有被动冷却(大型散热片)的旧 mini-itx 主板和一对 sun 便携式 scsi 硬盘盒。巧合的是,后者可以装入前者。一个新的打印服务器的计划诞生了。
构建本身非常简单。一张 8GB 的 CF 卡作为硬盘,一个 80W 的 pico-PSU 用于将 AC-DC 转换移到盒子外面,使用一个提供 12V DC 的电源适配器。由此产生的系统完全静音且耗电不多。
在软件方面,我安装了 debian。这有两个原因:debian netinst 镜像有助于安装一个紧凑的系统,而无需下载千兆字节的内容,并且 debain 自带的内核与我的旧 Via C3 处理器(缺少可选的 i586 cmov 指令)配合良好。
运行安装程序并安装了一个最小系统后,是时候安装打印服务器功能了。这比您想象的要容易,只需 apt-get install cups 软件包即可。我也安装了一些推荐的软件包,但基本上 cups 就可以完成。
安装 cups 后,您需要调整 /etc/cups/cupsd.conf 使 cups 可供世界上的其他人使用。可以将 Listen localhost:631 行更改为 Listen 631。BrowseAllow 应允许所有。此外,Location / 标记需要 Allow all 行。进行这些更改后,只需使用 /etc/init.d/cups restart 重新启动 cups 即可。现在您应该可以以 ip.of.the.machine:631 访问您的新机器。
现在的酷孩子们打开 localhost:631,选择 admin,登录并添加打印机。但是,在这里,最酷的浏览器是 Lynx,我不喜欢使用 Lynx 配置打印机。相反,我通过命令行进行操作。 你该怎么做?基本上,它需要三个步骤。首先,使用 lpinfo 找到您的打印机。您可能希望以 root 身份运行它,因为它位于 /usr/sbin 目录中。
# lpinfo -v network socket network beh direct usb://HP/color%20LaserJet%202550%20series network http network ipp network lpd direct parallel:/dev/lp0 direct scsi serial serial:/dev/ttyS0?baud=115200 network smb
正如您所看到的,列出了一系列选项,但其中一项是有关的打印机 - 在本例中是我的旧信赖的 HP2550。然后使用 lpadmin 命令将打印机添加到系统。在下面的行中,它以名称 hp2550 添加,-v 指定有关的打印机,-P 选择一个 ppd 文件(即打印机配置)。
# lpadmin -E -p hp2550 -v "usb://HP/color%20LaserJet%202550%20series" -P /usr/share/ppd/cups-included/HP/laserjet.ppd
-E 选项很重要,因为它在 cups 中启用打印机并开始接受打印任务。如果您愿意,您可以使用以下命令稍后执行此操作。
# cupsenable hp2550 # accept hp2550
另一个值得了解的调整是如何设置默认打印机。
# lpadmin -d hp2550
由于某种原因,laserjet.ppd 实际上并没有满足我的需求。例如,结果以黑白显示。使用 http://www.openprinting.org/printers 上的打印机数据库,我能够检索到我的打印机的新 ppd。然后我只需替换 /etc/cups/ppd 目录中的 ppd,我就有了彩色打印。对于微调,lpoptions 命令非常方便。例如,将纸张尺寸更改为 A4 就这么简单。只需输入不带任何参数的 lpoptions 即可打印出每台打印机的设置列表。从该列表中,您可以找出要调整的选项。
# lpoptions -p hp2550 -o media=A4
现在我可以将打印机作为 PostScript 打印机添加到 Linux 和 Windows 中,它就可以工作了。有了我的新打印服务器硬件,它将始终处于开启状态,并且这个盒子在我的极客眼中看起来非常漂亮。 仅供参考,我不使用时会关闭打印机,但服务器只是对作业进行排队。