使用 Raspberry Pi 和 CUPS 设置打印服务器
使用 Android 手机打印到有线打印机通常很困难,但打印服务器可以轻松实现。打印服务器对小型办公室很有用,在那里一个人可以轻松地打印到任何办公室打印机。另一个优点是我们不需要在我们的任何设备上安装打印机驱动程序。
CUPS 简介
CUPS(通用 Unix 打印系统)是一种用于基于类 UNIX 操作系统的计算机的打印系统。它使运行它的计算机能够充当打印服务器。运行 CUPS 的计算机能够接受来自多个设备的作业、处理它们并将其传递到适当的打印机进行打印。在本教程中,我们将在Raspberry Pi 3 Model B+上设置 CUPS 。您可以使用任何其他 Raspberry Pi 型号。
要求
- 树莓派
- SD 卡(至少 8GB)和 SD 卡读卡器
- USB打印机
- 以太网电缆(如果您的 Pi 支持 Wi-Fi,则可选)
- 电源
在 SD 卡上安装操作系统
要设置我们的打印服务器,我们需要一个可以在我们的树莓派上运行的操作系统。如果您已经准备好在 SD 卡上安装操作系统,则可以跳到过,对于本文,我们将使用带桌面的 Raspberry Pi OS(撰写本文时最新)。
请注意,SD 卡中的所有内容都将被擦除。
- 从这里下载最新的“带桌面的 Raspberry Pi OS” zip文件。
2. 解压下载的文件,得到. img 操作系统映像文件。
3. 下载并安装Etcher。Etcher 是一个多平台工具,可以安全轻松地将操作系统映像闪存到 SD 卡和 USB 驱动器。
4. 将 SD 卡插入读卡器。将读卡器插入 PC。
5. 打开 Etcher 并选择提取的图像文件。选择您的 SD 卡并单击 Flash。这将开始在 SD 卡上写入操作系统。
6. 写入完成后,安全地从读卡器中取出 SD 卡。
设置树莓派
在设置打印服务器之前,我们需要设置我们的树莓派。您可以进行正常设置(将显示器、键盘和鼠标连接到您的 Pi)或无头设置(使用 ssh 或 vnc)。如果您熟悉使用 ssh,则可以执行无头设置。对于本文,我们将执行正常设置。
- 将 Pi 连接到显示器、键盘和鼠标。将 SD 卡插入 Pi。
- 打开电源。等待大约两分钟,直到操作系统启动。
3. 完成屏幕初始设置:设置键盘语言、连接无线网络、设置普通用户帐户pi
密码、设置系统管理员帐户密码root
。
最初设定
4. 我们需要确保我们的 pi 具有操作系统的所有最新更新。为此,请打开一个终端窗口。
sudo apt-get update
最后重启你的 Pi
在这一部分,我们将在 Pi 上设置我们的打印机服务器软件 CUPS。运行 CUPS 的计算机 (Raspberry Pi) 能够接受来自客户端设备的作业、处理它们并将其传递到适当的打印机进行打印。
设置打印服务器软件 CUPS
在你的树莓派上打开一个新的终端窗口(或 ssh)并跟随。
1. 更新软件
我们需要确保我们的 Pi 运行最新的软件。
sudo apt-get update
sudo apt-get upgrade
重启树莓派
sudo reboot
2.使用静态IP
我们需要对系统进行一些调整,以便我们可以将 Pi 用作网络上的“服务器”。我们需要设置DHCP客户端使用静态IP地址;默认情况下,DHCP 客户端可能会选择任何可用的网络地址,这使得知道如何通过网络连接到 Raspberry Pi 变得很棘手。
我们首先编辑 DHCP 配置文件
sudo nano /etc/dhcpcd.conf
滚动到文件底部并添加以下一个或两个片段,具体取决于您是要为有线连接(eth0)还是无线连接(wlan0)设置静态 IP 地址。
interface eth0
static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
interface wlan0
static ip_address=192.168.0.190/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
- interface:您正在为其设置配置的网络接口。
- static ip_address:这是您要将设备设置为的 IP 地址。(确保在最后留下 /24)
- static routers:这是您网关的 IP 地址(可能是 IP 地址或您的路由器)
- static domain_name_servers:这是您 DNS 的 IP 地址(可能是您路由器的 IP 地址)。您可以在此处添加多个用一个空格分隔的 IP 地址。
使用Ctrl + X保存文件,然后按Y,然后按Enter。
最后,重启你的树莓派。
注意:您可能有不同的网络配置,其中地址类别和 IP 地址可能不同。小心执行此步骤,否则 Pi 可能会遇到连接问题。要了解必须使用的 IP 地址,请运行并观察inet和网络掩码值:
ifconfig -a
3.安装CUPS
接下来,我们需要安装 CUPS。这将需要一些时间,但会安装 CUPS 和其他依赖项,如 samba、perl 和其他几个软件或库。
sudo apt-get install cups
4. 配置 CUPS
我们需要对 CUP 的配置文件进行一些更改。可以使用以下命令编辑配置文件:
sudo nano /etc/cups/cupsd.conf
将以下行更改/添加到配置文件中。这些更改将使我们能够与 CUPS 面板进行交互。
# listen on all interfaces
#Listen localhost:631
# Restrict access to the server...
<Location />
Order allow,deny
Allow @Local
</Location>
# Restrict access to the admin pages...
<Location /admin>
Order allow,deny
Allow @Local
</Location>
# Restrict access to configuration files...
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow @Local
</Location>
如果要更改端口(CUPS 默认在 631 端口上运行),请找到此行并更改它。
Port 631
此外,如果要从域访问 CUPS Web Interface,则需要允许来自这些域的请求。在 < location>标签之前添加以下几行。
# You can allow all domains to access the interface
ServerAlias *
# or provide a specific name.
# ServerAlias one.example.com two.example.com
使用Ctrl + X保存文件,然后按Y,然后按Enter。
5. 用户和网络访问设置
接下来我们将 Pi 用户添加到lpadmin组。这使 Raspberry Pi 能够执行 CUPS 的管理功能,而不必成为超级用户。
sudo usermod -a -G lpadmin pi
我们需要确保整个网络都可以访问 CUPS。
cupsctl --remote-any
最后,重启 CUPS 使更改生效
sudo /etc/init.d/cups restart
6. 设置Samba
Samba 是适用于 Linux 和 Unix 的标准 Windows 互操作性程序套件。它将允许 Windows 系统与我们在 Pi 上运行的CUPS 服务器进行通信,并允许我们从 Windows 发送打印命令。
sudo apt-get install samba
我们需要编辑它的配置:
sudo nano /etc/samba/smb.conf
滚动到打印部分,将guest ok = no更改为guest ok = yes
guest ok = yes
滚动到打印机驱动程序部分,将read only = yes更改为read only = no
read only = no
使用Ctrl + X保存文件,然后按Y,然后按Enter。
最后,重新启动 samba 以使更改生效:
sudo /etc/init.d/smbd restart
兄弟打印机设置,请跳转
7. 打印机设置
7.1 安装打印机驱动程序
您可能需要为您的打印机安装驱动程序。您可以尝试跳过此步骤 (7.1) 并继续下一步。如果下一步失败,那么您需要弄清楚“如何在 Debian Raspberry Pi OS 上为 <插入打印机型号> 安装驱动程序”。你可以谷歌一下。
我知道HP 打印机的流程,请运行:
sudo apt-get install hplip
或者,还安装 GUI:
sudo apt-get install hplip-gui
然后运行(如果打印机基于USB,则选择USB,并在出现提示时选择从 HP 下载插件):
hp-setup -i
7.2 将打印机添加到 CUPS
这是最后一步也是最简单的一步。从您的 PC 连接到与您的 Pi 相同的网络。打开 Web 浏览器并通过输入您的 Pi 的 IP 地址和“ :631 ”(CUPS 正在通信的端口地址)进入 CUPS 主页。如果您更改了端口,它可能会有所不同。浏览器可能会显示警告“连接不安全”,单击“仍然继续”。
要知道您的 Pi 的 IP 地址,您可以从您的 Pi运行命令hostname -I 。就我而言,网址是:
192.168.0.190:631
进入管理页面并点击添加打印机。确保您的打印机已打开并通过 USB 连接到您的 Pi。按照提示设置打印机。在最后一步之前,请确保选中“共享这台打印机”复选框。最后,您可以在打印机页面上打印测试页以验证是否一切正常。
注意:您的打印机可能未列在“添加打印机”页面的“本地打印机”中。如果是这种情况,您需要在 Pi 上安装所需的打印机驱动程序。在 Internet 上搜索在 Linux 上安装打印机驱动程序的方法。在我的情况下(HP 打印机),我必须从 这里或从上面的步骤安装hplip 。最新版本没有在我的 Pi 上编译(当时它不支持最新的 Raspbi 操作系统)。我必须使用带有自定义设置的 3.18.6 版本并取消选中 Qt4 和 Qt5 接口