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... # Set the authenticated printer/job policies...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 # Job/subscription privacy... JobPrivateAccess default JobPrivateValues default SubscriptionPrivateAccess default SubscriptionPrivateValues default # Job-related operations must be done by the owner or an administrator... BrowseWebIF Yes # # End of "$Id: cupsd.conf.in 9407 2010-12-09 21:24:51Z mike $". #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
参考的配置文件
(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