公司有两台打印机:一台用来打发票的针式打印机,一台用来打文件的Brother MFC-7360打印扫描一体机,两台都不支持网络打印。于是准备利用树莓派架设一个打印服务器,以便实现网络共享打印。
经过研究,利用树莓派实现打印机共享主要有两种个方法:一是利用CUPS架设打印服务器,二是利用vhusbd共享USB口。两者各有优缺点:CUPS只能实现Brother MFC-7360打印扫描一体机的打印共享,不能实现扫描功能,并且另一台打印机没有Linux驱动,不能用CUPS共享;vhusbd免费版只能同时供一个用户使用,并且只能同时共享一个USB端口。由于扫描和打印发票的功能使用很少,并且一般只有一个固定的人使用,所以采用了将CUPS和vhusbd配合使用的方案。
一、用vhusbd将树莓派的USB端口虚拟为PC本地的USB端口
1、到vhusbd官网下载最新版的Linux服务器端程序(注意要选择ARM架构的,可以选择树莓派优化过的);
2、将下载的程序解压后,上传到树莓派的任意目录,例如/home/pi下;
3、切换到程序所在目录;
4、赋予执行权限:
sudo chmod +x ./vhusbdarm
5、配置开机启动:
sudo nano /etc/rc.local
在exit前加入:
sudo /home/pi/vhusbdarm -b
至此服务器端配置完毕。
PC端使用时,到官网下载Windows客户端,运行后右击“USB Hubs”,选择“Specify hubs”,然后点击Add,输入树莓派的IP地址:7575确定,稍等片刻即可看到已连接到树莓派USB的打印机(需要开机状态)。右击该设备选择使用即可。
二、使用CUPS共享打印机。
1、到CUPS官网下载最新版的程序,下载cups-2.2.10-source.tar.gz;
2、将下载的程序包上传到树莓派并解压:
sudo tar -zxvf cups-2.2.10-source.tar.gz
3、进入解压后的目录:
cd cups-2.2.10
4、配置文件
sudo ./configure
5、编译文件
sudo make
6、编译安装
sudo make install
7、修改配置文件:
sudo nano /etc/cups/cupsd.conf
将“Listen localhost:631”修改为“Listen 0.0.0.0:631”,并且在以下字段之间增加“Allow all”:
# Restrict access to the server...
<Location />
Order allow,deny
Allow all
</Location># Restrict access to the admin pages...
<Location /admin>
Order allow,deny
Allow all
</Location># Restrict access to configuration files...
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow all
</Location># Restrict access to log files...
<Location /admin/log>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow all
</Location>
8、为root用户创建密码:
sudo passwd root
9、重启树莓派:
sudo reboot
10、将到打印机官网下载Linux驱动(deb包)上传到树莓派并安装:
sudo dpkg -i --force-all ***.deb
11、浏览器输入http://树莓派IP:631,添加打印机,需要登录时使用root用户和密码登录。添加打印机时注意选中“Share”打印机。