# 11.2.连接打印机

打印机通过多种方式连接到计算机系统。小型桌面打印机通常直接连接到计算机的 `USB` 端口。旧款打印机则连接到并行端口或“打印机”端口。一些打印机直接连接到网络，使多个计算机可以共享这些打印机。少数打印机使用罕见的串口连接。

FreeBSD 可以与所有这些类型的打印机通信。

**USB**

`USB` 打印机可以连接到计算机上的任何可用 `USB` 端口。

当 FreeBSD 检测到 `USB` 打印机时，会创建两个设备条目：/dev/ulpt0 和 /dev/unlpt0。发送到任何一个设备的数据都会被传输到打印机。每次打印作业完成后，ulpt0 会重置 `USB` 端口。重置端口可能会导致某些打印机出现问题，因此通常使用 unlpt0 设备，unlpt0 不会重置 USB 端口。

**并行（IEEE-1284）**

并行端口设备是 /dev/lpt0。无论是否连接了打印机，该设备都会出现，但并不会自动检测。

厂商已经逐渐放弃这些“传统”端口，许多计算机不再配备这些端口。可以使用适配器将并行打印机连接到 `USB` 端口。使用这样的适配器，打印机可以像真正的 `USB` 打印机一样进行处理。名为 *打印服务器* 的设备也可以用于将并行打印机直接连接到网络。

**串口（RS-232）**

串口是另一种传统端口，除了在某些特殊应用中，打印机通常不再使用串口。电缆、连接器和所需的接线方式差异较大。

对于内置于主板的串口，串口设备名称为 /dev/cuau0 或 /dev/cuau1。串口 `USB` 适配器也可以使用，这些适配器会显示为 /dev/cuaU0。

与串口打印机通信时，必须知道几个通信参数。最重要的是 *波特率* 或 `BPS`（每秒比特数）和 *校验位*。这些值会有所不同，但典型的串口打印机使用 9600 的波特率且没有校验位。

**网络**

网络打印机直接连接到本地计算机网络。

必须知道打印机的 `DNS` 主机名。如果打印机通过 `DHCP` 分配了动态地址，应动态更新 `DNS`，以确保主机名始终拥有正确的 `IP` 地址。为了避免这个问题，许多网络打印机会被分配静态 `IP` 地址。

大多数网络打印机支持使用 LPD 协议发送的打印作业。还可以指定打印队列的名称。一些打印机会根据使用的队列不同而以不同的方式处理数据。例如，`raw` 队列会原样打印数据，而 `text` 队列会在纯文本中添加回车符。

许多网络打印机也可以直接通过端口 9100 打印数据。

## 11.2.1. 总结

有线网络连接通常是最容易设置的，并且提供最快的打印速度。对于直接连接到计算机，`USB` 由于速度和简便性而更受青睐。并行连接可以工作，但在电缆长度和速度上有局限性。串口连接则更难配置，电缆接线在不同型号之间差异很大，并且通信参数（如波特率和校验位）增加了配置的复杂性。幸运的是，串口打印机很少见。
