如何使 LBP-1120 佳能打印机工作?

13 installation printing canon drivers

最初这个问题仅限于 11.10。现在我在(Lubuntu)12.10。(有关问题的变化,请参阅此元问题)。

考虑 11.10

我尝试了不同(或不那么不同)的方法 - 其他用户也在这里发表了评论。我的主要参考是:

没有一个对我有用。

小智 11

随着时间的推移,就 Ubuntu 12.04 - 13.10 而言,这个答案变得非常冗长和混乱。以下是提供相同解决方案但更清晰的答案。

考虑 12.04

它应该以与下面 12.10 相同的方式工作。

但是在基于 12.04 Ubuntu 的 eOS Luna 中进行尝试时,我无法使其正常工作。事实上,我在 12.04 和 12.10 的回答在 Xubuntu 和 Lubuntu 一段时间后也停止工作,但我让这些回答在这里,因为它们似乎对其他投票赞成的人有用。

我有一个新的解决方案(在 eOS 中测试并使用 2.6 驱动程序) - 在此处提供

考虑 12.10、13.04

我已按照Ubuntu 文档页面和驱动程序随附的驱动程序手册中的步骤操作:

(2.4版已不存在在该链接。我已经上传就在这里。2.5版本在这里。)

  • 安装 common 和 capt deb (v.2.4) [手册中的步骤 2 和 3]
  • 以 root 身份进入终端
  • 第四步:【“重启CUPS。对于rpm包:输入以下命令:

    /etc/init.d/cups 重启

对于 deb 包:输入以下命令:

/etc/init.d/cupsys restart
Run Code Online (Sandbox Code Playgroud)

注意 在重新启动 CUPS 之前,不要使用“lpadmin”命令注册打印机。根据您使用的发行版,可能不会输入“对于 deb 包”命令。在这种情况下,请输入“对于 rpm 包”命令。”]

这是我的情况:所以,我必须运行:

/etc/init.d/cups restart
Run Code Online (Sandbox Code Playgroud)

(我收到一条终端消息,说我也可以使用 service cups restart

得到这个结果:

cups stop/waiting
cups start/running, process 2758
Run Code Online (Sandbox Code Playgroud)
  • 手册中的第 5 步(“Register the printer (PPD) with the print spooler.”)由 Ubuntu 文档页面修改

[“确保您相应地更改此行: sudo /usr/sbin/lpadmin -p LBP5000 -m CNCUPSLBP5000CAPTK.ppd -v ccp://localhost:59787 -E 手册说 ccp://localhost:59687 但 Ubuntu by默认使用 59787。如果你不改变它,这会让你头疼。(文件 /etc/ccpd.conf 定义了 UI_Port 59787 和 PDATA_Port 59687。因此,这两个端口都需要在防火墙设置中打开。)” ]

因此,我必须输入

sudo /usr/sbin/lpadmin -p LBP1120 -m CNCUPSLBP1120CAPTK.ppd -v ccp://localhost:59787 -E
Run Code Online (Sandbox Code Playgroud)

Ubuntu 文档说:“* 注意:Ubuntu 12.04 再次将创建 /dev/usb/lp0 设备链接的 usblp 模块列入黑名单。要解决此问题,请执行以下操作 sudo nano /etc/modprobe.d/blacklist-cups-usblp.conf

然后将文件注释为如下所示,canons 驱动程序不会通过cups 与打印机对话:

# cups talks to the raw USB devices, so we need to blacklist usblp to avoid
# grabbing them
# blacklist usblp
Run Code Online (Sandbox Code Playgroud)

所以,当我使用 nano 迷路时,我试过

sudo gedit /etc/modprobe.d/blacklist-cups-usblp.conf
Run Code Online (Sandbox Code Playgroud)

并添加了上述内容(blacklist-cups-usblp.conf 是一个空文件,我只是粘贴了这些行)

(此时,请在主菜单中的 System/Printers 下验证那里记录的打印机名称是否正确 LBP1120)。

  • 步骤 6.“在 ccpd 守护程序设置文件中注册打印机。”
sudo /usr/sbin/ccpdadmin -p LBP1120 -o /dev/usb/lp0
Run Code Online (Sandbox Code Playgroud)

你应该得到类似的东西:

CUPS_ConfigPath = /etc/cups/
 LOG Path        = None
 UI Port         = 59787

 Entry Num  : Spooler   : Backend   : FIFO path     : Device Path   : Status 
 ----------------------------------------------------------------------------
     [0]    : LBP1120   : ccp       : //localhost:59787     : /dev/usb/lp0 : Modified
Run Code Online (Sandbox Code Playgroud)
  • 手册第 7 步:

“启动ccpd守护进程。输入以下命令。

sudo /etc/init.d/ccpd start
Run Code Online (Sandbox Code Playgroud)

注意 设置 ccpd 守护进程在 Linux 启动时自动启动会很方便。”

之后,进入sudo /etc/init.d/ccpd status看看能不能看到2个数字(以前版本安装比较熟悉):是的,有2个数字。但是要在登录后注销并连接打印机才能打印。

如果打印不起作用,我想必须考虑这些规则:

  • 登录后连接/启动打印机

  • /etc/init.d/ccpd status 查看2个数字

  • sudo /etc/init.d/ccpd start 启动 ccpd 守护进程

最有可能发生的情况是每次重新启动后都需要重新启动 ccpd 守护程序以进行打印:除非您将 ccpd 守护程序设置为在 Linux 启动时自动启动- 正如手册所建议的那样。要做到这一点添加下面的命令来启动应用程序(如下面的答案在这里):

sudo update-rc.d ccpd defaults
Run Code Online (Sandbox Code Playgroud)

注意:在 12.10 上,此方法在一台计算机上对我有用,但在另一台计算机上失败了。在 13.04 它根本不起作用。通过添加sudo /etc/init.d/ccpd start到启动应用程序,我成功地在 13.04 上自动启动了 ccpd deamon 。

要通过双击可执行脚本文件查看状态,请执行以下操作:

#!/bin/bash

gnome-terminal -e "/etc/init.d/ccpd status"
Run Code Online (Sandbox Code Playgroud)

考虑 13.10

同上,但我必须安装portreserve软件包才能使用此方法。


考虑在 Ubuntu 10.10 中安装

这真的有效!

Ubuntu文档网站提到,这台打印机是与Ubuntu 10.10测试。虽然我目前使用 12.10,但我想尝试一下。因此,我已将 10.10 安装为永久实时 USB 并按照“ Package Repository(11.10 之前) ”下的步骤进行操作。

最后我成功了- 按照以下步骤操作:

将 PPA 添加到您的系统并安装软件包:

sudo add-apt-repository ppa:michael-gruz/canon
sudo apt-get update
sudo apt-get install cndrvcups-capt cndrvcups-common
Run Code Online (Sandbox Code Playgroud)

系统->管理->打印添加打印机。选择“添加打印机”。不要在这里选择 Ubuntu 找到的 USB 打印机。选择“CAPT 打印机”。您应该在 URI 中看到“ccp”。更改它,使 URI 应变为“ccp:/var/ccpd/fifo0”。单击“下一步”,找到您的型号并添加您的打印机。如果您看到日语和英语变体,请选择英语变体。

你可以试试这个,而不是 GUI 动作:

sudo /usr/sbin/lpadmin -p LBP1120 -m CNCUPSLBP1120CAPTK.ppd -v ccp://localhost:59787 -E
Run Code Online (Sandbox Code Playgroud)

然后:

sudo /etc/init.d/ccpd restart
sudo /etc/init.d/ccpd status
Run Code Online (Sandbox Code Playgroud)

你应该在那里得到 2 个数字,但我只有一个。

所以,在这种情况下:

检查 /etc/ccpd.conf (gksudo gedit /etc/ccpd.conf) 你有这个:

<Printer  LBP1120>
DevicePath  /dev/usb/lp0
</Printer>
Run Code Online (Sandbox Code Playgroud)

为拿到它,为实现它:

sudo /usr/sbin/ccpdadmin -p LBP1120 -o /dev/usb/lp0
Run Code Online (Sandbox Code Playgroud)

另外,在 /etc/udev/rules.d/85-canon-capt.rules 中,你应该有这个:

KERNEL=="lp*", SUBSYSTEMS=="usb", ACTION=="add", SYSFS{idVendor}=="04a9", RUN+="/bin/bash /etc/init.d/ccpd start"
KERNEL=="lp*", SUBSYSTEMS=="usb", ACTION=="remove", RUN+="/bin/bash /etc/init.d/ccpd stop"
Run Code Online (Sandbox Code Playgroud)

(添加它

gksudo gedit /etc/udev/rules.d/85-canon-capt.rules)

然后启用规则:

sudo udevadm control --reload-rules
Run Code Online (Sandbox Code Playgroud)

然后再试一次:

sudo /etc/init.d/ccpd restart
sudo /etc/init.d/ccpd status
Run Code Online (Sandbox Code Playgroud)

如果您得到这两个数字,请尝试打印。然后重启电脑。

测试 2 个数字的东西

sudo /etc/init.d/ccpd status
Run Code Online (Sandbox Code Playgroud)

如果遇到问题,请尝试关闭打印机,重新启动计算机,并在登录后才打开打印机


考虑安装在 11.10

我回到了 LBP Canon 驱动程序包上Ubuntu 官方文档网站,在从 debian 包(使用 Gdebi)重新安装了 2.3 版驱动程序后,我按照“添加打印机”部分中的说明进行了操作 - 没有成功。尽管事实上我得到了那里提到的“两个数字”(我引用:“你应该在最后看到两个数字。如果你这样做,你很幸运:) 等”)。

然后我继续使用“启动/停止 USB 添加/删除”下的命令,但无法获得那里引用的诊断信息,也无法打印该阶段指定的测试页。当我按照“重新启动和验证”下的命令进行操作时,我没有得到“两个数字”,而只有一个。

我从“疑难解答”部分添加了命令(实际上我在这里偶然发现了这些命令)-尽管我没有注意到状态监视器报告错误:我只是不知道该做什么了。那是:

lsmod | grep usblp
sudo modprobe usblp
ls -l /dev/usb/lp0
sudo /etc/init.d/ccpd restart
Run Code Online (Sandbox Code Playgroud)

嗯,这就是诀窍!

插入我的 USB 打印机后,我收到系统看到打印机的消息,然后我就可以完美打印了。

但是,根据以下说明(“注意:从 Ubuntu 11.10 (Oneiric Ocelot) 开始,usblp 已被弃用,连接 USB 打印机时不会自动加载”)重新启动计算机后无法打印。这似乎与错误 #842823 有关。在 Till Kamppeter 讨论该错误的地址中,我找到并遵循了这些说明,并且能够打印测试页 - 但没有其他内容。冒险还在继续:当我再次遵循官方 Ubuntu 文档页面中的“启动/停止 USB 添加/删除”、“重新启动和验证”和“状态监视器”阶段后,这些说明有效。

但我担心这仍然是一个临时解决方案。

编辑:对我来说,这是我能做到的最好的解决方案,但在重新启动后无法工作,而且使用起来很麻烦。我保留它仅供参考。如果其他人觉得它有用或可以修改,请编辑它以使其工作。