原文更新:2004年5月8日
内容简介: Gentoo Linux的一份详细的打印指南,覆盖了本地打印和网络打印。
1. 安装CUPS和foomatic
由于一些了不起的程序,如CUPS(通用UNIX打印系统)和foomatic,在Gentoo Linux中设置打印是一件相对轻松的工作。这两个程序目前都在portage树中,并且对于最终用户来说,配置很容易。
请注意,CUPS是跨桌面的,也就是说你可以在GNOME或者KDE下安装这些指导来使得你的打印机工作。也有其他的一些选择,如KDE的打印设置,但是我相信CUPS是最好设置,也是最好使用的。
在安装CUPS之前,往/etc/make.conf添加一些必要的USE标签更好。
代码 1.1: 编辑/etc/make.conf
在你已有的USE标签列表中添加cups,foomaticdb,ppds和usb(如果你使用一个USB打印机连接)USE="cups foomaticdb ppds usb other_var1 other_var2"有关USE标签更多的信息,请参见Gentoo手册中的USE标签章节。
代码 1.2: 安装必须的软件包
# emerge cups# emerge foomatic2. 设置内核模块
概述
既然必须的软件都已安装,我们该来安装打印机了。
根据你的打印机的连接方式,有必要在内核中启用并行端口或者USB端口打印机连接。
注释: 这只在本地打印中需要,如果你是通过samba服务器来打印,跳过这一节。
注释: 如果你不确定怎样编译内核,可以在内核指南(目前已过时,用作回顾了)找到特定的说明。确保你已经知道怎样在不重新编译和重新启动电脑下编译和安装新模块。这确实很节省时间。
USB模块
为启用USB打印机支持,到USB support中启用Support for USB和USB Printer support。这两个都以模块启用,将会在你的模块的文件夹中装上usbcore.o和printer.o。我建议使用模块,是这样就不必重启你的电脑。2.6内核的用户会在Device Drivers里找到这些选项。
内核编译好和重新启动你的电脑后,我们该加载这些必须的模块:
代码 2.1: 加载USB模块
# modprobe usbcore(适合2.4内核的用户:)# modprobe printer(适合2.6内核的用户:)# modprobe usblp模块都成功的加载后,插上打印机,检查/var/log/messages看是否它已被检测到。
注释: 如果你使用了别的而不是sysklogd,你的内核日志文件将会不一样。
代码 2.2: 检查内核信息
# tail /var/log/messages你应该看到类似以下的东西:
代码 2.3: /var/log/messages输出
hub.c: USB new device connect on bus2/2, assigned device number 2printer.c: usblp0: USB bidirectional printer dev 2 if 0 alt 1 proto 2 vid 0x03F0 pid 0x1104并行端口模块
为启动并行端口支持,到Parallel port support中启用Parallel port support和PC-style hardware。根据你的打印机,你也需要激活Multi-IO cards (parallel and serial),Support for foreign hardware和IEEE 1284 transfer mode。然后到Character devices启用Parallel Printer Support。2.6内核的用户将会在Device Drivers找到这些选项。
内核编译好后,确认打印机已经插上,然后重启你的电脑。现在我们该加载必须的模块了:
代码 2.4: 加载并行端口模块
# modprobe lp(仅对2.6内核的用户)# modprobe parport# modprobe parport_pc内核都成功的加载后,检查/var/log/messages看是否他已被检测到。
注释: 如果你使用了别的而不是sysklogd,你的内核日志文件将会不一样。
代码 2.5: 检查内核信息
# tail /var/log/messages你应该看到类似以下的东西:
代码 2.6: /var/log/messages输出
lp0: using parport0 (polling).低级测试
在用CUPS配置打印机之前,我们可以用一些低级命令来测试一下。
代码 2.7: 用cat测试打印机
# touch test.txt# echo "Hello World" > test.txt# cat test.txt > /dev/usb/lp0 或者,对于并行端口打印机:# cat test.txt > /dev/lp0注释: 一些打印机(如HP激光打印机)需要在文件的最后有一个^L(Control-L)来触发打印。虽然没有^L用cat可以成功,但是打印机会吸收掉数据,坐在那什么都不干。
3. 特殊的打印机驱动
在用foomatic生成PPD文件之前,可能有必要去找到适合你打印机的第三方驱动。如,Epson提供了几款打印机驱动drivers用于开源操作系统。但是,包括Epson的,大部分这些驱动都不是开源的。
在Portage中有下面一些打印机驱动以ebuild形式存在:gimp-print,omni,hpijs,pnm2ppa。.
除开惠普的喷墨打印机,对于大部分打印机来说,你可以使用标准的Linux打印机驱动。访问linuxprinting.org 打印机支持数据库可以找到你的的打印机的信息,并一定要阅读你下载下来的驱动的文档信息和版权信息。
重要: 如果你使用惠普喷墨打印机,必须安装hpijs打印机驱动。这个驱动可以处理所有的postscript解释使得惠普打印机正常工作。hpijs驱动是仅用于惠普喷墨打印机,但是在portage中存在,方便了不少。惠普的hpijs驱动的文档信息将会放在/usr/share/doc/hpijs-
代码 3.1: 安装hpijs
# emerge hpijs注释: 如果你使用惠普的激光打印机,在GNOME打印系统有所支持。如果你使用一个非惠普喷墨打印机,你没有必要安装这个指定的打印机驱动。
4. PPD文件的配置
现在我们该来配置打印机和CUPS了。为了让你的打印机正确的解释Postscript,CUPS需要一个PPD(打印机Postscript定义)文件。生成一个PPD的最简单办法就是使用foomatic。
注释: 另外一种方法是从LinuxPrinting.org下载一个PPD文件。并将它放在/usr/share/cups/model里。如果你使用这种方法,你可以跳过这节的余下部分,从CUPS的配置继续。
为让下面的命令有效,我们需要三点信息:你的打印机ID,打印机设备和打印机驱动(如果你需要安装如上的指定驱动,这里就指hpijs)。打印机的ID和驱动可以从foomatic的数据库中查找到,而打印设备文件是指你打印机所连接的设备块(如file:/dev/lp0,file:/dev/usb/lp0或者Samba打印机smb://user:password@server/share)。
在使用foomatic-configure之前,请记住要启动cupsd。
代码 4.1: 启动cupsd
# /etc/init.d/cupsd start代码 4.2: foomatic的一般用法
(在$printer_model填上你的打印机型号和在$printer_ID填上打印机ID)(用前面两个grep语句的输出填到最后的foomatic配置命令中)# grep $printer_model /usr/share/foomatic/db/source/printer/*# grep $printer_ID /usr/share/foomatic/db/source/driver/*# foomatic-configure -s cups -p $printer_model_number -c file:$print_device_path -n queue name -d driver如果查找驱动失败,你可以在LinuxPrinting.org搜索你的打印机,并检查什么驱动是已知可以成功的,然后选择其中一个驱动安装:
代码 4.3: 安装PPD驱动
(如果你有多个打印机,使用分开的队列名。否则用一个易于记忆的队列名,如“default”就够了)# foomatic-configure -s cups -p现在,这里有一个更具体的例子。下面这些代码是假设你有一个Epson Stylus Color 980打印机。当然,你应该用你实际的打印机型号代替它。 printer model.
代码 4.4: Stylus Color 980打印机中foomatic的具体用法
# grep "Stylus Color 980" /usr/share/foomatic/db/source/printer/* 现在看看下面一行:/usr/share/foomatic/db/source/printer/Epson-Stylus_Color_980.xml:重要: 如果你有问题,请在这里查看foomatic文档和linuxprinting.org的主页得到更多信息。
5. CUPS的配置
既然打印机本身已经配置耗了,现在必须来配置CUPS来处理打印队列。CUPS可以通过网页浏览器从打印服务器的631端口访问。
CUPS有一个给守护程序设好的配置文件,虽然不是必须的,最好应该修改一下。你可能想看一眼它,它就在/etc/cups/cupsd.conf。
对于那些要使用新的打印服务器来设定客户端的人,请查看客户端机器上的/etc/cupsd/client.conf,并将ServerName参数指向打印服务器的网络名称。
代码 5.1: 将CUPS添加到默认运行级别中,并启动CUPS
# rc-update add cupsd default# /etc/init.d/cupsd startCUPS守护程序现在应该在运行中,这样就打开你喜欢的浏览器,指向here,点击Manage Printer。这里你可以找到你新安装的打印机,配置打印机并测试一个页面。
注释: 如果打印因为某些原因不能工作,到你的CUPS日志所在文件夹,仔细查看error_log。
6. 配置程序打印使用CUPS.
概述
当今大多数程序有一个自己的CUPS界面,因此你不需要改动任何东西,只是试试在这个程序中打印。
GIMP软件
开始之前,我们应该安装GIMP的CUPS打印扩展。
代码 6.1: 安装gimp-print
# emerge gimp-print现在,打开GIMP,并打开一个已有的图片,或者只是一个空白图形。这都无关紧要,因为我们只要去看看菜单File。右击图片,到File/Print,打印的对话框应该出现;出现后,点击新打印机。如果你的打印机没有列出,输入你的打印机的名字,然后选择你的打印机的类型。好了,你现在设置在GIMP打印了。试试那些设置,但愿你玩得开心。
7. 使用Linux做一个和Windows兼容的打印服务器
Linux可以做一个优秀的打印服务器,当然也可以作任何服务器。做这个我们首先要编辑/etc/samba/smb.conf来适合你的设置。文件smb.conf里包含了所有可以使你的Linux机器扮演一个面向任何Windows机器的Windows NT服务器的设置。下面我给出了一个非常实用的例子。根据需要编辑以适合你的环境。
代码 7.1: smb.conf样例
[global]workgroup = YOUR_WORKGROUPserver string = Gentoo Linux Serverencrypt passwords = Truesecurity = usersmb passwd file = /etc/samba/private/smbpasswdlog file = /var/log/samba/log.%msocket options = IPTOS_LOWDELAY TCP_NODELAYdomain master = Yeslocal master = Yespreferred master = Yesos level = 65dns proxy = Noname resolve order = lmhosts host bcastbind interfaces only = Trueinterfaces = eth0hosts deny = ALLhosts allow = 192.168.1.4 127.0.0.1 (list of allow hosts here)debug level = 1create mask = 0644directory mask = 0755level2 oplocks = Trueread raw = nowrite cache size = 262144[printers]comment = All Printerpath = /var/spool/sambabrowseable = no如果你使用CUPS,打开/etc/cups/mime.types并去掉下面行的注释去掉:
代码 7.2: 去掉/etc/cups/mime.types下面一行的注释