查看完整版本: [随笔]FreeBSD下CUPS和SAMBA共享网络打印机

ELM 2006/9/29 23:39

[随笔]FreeBSD下CUPS和SAMBA共享网络打印机

转自: [url=http://bbs.chinaunix.net/viewthread.php?tid=823259&extra=page%3D1%26filter%3Ddigest]http://bbs.chinaunix.net/viewthread.php?tid=823259&extra=page%3D1%26filter%3Ddigest[/url]

鄙人毕业后没找到适合的工作,就来到这家小公司做网页,天天用XP,实在是郁闷至极。于是这几天就装了个BSD,但原先单位的打印机是装在我的电脑上的,为了使不打乱原来的使用,我打算来个无缝转接。这才有了本文的产生,这里说明一下,我是把我的实现方法写了出来,过几天我会把我曾参考过的英文文章翻译出来给大家看,同时希望大家能共同提高CU -》BSD版的技术水准。

1,首先,如果你用的是并口打印机,那么这一步你可省去,如果你也跟我一样,用的是USB打印机,那么请仔细读这一步。


我不知道什么原因,第一次装了CUPS后,并不能正确添加打印机,但是在系统中已经有  /dev/ulpt0 (BSD将USB打印机识别为ulpt0)。后来在CU上找到2003年的帖子,原来是内核中device lpt 和 device ulpt 这2项有问题,大体就是在识别USB打印机时,2者会有冲突(我个人认为应该不可能有的,因为一个是lpt0,一个是ulpt0,根本就不一样,不过也不排除BSD中的IRQ冲突问题)。因此,我只有重新编译内核,去掉 device lpt,只保留ulpt。

   如此一来,果然CUPS可以识别了!

2 由于我是HP打印机,因此可以到ports中安装hpijs这个打印驱动,其他的打印机可以到 [url]http://linuxprinting.org[/url]去找自己的驱动。下面是具体操作:

    首先,我偷懒了,直接就安装hpijs这个ports,这样根据依赖关系,他会自动安装 CUPS 还有其他的依赖程序。

     其次,在此之前我绕了弯路。因为在网上看到一些文章说必须要下载什么PPD文件,否则打印会有问题,因为hpijs不支持PCL。于是我下载了PPD,但直到我写这篇文章之前再看Hpijs的文档时才发现,原来hpjis已经解决了这个问题,可以很好的支持PCL。因此,如果你也在用HP打印机,那就不要走这个弯路了。安心的装Hpjis这个Ports 吧。

     最后,在安装完后,大家没必要去配置/etc/printcap这个文件,我也在这里绕了弯路。因为在后面的SAMBA环节根本就不用这个文件,网上的文章说的应该是针对没有安装CUPS的人说的,所以请大家记住,不必配置那个文件,省事,省心。


3 在上一步安装完Hpijs驱动和CUpS后,接下来就是配置CUPS了。在你刚安装完CUPS之初,请先

#rehash
#/usr/local/etc/rc.d/cupsd start

       *注:这里并没有要求你像其他文章说的那样“先配置/usr/local/etc/cups/cupsd.conf”这个文件,因为这是不必要,配置之后反而会出错,我也在这上面吃了亏(为什么网上那么多人写错啊!),如果你执意要按别人说的去做,那么在本节的最后我会把配置之后常出现的错误给出来,方便你解决。

接下来,你直接用浏览器打开[url]http://localhost:631[/url],就可以看到CUPS的配置页面了,很直观。首先是用root登录,注意,你的root一定要有密码,因为空密码会拒绝登录。

在这个页面,其他的选项我不多说,就说说"Printer"这一项。首先,我们要添加打印机,点击“ADD Printer"项,会出再
[quote]
Add New Printer
      
      

        Name:________________________________
      
      
    Location:_______________________________-
      
      
Description:_______________________________[/quote]
这里的内容你可以随便写,并不影响你的使用,这个就相当于给你的打印机做了一张名片而已,但是注意,name 处写的名字不能有空格。我们真正要做的是下面的内容:
点"contiue"后,就来到Devie页面,这个页面就是让我们选一个设备,由于我的是USB口,就选USB1#,如果你的打印机是安装的别人的电脑,而且是用SAMBA,那么你可以选Windows Printer Via Samba。

再下来,就是选驱动了,这里有一点说明一下,你的打印机驱动如果是CUPS自带的,那么可以省心了。如果不是呢,就到Hppt: //linuxprinter.org去下PPD文件,放到 /usr/local/etc/cups/ppd/下,而不是网上说的model下。(这也告诉大家,学习不能死学,要懂变通)。

    是不是做完这些就完了呢?非也,还有更重要的要做

(未完)

对不住大家,刚才有点事要做,所以中止了。现在接着来做重要的事:

     在Linux社区看到关于打印的文档才知道,BSD风格的默认使用/usr/bin下的lp,lpq,lpr等等 这些以lp开头的文件,但现在我们要使用CUPS来做为默认打印风格,那么就要替换他们,也就是


#cd /usr/bin
#mv lp* mv lp*.bak
#ln -s /usr/local/etc/cups/bin/lp* .

这样就OK了。(关于打印的文章,在Linux社区出现的比较多,原来在Linux中还有一大部分在使用BSD LPR风格的打印。所以大家在解决BSd问题时没必要非得找BSD的文章,参考Linux的一样可以解决,因Linux毕竟从BSD系列发展过来,应该是通用的。)

4 接下来就是配置你的SAMBA了,打开SAMBA的Swat配置页面(别说你不知道,即使我也不会写出来,因这这里不讨论Samba的具体使用)


    找到Printer那个大图标,进去后,找到“chose printer”一节,在下拉列表中选择你在CUPS中添加的打印机名字。

     然后就是配置Samba的[printer]小节,设成:

[printer]

guest=ok
public=ok
printable=yes
.........(其他的就省了)

     而另外要设定的就是在Global里把print设成cups,默认是bsd。


好了,享受一下在BSD下,网络打印的快感吧!不要说BSD实现不了,而是你没有努力让它实现。

另外:请大家看3楼兄弟的补充,他是6.X下的。我测试通过后会加到这里来。


可能文章有写得不全的地方,请大家以实际应用为准,本文只提供参考。
页: [1]
查看完整版本: [随笔]FreeBSD下CUPS和SAMBA共享网络打印机