用树莓派和 CUPS 打印服务器将你的打印机变成网络打印机

用树莓派和 CUPS 打印服务器将你的打印机变成网络打印机。

我喜欢在家做一些小项目,因此,今年我买了一个 树莓派 3 Model B[1],这是一个非常适合像我这样的业余爱好者的东西。使用树莓派 3 Model B 的内置无线功能,我可以不使用线缆就将树莓派连接到我的家庭网络中。这样可以很容易地将树莓派用到各种所需要的地方。

在家里,我和我的妻子都使用笔记本电脑,但是我们只有一台打印机:一台使用的并不频繁的 HP 彩色激光打印机。因为我们的打印机并不内置无线网卡,因此,它不能直接连接到无线网络中,我们一般把打印机连接到我的笔记本电脑上,因为通常是我在打印。虽然这种安排在大多数时间都没有问题,但是,有时候,我的妻子想在不 “麻烦” 我的情况下,自己去打印一些东西。

我觉得我们需要一个将打印机连接到无线网络的解决方案,以便于我们都能够随时随地打印。我本想买一个无线打印服务器将我的 USB 打印机连接到家里的无线网络上。后来,我决定使用我的树莓派,将它设置为打印服务器,这样就可以让家里的每个人都可以随时来打印。

基本设置

设置树莓派是非常简单的事。我下载了 Raspbian[2] 镜像,并将它写入到我的 microSD 卡中。然后,使用它来引导一个连接了 HDMI 显示器、 USB 键盘和 USB 鼠标的树莓派。之后,我们开始对它进行设置!

这个树莓派系统自动引导到一个图形桌面,然后我做了一些基本设置:设置键盘语言、连接无线网络、设置普通用户帐户(pi)的密码、设置管理员用户(root)的密码。

我并不打算将树莓派运行在桌面环境下。我一般是通过我的普通的 Linux 计算机远程来使用它。因此,我使用树莓派的图形化管理工具,去设置将树莓派引导到控制台模式,但不以 pi 用户自动登入。

重新启动树莓派之后,我需要做一些其它的系统方面的小调整,以便于我在家用网络中使用树莓派做为 “服务器”。我设置它的 DHCP 客户端为使用静态 IP 地址;默认情况下,DHCP 客户端可能任选一个可用的网络地址,这样我会不知道应该用哪个地址连接到树莓派。我的家用网络使用一个私有的 A 类地址,因此,我的路由器的 IP 地址是 10.0.0.1,并且我的全部可用地 IP 地址是 10.0.0.x。在我的案例中,低位的 IP 地址是安全的,因此,我通过在 /etc/dhcpcd.conf 中添加如下的行,设置它的无线网络使用 10.0.0.11 这个静态地址。

interface wlan0

static ip_address=10.0.0.11/24

static routers=10.0.0.1

static domain_name_servers=8.8.8.8 8.8.4.4

在我再次重启之前,我需要去确认安全 shell 守护程序(SSHD)已经正常运行(你可以在 “偏好” 中设置哪些服务在引导时启动它)。这样我就可以使用 SSH 从普通的 Linux 系统上基于网络连接到树莓派中。

打印设置

现在,我的树莓派已经连到网络上了,我通过 SSH 从我的 Linux 电脑上远程连接它,接着做剩余的设置。在继续设置之前,确保你的打印机已经连接到树莓派上。

设置打印机很容易。现代的打印服务器被称为 CUPS,意即“通用 Unix 打印系统”。任何的 Unix 系统都可以通过 CUPS 打印服务器来打印。为了在树莓派上设置 CUPS 打印服务器。你需要通过几个命令去安装 CUPS 软件,并使用新的配置来重启打印服务器,这样就可以允许其它系统来打印了。

$ sudo apt-get install cups

$ sudo cupsctl --remote-any

$ sudo /etc/init.d/cups restart

在 CUPS 中设置打印机也是非常简单的,你可以通过一个 Web 界面来完成。CUPS 监听端口是 631,因此你用常用的浏览器来访问这个地址:

https://10.0.0.11:631/

你的 Web 浏览器可能会弹出警告,因为它不认可这个 Web 浏览器的 https 证书;选择 “接受它”,然后以管理员用户登入系统,你将看到如下的标准的 CUPS 面板:

用树莓派和 CUPS 打印服务器将你的打印机变成网络打印机_第1张图片

这时候,导航到管理标签,选择 “Add Printer”。

用树莓派和 CUPS 打印服务器将你的打印机变成网络打印机_第2张图片

如果打印机已经通过 USB 连接,你只需要简单地选择这个打印机和型号。不要忘记去勾选共享这个打印机的选择框,因为其它人也要使用它。现在,你的打印机已经在 CUPS 中设置好了。

用树莓派和 CUPS 打印服务器将你的打印机变成网络打印机_第3张图片

客户端设置

从 Linux 中设置一台网络打印机非常简单。我的桌面环境是 GNOME,你可以从 GNOME 的“设置”应用程序中添加网络打印机。只需要导航到“设备和打印机”,然后解锁这个面板。点击 “添加” 按钮去添加打印机。

在我的系统中,GNOME 的“设置”应用程序会自动发现网络打印机并添加它。如果你的系统不是这样,你需要通过树莓派的 IP 地址,手动去添加打印机。

用树莓派和 CUPS 打印服务器将你的打印机变成网络打印机_第4张图片

设置到此为止!我们现在已经可以通过家中的无线网络来使用这台打印机了。我不再需要物理连接到这台打印机了,家里的任何人都可以使用它了!



教程2:

准备工作:

1.连接网络的树莓派

2.usb接口的打印机

步骤如下:

1.安装CUPS软件,”CUPS“是linux下可以用通用打印系统(百度百科http://baike.baidu.com/view/887944.htm)

sudo apt-get install cups

2.允许pi用户配置CUPS

sudo usermod -a -G lpadmin pi

3.备份替换CUPS配置:

关闭服务

sudo service cups stop

备份配置文件

sudo mv /etc/cups/cupsd.conf /etc/cups/cupsd.conf.bak

替换配置文件(root用户去掉“sudo”)

sudo cd /etc/cups/ && sudo wget http://jxeeno.tk/local–files/blog:raspberry-pi:print-server/cupsd.conf

重启服务

sudo service cups start

4.PC端用IE浏览器打开网站“https://树莓派ip:631/ ”

5.点击“Administrator”界面添加对应的打印机,登录帐号和密码是树莓派的pi用户的密码

在local printers中找到usb连接的打印机,打印机名“scx3405”

用树莓派和 CUPS 打印服务器将你的打印机变成网络打印机_第5张图片

用树莓派和 CUPS 打印服务器将你的打印机变成网络打印机_第6张图片

用树莓派和 CUPS 打印服务器将你的打印机变成网络打印机_第7张图片


用树莓派和 CUPS 打印服务器将你的打印机变成网络打印机_第8张图片


用树莓派和 CUPS 打印服务器将你的打印机变成网络打印机_第9张图片


到此树莓派的打印机设置就完成了!

6.网络打印机的地址“http://树莓派ip:631/printers/brother”,PC端按照此地址添加网络打印机和驱动就行了

用树莓派和 CUPS 打印服务器将你的打印机变成网络打印机_第10张图片
用树莓派和 CUPS 打印服务器将你的打印机变成网络打印机_第11张图片
用树莓派和 CUPS 打印服务器将你的打印机变成网络打印机_第12张图片
用树莓派和 CUPS 打印服务器将你的打印机变成网络打印机_第13张图片
用树莓派和 CUPS 打印服务器将你的打印机变成网络打印机_第14张图片

教程3:HP1007

虽然很多文章提到了raspberry树莓派如何安装cups实现共享打印机服务,但是我自己试下来发现HP P1007总是无法使用,折腾了很久,终于找到了方法,记录一下。

默认raspberry树莓派已经做好基本设置,IP,SSH之类已经OK。

首先执行更新,我之前就是没执行更新,导致后续操作错误,下载安装时会提示404 找不到文件

sudo apt-get update

更新一番之后安装最新的HPLIP,按照国外的说法,安装好之后应该能解决大部分HP打印机的使用问题。

sudo apt-get install hplip

安装hplip的时候应该已经同步安装好Cups了,如果没有,可以执行下列命令继续安装。

sudo apt-get install cups

安装完hplip之后,配置用户,把pi用加到lpadmin,如果是别的用户,记得更换用户名

sudo usermod -a -G lpadmin pi

下面替换CUPS的配置文件,首先停止服务

sudo service cups stop

备份原有文件

sudo mv /etc/cups/cupsd.conf /etc/cups/cupsd.conf.bak

//2015.9.21 update 貌似配置文件无法下载了

//从服务器上下载新的配置文件

//cd /etc/cups/

//sudo wget http://jxeeno.tk/local–files/blog:raspberry-pi:print-server/cupsd.conf

更改配置文件部分参数如下:

# Only listen for connections from the local machine.

#Listen localhost:631


#CHANGED TO LISTEN TO LOCAL LAN

Port631


# Restrict access to the server…

Orderallow,deny

Allow@Local


# Restrict access to the admin pages…

Orderallow,deny

Allow@Local


# Restrict access to configuration files…

AuthTypeDefault

Requireuser@SYSTEM

Orderallow,deny

Allow@Local


保存,退出cupsd.conf。

完成,现在可以启动服务了

sudo service cups start

下一步设置打印机,首先将打印机连接到树莓派上,然后在浏览器中输入 https://你的树莓派ip:631 进入配置界面

打开的是一个网站,在上面菜单栏中找到Administrator,会提示你用户名和密码,输入树莓派的用户名和密码即可

登录后,在Printers栏目中点击Add Printer

显示的Local Printers会有你连接上的那台打印机,应该是带有USBxxx之类的,选中它点击continue

在这个界面Name是打印机的名字,以后用来在URL中确定打印机,所以短一些比较好

勾选Sharing,别的不用变,点Continue

下一个界面选择驱动程序,这边的时候记得选择recommended的那个驱动,如果自己有ppd,可以上传打印驱动程序

最后就设置完成了,复制最后一个界面的URL,也就是类似于http://你的树莓派ip:631/printers/打印机名 就可以在其他电脑上添加共享打印机了

如果,如果到这里你添加了树莓派共享的打印机,但是还是没有用的话,请往下看:

按照http://foo2xqx.rkkda.com/的意思,是不建议使用系统自带的foo2zjs driver或者foo2xqx driver的。需要自己根据自己的打印机编译对应的驱动。我的打印机是P1007,应该选择是的foo2xqx driver。接下来就是自己编译了,网站上也有教程。给人家打个广告吧。

foo2xqx:  a linux printer driver for XQX stream protocol

e.g. HP LaserJet P1005, P1006, P1007, P1008, P1505, P1505n, P2014, P2014n, M1005 MFP, M1120 MFP

首先下载foo2xqx

wgethttp://foo2zjs.rkkda.com/foo2zjs.tar.gz

解压缩

$ tar zxf foo2zjs.tar.gz

$ cd foo2zjs

编译和安装

Compile:

    $ make

Get extra files from the web, such as .ICM profiles for color correction,

and firmware.  Select the model number for your printer:

    $ ./getweb P1005    # Get HP LaserJet P1005 firmware file

    $ ./getweb P1006    # Get HP LaserJet P1006 firmware file

    $ ./getweb P1007    # Get HP LaserJet P1007 firmware file

    $ ./getweb P1008    # Get HP LaserJet P1008 firmware file

    $ ./getweb P1505    # Get HP LaserJet P1505 firmware file

Install driver, foomatic XML files, and extra files:

    $ su OR $ sudo make install

    # make install

(Optional) Configure hotplug (USB; HP LJ P1005/P1006/P1007/P1008/P1505):

    # make install-hotplug      OR      $ sudo make install-hotplug

(Optional) If you use CUPS, restart the spooler:

    # make cups OR $ sudo make cups

这个时候重新在浏览器中输入 https://你的树莓派ip:631 进入配置界面,删掉原来的打印机,重新配置下打印机,应该就可以使用了。

你可能感兴趣的:(用树莓派和 CUPS 打印服务器将你的打印机变成网络打印机)