昨天师姐告诉我,实验室的打印机又坏了,不能接收任何打印任务了!我自己实验了一把,果然是,从我的机器不能发送打印任务到打印服务器,好郁闷啊,以前搞这个东西就费了死劲了,可恶的HP LarserJet 1020,在linux下竟然没有标准的驱动,使用其他的驱动总是会出问题!
按照我以前的做法是:
- 把打印机驱动重载一次,结果不行
- 把机器重新启动一次,结果还是不行
- 把打印机断电,usb接口重新插拔一次,依然是不行!
- 重新安装打印机驱动,并把打印机队列重命名,不行啊不行啊
真是疯掉了,经过检查,发现不是打印机的问题,因为接到windows的机器上还能用!这只能说明是linux的问题了,昨天在弄的时候还发现了linux的死机现象,呵呵,不常见啊。
目前看来,有一下几个选择:
- 继续在这个平台上搞
- 许多软件以及它们的配置都不会丢失
- 许多用户数据都在
- 到别的linux机器上实验打印机的驱动,看看到底是打印机自身的问题还是驱动的问题
- 尽量减少工作量
- 重新安装系统
- 可以更好的规划服务器的安装,不该要的服务和驱动就不要安装了,比如说声卡驱动,LVM等
- 但是许多软件配置就丢失了(可以通过把原来的数据进行备份来避免一部分)
- 而且不知道重装了之后是不是还好使!
决定不再继续原来平台的搞了,费了老鼻子劲都不行,浪费时间啊,昨天就又搞到凌晨四点多,先实验一下第二种方案,实在不行了才重装系统,也有可能重装系统用的时间更少。
对这个的解决终于有点进度了,按照这个网站 http://foo2zjs.rkkda.com/ 上的步骤,下载一份驱动程序,重新安装到服务器上(在这之前要把原来的彻底删除掉),重新启动一下cups服务就可以打印了。而且比原来更好的是,现在在linux服务器上都能打印了,而原来是不行的!
具体的原因就是打印机的驱动问题,在http://foo2zjs.rkkda.com/网站上也给出提示“*** DON'T USE the foo2zjs package from Ubuntu, SUSE, Mandrake, Debian, RedHat, Gentoo, or ideainformatica.com! ”,而我原来是在ideainformatica.com网站上下载的,所以有问题也不足为奇了。
但是现在又出现一个情况就是:linux本机可以打印,但是通过windows客户端连接到linux服务器上,这时候却不能打印了!既然打印机本身没有问题,那一定是权限设置的问题了,有两个可能:samba和打印服务cups设置。
- samba配置
在samba当中与打印服务有关的配置主要在两个域[global]和[printers]当中,具体配置选项如下(注意,这里只给出了和打印相关的选项,还有许多其它配置选项):
[global]
hosts allow = 10.20.10., 192.168.1., 192.168.2., 127. <--设置可以可以访问的范围
cups options = raw <--设置cups能够打印raw文本
printcap name = /etc/printcap <--设置打印机配置所在文件
load printers = yes
printing = cups <--设定打印服务为cpus
security = user <--安全级别:share,user,server,doman
encrypt passwords = yes <--对密码进行加密?
smb passwd file = /etc/samba/smbpasswd <--密码文件的位置
[printers]
comment = All Printers
path = /var/spool/samba
read only = No
public = Yes <--使得guest用户也能打印
guest ok = Yes
printable = Yes
browseable = No
在进行权限配置的时候,如果配置为SHARE,这时候会有一个比较有趣的现象,在windows下通过网上邻居找到相应远程linux服务器上的打印机,打开之后,你会看到这个打印机以前打印的所有文档的信息,在什么时间有谁打印了什么,一清二楚的,如果你不想别人看到这个,怎么办呢?删除打印记录文件吧,刚开始不知道在哪里,费了老鼻子劲了,最后知道了,所有打印记录,以打印机的名字进行命名:printer_name.tdb放在了/var/cache/samba/printing/下,不想暴露那个打印机的打印信息的话,就把对应文件删除就是了。
在把权限设置成SHARE之后,居然还是不行,不知道怎么了!!!,郁闷呐!!
- cups配置
看来可能是cups的问题了,但是还不知道该怎么修改配置
……………………
最后时刻,忘记了修改了什么,反正现在是好使了,给出SAMBA的配置文件吧
# Global parameters
[global]
workgroup = HPCOG
server string = %h print+nat server
log file = /var/log/samba/%m.log
max log size = 50
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy = No
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
hosts allow = 10.20.10., 192.168.1., 192.168.2., 127.
cups options = raw
[homes]
comment = Home Directories
path = /home/%u
read only = No
create mask = 0664
browseable = No
[printers]
comment = All Printers
path = /var/spool/samba
read only = No
guest ok = Yes
printable = Yes
browseable = No
另外,要使用printfconf-tui或者printfconf-gui工具,将你的打印机设置为共享,允许某些主机访问。
经过这两天的折腾,有个感触:linux在易用性方面还有不短的路子要走啊,再着有些硬件厂商对linux的支持不是很好,如果没有标准的(或者广泛使用的)linux驱动的东西,尽量不要在linux下使用,否则光驱动问题就够你受的,就像我这种情况,由于HP LarserJet 1020在linux下没有标准驱动,搞晕了,只有到了现在,有了一个较为好用的foo2zjs驱动,情况才好一些,唉,漫漫征程阿!