免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5934 | 回复: 17
打印 上一主题 下一主题

[FreeBSD] FreeBSD上共享HP LaserJet 6L打印机的配置 v1.1.1 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-30 18:03 |只看该作者 |倒序浏览
前言

  本文介绍了作者在FreeBSD 6.1系统上配置HP LaserJet 6L激光打印机,并通过lpd方式共享的方法。
  作者只在FreeBSD 6.1系统上进行了试验,但本文描述的方法应该适用于所有FreeBSD 6.x、5.x系列系统。作者使用的打印机型号为HP的LaserJet 6L,但本文应该适用于大部分常见的激光和喷墨打印机。

修改记录

  v1.1 使用lpd共享,Windows客户端使用远程lpd方式使用打印机
  v1.0 最初的版本,使用CUPS和hplip驱动打印机,用samba共享,Windows客户端使用Windows文件和打印机共享的方式使用打印机。

万恶之源

  希望直接切入正题的朋友请略过此段。
  虽然这台6L是特别古老的二手货,但是用起来却比以前那个所谓的高性价比EPSON ME1喷墨厚道多了,速度快,成本低、效果好不说,而且...而且自从有了Laser Jet 6L呀,就再也不用洗喷头了(以前那个ME1,原装墨盒没用几次,全洗喷头了。每次看到它在那里哗啦啦洗的不亦乐乎,我那肉长的心啊...就哗啦啦地不停流血...)。
  按说这台机器接到WindowsXP上就即插即用了,谁愿意到FreeBSD上折腾。但事情往往没有那么单纯。接在平时用的机器上(WindowsXP)没多长时间,打出来的东西就出现竖白道,害我搬到电脑城修了一次。搬回来没一个月,老毛病又犯了,郁闷的不行。
  还是lp大人精明,提醒了一句“是不是加湿器弄的?”,于是决定亲自动手大卸八块,拆开光学组件一看还真是加湿器搞的鬼。家里的加湿器是常见的超声波加湿器,开起来时间一长桌子腿、塑料片上就会出现白色的污渍。大概是水质不好,自来水里的漂白粉跟着湿气飘得到处都是(水都是过滤过的呀,邪门了)。打印机的光学组件自然也不能避免,时间久了就出现竖白道。拿擦镜纸和镜头清洁液一顿狂擦之后打印机效果变得出奇的好...晕,敢情上次抱去电脑城免费保修,他们就拿气吹吹了吹? -_-|||...
  修好之后就决定把打印机搬到另一个屋子里接在网关上(FreeBSD 6.1),远离加湿器的毒害。结果...结果又是好一顿折腾...再狂晕。

配置打印机

  首先我不打算自己写printcap文件,你应该也一样。所以这次我们不去看handbook。首先把打印机接上,以root用户登录,然后安装cups:
  1. root# cd /usr/ports/print/cups
  2. root# make install clean
复制代码

  跳出来的选项可以直接按回车无视掉。安装完成之后请注意最后的提示信息(这是一个好习惯,你也可以cat pkg-message看到这些信息,不过你很可能需要猜想一下%%PREFIX%%这样奇怪的句子到底表示什么意思了)。简单说来,你需要在/etc目录下建立一个名为devfs.rules的文件(如果这个文件还不存在的话),然后向这个文件中写入以下内容:
  1. [system=10]
  2. add path 'unlpt*' mode 0660 group cups
  3. add path 'ulpt*' mode 0660 group cups
  4. add path 'lpt*' mode 0660 group cups
复制代码

  然后向rc.conf加入这一行使前面的配置在系统启动的时候生效:
  1. devfs_system_ruleset="system"
复制代码

  为了使前面的配置立即生效,需要重启devfs:
  1. /etc/rc.d/devfs restart
复制代码

  到现在为止所做的工作是把/dev下的lpt0、ulpt0等打印机使用的设备文件所属的组设置为cups,这样cups才可以正常使用连接在你这台计算机上的打印机(否则就只能使用网络打印机)。
  为了让Windows可以打印到这台机器,还需要编辑/usr/local/etc/cups目录下的mime.types和mime.convs这两个文件,找到下面这行:
  1. #application/octet-stream
复制代码

  把最前面的“#”去掉。接着在/etc/rc.conf文件中加入一行:
  1. cupsd_enable="YES"
复制代码

  使cupsd在开机的时候自动启动。到现在为止cups的安装基本完成。下面来安装hplip(对于6L等大部分使用PCL 4/5/6 传输标准并使用并口的激光打印机来说这一步不是必需的,你可以跳过这一步试一下):
  1. root# cd /usr/ports/print/hplip
  2. root# make install clean
复制代码

  然后把这两行加入到/etc/rc.conf中:
  1. hpiod_enable="YES"
  2. hpssd_enable="YES"
复制代码

  如果你用的是USB接口的打印机,情况变得有点复杂。你需要把下面两行加入/etc/devfs.rules:
  1. add path 'ugen*' group operator
  2. add path 'ugen*' mode 0660
复制代码

  而且由于hplip需要USB接口的打印机使用ugen设备驱动,所以你的内核配置文件里不能有ulpt设备,而且ulpt也不能以动态载入模块的方式载入。编辑你的内核配置文件,把device ulpt这一行注释掉,然后重新编译、安装内核。详细过程请参考handbook。
  现在和打印相关的软件都已经安装上了,你可以重启你的FreeBSD使这些软件运行起来。重启并不是必需的,你也可以手动把这些软件启动:
  1. root# cd /usr/local/etc/rc.d
  2. root# hpiod restart
  3. root# hpssd restart
  4. root# cupsd restart
复制代码

  现在可以使用cups的web管理界面配置打印机了。使用你的web浏览器打开http://localhost:631。大多数情况下,你的打印机会自动认出并列在左边的列表出。点击旁边的Add This Printer就可以将这个打印机加入到你的系统中。如果没有认出来,则需要点击Add Printer按钮。
  在出现的对话框中输入打印机名,位置和描述信息。其中打印机名中间不能有空格和特殊字符。建议只使用字母、数字和下划线。然后点击Continue。
  在出现的对话框中选择打印机使用的设备。比如并口的打印机就选择Parallel Port #1(如果你后多个并口,则会有多个并口选项,选择对应的那个)。然后点击Continue。
  选择打印机的制造商,然后点击Continue。
  选择打印机的型号。如果你没有安装hplip,可以选择通用的HP LaserJet Series PCL 4/5 CUPS、HP LaserJet Series PCL 6 CUPS等,对应你的打印机使用的PCL版本。
  点击Add Printer,添加打印机的步骤完成。如果你的打印机是自动识别出来的,前面的某些步骤可能不会出现。
  如果在任何一步提示用户名和密码,输入你的root用户名和密码。
  如果cups并没有自动认出来你的打印机,并且在选择设备那一步你也没有使用hplip提供的驱动,你可以删掉/etc/rc.conf中的hpiod_enable和hpssd_enable两行,并且停掉这两个服务。
  现在你可以打印一个测试页测试一下你的打印机工作是否正常。

共享打印机

  首先需要启用lpd服务。因为cups的lpd和FreeBSD的默认lpd不一样,所以不能直接用rcNG脚本启动,而需要通过inetd启动cups提供的lpd服务。在/etc/inetd.conf中加入一行:
  1. printer stream tcp nowait cups /usr/local/libexec/cups/daemon/cups-lpd cups-lpd -o document-format=application/octet-stream
复制代码

  然后确认/etc/rc.conf中包含这一行:
  1. inetd_enable="YES"
复制代码

  如果你的inetd服务已经启动,你可以使用killall -HUP inetd这个命令使你对inetd.conf的修改生效。或者你可以重启inetd服务:
  1. root# /etc/rc.d restart
复制代码

  至此,服务器端的配置就完成了。需要注意的是cups提供的lpd服务没有任何权限控制功能,它允许任何客户端使用这台计算机上的打印机。所以你需要使用pf等防火墙来限制允许的客户端。lpd使用的默认TCP端口是515。

配置WindowsXP客户端

  首先需要安装UNIX远程打印支持。点击“开始->控制面板->添加和删除应用程序->添加/删除Windows组件”,选中“其它网络文件和打印服务”,然后点下一步完成安装。
  如果需要,安装打印机提供的Windows驱动程序。
  然后添加远程打印机。点击“开始->打印机和传真”,点击左边的“添加打印机”。点“下一步”。
  选择第一项“连接到这台计算机的打印机”并清除下面“自动检测并安装我的即插即用打印机”。然后点击“下一步"。
  选择第二项“创建新的端口”,并在“端口类型”中选择“LPR端口”。点击“下一步”。
  在第一行输入打印服务器的IP地址或者DNS名,第二行输入打印机的名字(同在cups中创建打印机时输入的名字)。点击“确定”。
  选择打印机的驱动程序。完成之后打印一个测试页测试一下,如果成功就一切OK了。

结语

  文章写得比较仓促,不详细之处请发挥主观能动性自行google 。我的email是isjfk@163.com,有问题请邮件联系。
  在保留文章原作者和出处的前提下,任何人都可以转载本文的全部或部分,不管何种用途。

http://www.isjfk.org

[ 本帖最后由 isjfk 于 2007-12-14 19:46 编辑 ]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2007-01-30 18:22 |只看该作者
以后大家可能会用到

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2007-01-30 18:42 |只看该作者
好东东,解了我的燃眉之急!

谢楼主.

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
4 [报告]
发表于 2007-01-30 18:46 |只看该作者
不错不错,给个精华以示鼓励

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
5 [报告]
发表于 2007-01-30 18:47 |只看该作者
本主题由 gvim 于 2007-1-30 18:43 加入精华
手还真快

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2007-01-30 18:50 |只看该作者
好文应该给精华

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
7 [报告]
发表于 2007-01-30 18:50 |只看该作者
原帖由 剑心通明 于 2007-1-30 18:47 发表
本主题由 gvim 于 2007-1-30 18:43 加入精华
手还真快


上小学的时候偷东西经常被打,不过也练就了"过硬的本领"
继续看贴吧,好好的帖子不要被我俩水掉了,嘿嘿

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
8 [报告]
发表于 2007-01-30 18:52 |只看该作者
原帖由 isjfk 于 2007-1-30 18:03 发表
结语

  文章写得比较仓促,不详细之处请发挥主观能动性自行google  。我的email是isjfk@163.com,有问题请邮件联系。
  在保留文章原作者和出处的前提下,任何人都可以转载本文的全部或部分,不管何种用途。


给兄弟一个建议:把"文章原作者和出处"弄到文章最前面去,再把这段话弄到最前面去 :em11:

论坛徽章:
1
寅虎
日期:2013-09-29 23:15:15
9 [报告]
发表于 2007-01-30 19:57 |只看该作者
收藏!

论坛徽章:
0
10 [报告]
发表于 2007-01-30 21:02 |只看该作者
在6.2中用CUPS配置Epson喷墨打印机没有成功,想清教一下楼主:
这里讲的:
[quote]而且由于hplip需要USB接口的打印机使用ugen设备驱动,所以你的内核配置文件里不能有ulpt设备,而且ulpt也不能以动态载入模块的方式载入。[/quote]
是因为使用了hplip,所以才不能有ulpt,还是USB打印机都不能有?
多谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP