配置CUPS+SAMBA实现共享打印机自动安装驱动

使用Windows系统共享的网络打印机,在安装的时候直接右键连接就可以自动安装好驱动,而Linux下的CUPS则需要samba配合才可以实现。
配置方法参考以下链接http://www.enterprisenetworkingplanet.com/netsysm/article.php/3621876
首先我们需要下载通用驱动文件
http://www.cups.org/windows/software.php
cups-windows-6.0-1.i386.rpm
http://www.adobe.com/support/downloads/product.jsp?product=44&platform=Windows

winsteng.exe,我下载的英文版,可以根据自己需要下载别的语言
首先编辑/etc/samba/smb.conf,增加以下内容,并创建/etc/samba/drivers文件夹

1
2
3
4
5
6
7
[print$]
comment = Printer drivers
path = /etc/samba/drivers
browseable = yes
readonly = yes
guest ok = yes
write list = root

安装cups-windows-6.0-1.i386.rpm

1
rpm -i cups-windows-6.0-1.i386.rpm

在windows上安装好winsteng.exe,然后拷贝C:\WINDOWS\system32\spool\drivers\w32×86\3文件夹下的以下几个文件到/usr/share/cups/drivers/

1
2
3
4
ps5ui.dll
pscript5.dll
pscript.hlp
pscript.ntf

基本文件已经准备完毕,因为前面配置写了write list = root,所以要确认一下samba是否有root用户,如果没有则用以下命令创建

1
# smbpasswd -a root

输入两遍密码即可,最后可以使用以下命令进行驱动文件的生成了

1
# cupsaddsmb -H localhost -U root -a -v 

最后可以看到一堆信息,如果看到类似如下信息则说明安装成功

1
2
3
4
Printer Driver HPXXXX successfully installed.
Running command: rpcclient localhost -N -A /tmp/4d47636686f16 -c "setdriver HPXXXX HPXXXX"
params.c:Parameter() - Ignoring badly formed line in configuration file: w
Succesfully set HPXXXX to driver HPXXXX.

最后可以到windows上测试一下效果了,我的测试结果是,点击右键安装,几乎在瞬间安装完成,比windows上共享的速度快太多了。