1.安装CUPS软件,”CUPS“是linux下可以用通用打印系统
sudo apt-get install cups
2.允许pi用户配置CUPS,
sudo usermod -a -G lpadmin pi
3.备份替换CUPS配置:
关闭服务
sudo service cups stop
备份配置文件
sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.bak
修改配置文件
sudo vim /etc/cups/cupsd.conf
全部配置文件如下:
#
# "$Id: cupsd.conf.in 9407 2010-12-09 21:24:51Z mike $"
#
# Sample configuration file for the CUPS scheduler. See "man cupsd.conf" for a
# complete description of this file.
#
# Log general information in error_log - change "warn" to "debug"
# for troubleshooting...
LogLevel warn
# Deactivate CUPS' internal logrotating, as we provide a better one, especially
# LogLevel debug2 gets usable now
MaxLogSize 10m
# Only listen for connections from the local machine.
#Listen localhost:631
Port 631
Listen /var/run/cups/cups.sock
# Show shared printers on the local network.
Browsing On
BrowseOrder allow,deny
BrowseAllow all
BrowseRemoteProtocols cups
BrowseAddress @LOCAL
BrowseLocalProtocols CUPS dnssd
# Default authentication type, when authentication is required...
DefaultAuthType Basic
# Web interface setting...
WebInterface Yes
# Restrict access to the server...
Order allow,deny
Allow @Local
# Restrict access to the admin pages...
Order allow,deny
Allow @Local
# Restrict access to configuration files...
AuthType Default
Require user @SYSTEM
Order allow,deny
# Set the default printer/job policies...
# Job/subscription privacy...
Order deny,allow
Require user @OWNER @SYSTEM
Order deny,allow
# All administration operations require an administrator to authenticate...
AuthType Default
Require user @SYSTEM
Order deny,allow
# All printer operations require a printer operator to authenticate...
AuthType Default
Require user @SYSTEM
Order deny,allow
# Only the owner or an administrator can cancel or authenticate a job...
Require user @OWNER @SYSTEM
Order deny,allow
Order deny,allow
# Set the authenticated printer/job policies...
# Job/subscription privacy...
JobPrivateAccess default
JobPrivateValues default
SubscriptionPrivateAccess default
SubscriptionPrivateValues default
# Job-related operations must be done by the owner or an administrator...
AuthType Default
Order deny,allow
AuthType Default
Require user @OWNER @SYSTEM
Order deny,allow
# All administration operations require an administrator to authenticate...
AuthType Default
Require user @SYSTEM
Order deny,allow
# All printer operations require a printer operator to authenticate...
AuthType Default
Require user @SYSTEM
Order deny,allow
# Only the owner or an administrator can cancel or authenticate a job...
AuthType Default
Require user @OWNER @SYSTEM
Order deny,allow
Order deny,allow
BrowseWebIF Yes
#
# End of "$Id: cupsd.conf.in 9407 2010-12-09 21:24:51Z mike $".
#
参考的配置文件
(1)http://jxeeno.tk/local–files/blog:raspberry-pi:print-server/cupsd.conf
(2)https://github.com/bostoneboy/raspberry_pi_stuff/blob/master/cups/cupsd.conf
将Listen localhost:631行注释掉,并在其下方增加一行Port 631以监听来自网络的位置。
在Location /上方增加一行ServerAlias *以接受来自网络的请求。
在Location /与Location /admin区块内增加Allow @Local字段,以实现通过网络访问控制面板。
启动cups服务
sudo service cups restart
4.编译开源foo2zjs驱动
foo2zjs是一款开源的打印驱动,支持部分打印机,安装该驱动需要下载其官方网站上的源码包进行编译安装。先查询一下自己的打印机是否在支持之列。
如果以前安装过foo2zjs驱动需要先卸载
sudo apt-get remove --purge foo2zjs
安装基本的编译环境
sudo apt-get install build-essential
wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz
tar -xzvf foo2zjs.tar.gz
cd foo2zjs
make
编辑完成后需要下载相应的打印机的固件
./getweb P1505
安装编译好的驱动
sudo make install
sudo make install-hotplug
sudo make cups
5.向CUPS添加共享打印机
PC端用浏览器打开网站”https://树莓派ip:631/”,点击”Administrator”界面添加对应的打印机,登录帐号和密码是树莓派的pi用户的密码;在local printers中找到usb连接的打印机,(寻找到你自己的打印机),修改打印机名,勾选”共享该打印机”的复选框,进入驱动选择界面。在列表中选择对应的驱动,所有foo2zjs驱动会注明footmatic/foo2zjs字样。再点击”添加打印机”按钮即完成打印机的添加。
6.安装samba服务
要使Windows系统能在局域网内发现树莓派共享的打印机,最好安装samba服务。
sudo apt-get install samba
7.网络打印机的地址”http://树莓派ip:631/printers/HPPrinter”,PC端按照此地址添加网络打印机和驱动,或者搜索”HPPrinter on RASPBERRYPI”。
8.添加允许打印的用户
sudo service cups stop
sudo vim /etc/cups/printers.conf
sudo vim /etc/cups/printers.conf.0
添加AllowUser Administrator用户
sudo service cups restart
9.实现iOS6兼容的AirPrint打印共享
这个是没有成功过,不知道是什么原因。
已添加的打印机会自动加入Avahi广播列表,使用苹果Bonjour协议向网络进行广播。所有苹果设备,包括手机、平板电脑和笔记本电脑均可直接发现打印机设备,并实现远程打印。然而为了使其支持iOS6系统,还需增加两个文件。
# /usr/share/cups/mime/airprint.types image/urf
urf string(0,UNIRAST)
# /usr/share/cups/mime/airprint.convs image/urf
application/pdf 100 pdftoraster
参考文献:
1.http://bbs.feng.com/read-htm-tid-7523777.html
2.http://www.maojunliang.com/?p=394
3.http://blog.chinaunix.net/uid-13327770-id-2902327.html
4.https://linuxtechie.wordpress.com/2009/08/11/hp-laserjet-p1505-on-ubuntu/
5.http://foo2zjs.rkkda.com/
Recent Comments