Jul 19

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/

Leave a Reply