前两天通过RaspberryPi 2B让一台HP Laserjet 1020 Plus接入到了宿舍的局域网中,实现了打印机的共享使用。
此功能在树莓派官方系统Raspbian环境下实现。
步骤如下:
Step 1:安装CUPS
CUPS(以前为 Common Unix Printing System,UNIX 通用打印系统的缩写,但现无官方全名)是一个类Unix操作系统的组合式印刷系统,允许一台电脑作为打印服务器。CUPS接受一个客户端的电脑进程,并送到相应的打印机。更多关于CUPS的信息请参阅CUPS - Wikipedia, the free encyclopedia
sudo apt-get install -y cups cups-pdf cups-bsd
在CUPS安装完毕后,输入下列命令:
sudo usermod -a -G lpadmin pi
该命令的含义是将用户pi添加到local-preference管理员组里,以使用户pi有权限对CUPS进行配置。
修改CUPS配置文件:
sudo nano /etc/cups/cupsd.conf
该配置文件中需要进行四处修改:
1.将该行Listen localhost:631
的’localhost: ‘去掉,仅保留631。
2,3,4.在三个< /Location >
前面加上Allow @LOCAL
,让网络用户拥有管理权限(使局域网内的非树莓派主机可以对打印机进行管理)。
完成上述修改后,重启CUPS
sudo service cups restart
至此,对CUPS的安装完成。这时,可以在浏览器中输入
http://your-raspi-pi:631/
对树莓派上的CUPS服务进行访问。
Step 2:安装相应的打印机驱动
仍然以HP Laserjet 1020 Plus为例。
“foo2zjs is an open source printer driver for printers that use the Zenographics ZjStream wire protocol for their print data.”。由其官网信息可知,foo2zjs是一款开源的打印机驱动。该驱动的安装方式如下:
下载:wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz 解压:tar zxf foo2zjs.tar.gz 切换目录:cd foo2zjs 编译:make 下载打印机固件:./getweb 1020 安装驱动文件:sudo make install 热插拔机制:sudo make install-hotplug 重启CUPS的spooler:sudo make cups 重启CUPS:sudo /etc/init.d/cups restart
Step 3:在CUPS中添加打印机
在浏览器中打开CUPS的管理页面:
http://your-raspi-pi:631/
一次点击如下链接/按钮:
Administration - Add Printer
此时页面会出现提示,要求你用https访问该页面
点击网页给出的链接即可,忽略浏览器提示的链接可能不安全的警告,在接下来弹出的对话框中,用户名输入pi,密码为pi所对应的密码(用ssh登陆树莓派时的账号和密码)。
选择你的打印机,点击Continue。在下一个页面中选择Share This Printer,点击Continue。在Model里选择打印机相应的驱动,点击Add printer。点击Set Default Options,然后点击你安装的打印机,进入到你的打印机页面,在第二个下拉菜单(Administration)中选择’Set As Server Default’。
至此,你的打印机在CUPS上安装完毕。你可以切换到ssh,输入lpq查看打印机的状态。
Step 4:在Windows中添加网络打印机
以Windows 10为例。
设置 - 设备 - 添加打印机或扫描仪 - 我需要的打印机不在列表中:
选中 按名称选择共享打印机 并输入http://your-raspi-pi:631/printers/HP_LaserJet_1020
,下一步。
如果在列表中找不到相应的打印机驱动,你需要先安装该打印机驱动的Windows版本。重新启动电脑后再进行此步骤。
安装完成后,打印测试页,如果测试页成功打印,即说明所有步骤均已完成且安装成功。