相比游戏和多媒体,Linux对打印机的支持强劲了许多,这得益于CUPS(Common Unix Printing System,中译“通用Unix打印系统”)的迅速发展。CUPS诞生于1999年,它能够把Linux支持的PostScript页面描述转换为打印机能识别的命令集,然后输出到打印机。现在,CUPS已经得到大多数打印设备商的支持,能驱动大量的打印设备,我们可以在OpenPrinting的网站上找到这些打印机的驱动信息。
这篇文章记录我在Gentoo Linux上安装和本地配置Canon Pixma iP1880喷墨打印机的过程,希望大家能把它当作《Gentoo打印指南》的补充阅读。欢迎FIXME :-)
0. 购买一款Linux支持的打印机
在掏出钱包准备“大出血”之前,我们首先要知道这款打印机能否在Linux下正常工作。OpenPrinting的数据库里有许多相关的信息,比如Linux支持的打印机列表,比如这些打印机的驱动信息。从中我们可以找到答案,例如,iP1880的介绍上写着:Canon Pixma iP1880: Color inkjet printer, works Perfectly(彩色喷墨打印机,完美支持)。这就足够了。
如果我们相中的打印机才“新鲜出炉”,还没有进入OpenPrinting的数据库,该怎么办呢?首选是Google,俗话说得好,“知之为知之,不知Google知”。另外,这儿有一条为Linux挑选硬件的普适原则:尽量选择国际大厂的产品。通常这些产品的质量更好,也比国内厂商也更尊重Linux用户。(wyt:想到淘宝拒收Linux和Firefox用户,怒气值就大幅上升-__-)
在家用打印领域,HP Deskjet D2368、Epson ME2和Canon Pixma iP1880是最近比较热门的选择。D2368单机成本不足300元,性价比较高。ME2的优势在于它的墨盒,黑墨和彩墨分别只要39和59元,适合有大量打印需求的人。
我更喜欢iP1880。Canon Pixma iP1880是佳能的07年春季新品,黑色优雅的立方体和弧线设计,放在我家Tt Matrix旁边相得益彰。FINE打印头技术,使iP1880的打印速度更快打印质量更高。黑白文档每分钟印20页,彩色每分钟印16页,4×6无边距的照片只需70秒。最高4800dpi的分辨率,最小仅2pl的墨滴。而且iP1880单价只有360元,附送830黑墨和831彩墨各一盒,比“抠门”的D2368(D2368仅附送刚够打20张的“体验墨盒”)更超值。但是,iP1880也有一个缺点:因为没有出纸口的挡板,iP1880的实际占用面积要比看上去大得多。
1. 配置内核
首先按照说明书安置好iP1880,打开开关。然后为Linux内核添加USB打印支持。检查/usr/src/linux是否指向正确的内核版本。没问题的话,目录切换到/usr/src/linux,运行make menuconfig配置内核。如果你和我一样用genkernel的话,运行genkernel --menuconfig all。(提醒:不要忘记为LVM2或者EVMS2,启用--lvm2或--evms2选项)
和《Gentoo打印指南》说的稍有不同,在2.6.22-r5的内核里,相关的USB支持似乎只能以模块编入内核。但是这不是什么大问题,只要别忘记事后加载这些模块。
Device Drivers -->
USB Support -->
<M> Support for Host-side USB
(...)
--- USB Host Controller Drivers
(选择系统HCD。如果不知道选哪个,运行"lspci -v | grep HCI"看看)
<M> EHCI HCD (USB 2.0) support (或)
<M> OHCI HCD Support (或)
<M> UHCI HCD (most Intel and VIA) support
(...)
<M> USB Printer support
编译完内核之后,我们需要让这些模块能自动加载。
# echo "uhci-hcd" >> /etc/modules.autoload.d/kernel-2.6
2. 安装CUPS
接下来我们安装CUPS。得益于USE flags,在Gentoo上安装CUPS是一件非常享受的事情。选择你要的USE flag,把它们加入/etc/portage/package.use。如果不知道选哪个,可以参考《Gentoo打印指南》的说明。
# echo "net-print/cups ldap ppds" >> /etc/portage/package.use
# emerge -av cups
[ebuild N ] net-print/cups-1.2.10-r1 USE="X dbus jpeg ldap nls pam png ppds ssl tiff -php -samba -slp" 3,534 kB
(我们还想把cups加入/etc/make.conf,让所以支持CUPS的应用程序都能支持我们的打印机)
# vi /etc/make.conf
USE="... cups ..."
(然后更新这些程序)
# emerge -uDN world
(启动CUPS)
# /etc/init.d/cupsd start
# rc-update add cupsd default
CUPS有一套不错的默认配置,对我来说这已经足够了。如果你希望能从其他电脑上远程调用或者管理这台打印机,你需要修改一下/etc/cups/cups.conf。这通常不会很难,因为cups.org上有一份详细的用户文档可供参考。
3. 配置iP1880打印机
用lsusb命令看看我们的打印机是否在线。
# lsusb
Bus 007 Device 006: ID 04a9:10c2 Canon, Inc.
看起来我们做的不错,Gentoo已经识别出iP1880了。从Gentoo-wiki上我们可以找到和iP1880兼容的驱动net-print/cnijfilter-2.70的ebuild。接下来我们就要开始安装了。
# mkdir /usr/portage/net-print/cnijfilter
(本地overlay中创建目录,参照/etc/make.conf中的PORTDIR_OVERLAY)
# mkdir <PORTDIR_OVERLAY>/net-print/cnijfilter
# cd <PORTDIR_OVERLAY>/net-print/cnijfilter
(下载bugs.gentoo.org提供的ebuild。你也可以下载我这儿的副本)
# wget http://bugs.gentoo.org/attachment.cgi?id=118804 -O cnijfilter-2.70.ebuild
# ebuild cnijfilter-2.70.ebuild digest
>>> Creating Manifest for /usr/portage/net-print/cnijfilter...
# ebuild cnijfilter-2.70.ebuild fetch
最后一条命令fetch的将是佳能提供的一个rpm。但是我从佳能日本的ftp下的时候速度特别慢,后来我是从Google上搜出的一个ftp上下来的。另外,你可以从这里下载。
# wget http://ftp.linux.kiev.ua/pub/Linux/drivers/Canon/bj/download.canon.jp/pub/driver/bj/linux/cnijfilter-common-2.70-1.src.rpm
(或)
# wget http://luliban.com/attachments/cnijfilter-common-2.70-1.src.rpm
(安装net-print/cnijfilter)
# echo "net-print/cnijfilter ~x86" >> /etc/portage/package.keywords
# echo "net-print/cnijfilter ip1800" >> /etc/portage/package.use
# emerge -av net-print/cnijfilter
然后,我们为把iP1880添加到CUPS所管理的打印机列表中。启动Firefox,访问CUPS的管理界面 http://localhost:631,点击Add Printer(添加打印机)。先是为iP1880添加相应信息:
- Name: cnip1880
- Location: Just in my room
- Description: Canon Pixma iP1880
Device选择Canon iP1800 Series USB #1(Canon iP1800 Series),Model/Driver选择Canon iP1800 Series Ver2.7.0(en)。最后在添加打印机之前,我们还要输入root的帐号和密码。
到这里,我们已经完成了iP1880的安装。我们可以在可以在CUPS管理页面,点击Set Printer Option(打印机设置),配置纸张、分辨率和色彩模型等参数。或者,点击Print Test Page(打印测试页面)看看打印效果。总之,这篇文章到此结束,大家有什么问题的话,欢迎留言评论。
参考页面:



1 评论:
Really thank you for this!
Just bought a Canon ip-1880 and followed the instructions on your webpage to install cups for it.
I am on amd64 and so I needed to put this into my overlay (emul-linux-x86-bjdeps):
http://bugs.gentoo.org/129352
Get the ebuilds
ebuild emul-linux-x86-bjdeps digest
echo "app-emulation/emul-linux-x86-bjdeps ~amd64" >> /etc/portage/package.keywords
emerge -uvD cnijfilter. It will pull in both packages.
Thanks again!
-William
发表评论
欢迎留言