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

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

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

考虑 11.10

我尝试过不同的(或没有太大区别的)方法 - 其他用户也在这里评论过。我的主要参考资料是:

对我来说都不起作用。

答案1

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

考虑 12.04

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

但在基于 Ubuntu 12.04 的 eOS Luna 中尝试后,我没能让它工作。事实上,我在这里针对 12.04 和 12.10 的回答在 Xubuntu 和 Lubuntu 中过了一段时间后也停止工作了,但我把它们放在这里是因为它们对其他投票赞成的人似乎很有用。

我有一个新的解决方案(在 eOS 和 2.6 驱动程序中测试过)- 已介绍这里

考虑 12.10、13.04

我已按照Ubuntu 文档页面以及驱动程序附带的驱动程序手册:

(该链接上的 v.2.4 不再可用。我已将其上传这里.2,5版本这里

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

    /etc/init.d/cups 重启

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

/etc/init.d/cupsys restart

注意:在重新启动 CUPS 之前,请勿使用“lpadmin”命令注册打印机。根据您使用的发行版,可能无法输入“For deb packages”命令。在这种情况下,请输入“For rpm packages”命令。”]

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

/etc/init.d/cups restart

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

得到这个结果:

cups stop/waiting
cups start/running, process 2758
  • 手册中的第 5 步(“使用打印后台处理程序注册打印机 (PPD)。”)由 Ubuntu 文档页面进行了修改

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

因此,我不得不进入

sudo /usr/sbin/lpadmin -p LBP1120 -m CNCUPSLBP1120CAPTK.ppd -v ccp://localhost:59787 -E

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

然后将文件注释成如下所示,佳能驱动程序不通过 cups 与打印机通信:

# cups talks to the raw USB devices, so we need to blacklist usblp to avoid
# grabbing them
# blacklist usblp

因此,当我迷失于使用 nano 时,我尝试了

sudo gedit /etc/modprobe.d/blacklist-cups-usblp.conf

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

(在此刻,核实在主菜单中的系统/打印机下,记录的打印机名称是确切地 LBP1120)。

  • 第 6 步。“在 ccpd 守护进程安装文件中注册打印机。”
sudo /usr/sbin/ccpdadmin -p LBP1120 -o /dev/usb/lp0

你应该得到一些东西相似的更改为:

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
  • 手册中的第 7 步:

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

sudo /etc/init.d/ccpd start

注意:将 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

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

要通过双击可执行脚本文件来查看状态,请使该文件可执行:

#!/bin/bash

gnome-terminal -e "/etc/init.d/ccpd status"

考虑 13.10

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


考虑在 Ubuntu 10.10 中安装

这确实有效!

Ubuntu 文档网站提到这款打印机已在 Ubuntu 10.10 上进行了测试。虽然我目前使用的是 12.10,但我还是想尝试一下。因此,我已将 10.10 安装为持久实时 USB,并按照“软件包存储库(11.10 之前)“。

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

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

sudo add-apt-repository ppa:michael-gruz/canon
sudo apt-get update
sudo apt-get install cndrvcups-capt cndrvcups-common

系统->管理->打印添加打印机。选择“添加打印机”。不要在这里选择 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

然后:

sudo /etc/init.d/ccpd restart
sudo /etc/init.d/ccpd status

你应该得到 2 个数字,但我只得到了一个。

因此,在这种情况下:

检查 /etc/ccpd.conf(gksudo gedit /etc/ccpd.conf)是否有以下内容:

<Printer  LBP1120>
DevicePath  /dev/usb/lp0
</Printer>

为拿到它,为实现它:

sudo /usr/sbin/ccpdadmin -p LBP1120 -o /dev/usb/lp0

另外,在 /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"

(添加它

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

然后启用规则:

sudo udevadm control --reload-rules

然后重试:

sudo /etc/init.d/ccpd restart
sudo /etc/init.d/ccpd status

如果得到这两个数字,请尝试打印。然后重新启动计算机。

测试 2 个数字

sudo /etc/init.d/ccpd status

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


考虑在 11.10 中安装

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

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

我添加了“故障排除”部分的命令(事实上,我偶然发现了这些命令这里) - 虽然我没有注意到状态监视器报告错误:我只是不知道该怎么办了。那就是:

lsmod | grep usblp
sudo modprobe usblp
ls -l /dev/usb/lp0
sudo /etc/init.d/ccpd restart

嗯,成功了!

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

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

但我担心这仍是一个临时解决办法。

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

答案2

考虑 Ubuntu 12.04、12.10、13.04 和 13.10

对于 12.04 和 13.04,还有一些额外的步骤。对于所有其他版本,请跳过这些步骤。

对于 Ubuntu 12.04,请先执行以下操作:

Ubuntu 12.04 再次将创建 /dev/usb/lp0 设备链接的 usblp 模块列入黑名单。要解决此问题,请编辑/etc/modprobe.d/blacklist-cups-usblp.conf

在终端输入:

sudo gedit /etc/modprobe.d/blacklist-cups-usblp.conf

然后将文件注释成如下所示,佳能驱动程序不通过 cups 与打印机通信:

# cups talks to the raw USB devices, so we need to blacklist usblp to avoid
# grabbing them
# blacklist usblp

对于 Ubuntu 13.10,请先执行以下操作:

  • 安装portreserve软件包:

    sudo apt-get install portreserve

对于所有其他版本的 Ubuntu,请从这里开始

根据您使用的发行版,您可能需要使用sudo /etc/init.d/cupsys restartsudo service cups restart重新启动 CUPS。您应该得到某种验证,确认 cups 确实重新启动了

  • 使用打印后台处理程序注册打印机(PPD):

    sudo /usr/sbin/lpadmin -p LBP1120 -m CNCUPSLBP1120CAPTK.ppd -v ccp://localhost:59787 -E

  • 在 ccpd 守护进程设置文件中注册打印机:

    sudo /usr/sbin/ccpdadmin -p LBP1120 -o /dev/usb/lp0

你应该得到一些东西相似的更改为:

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
  • 启动 ccpd 守护进程。

    sudo /etc/init.d/ccpd start

  • 测试 ccpd 守护进程是否正常运行:

输入sudo /etc/init.d/ccpd status以查看是否可以看到 2 个数字。一个或没有数字表示出现问题。两个数字表示所有功能均应正常工作,但直到注销并在登录后连接打印机后才能进行打印。

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

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

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

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

  • 当你只得到一个号码时,尝试sudo /etc/init.d/ccpd restart

最有可能发生的事情是每次重启后都需要重新启动 ccpd 守护进程才能打印:除非您将 ccpd 守护进程设置为在 Linux 启动时自动启动。您可以在下面的答案中找到很多方法来实现这一点这里):

如果事情仍然没有进展

这里是另一种非常相似的方法。在 Elementary OS Luna(基于 Ubuntu 12.04)上进行了测试。此方法包含许多有用的故障排除技巧。

答案3

这是一个补充答案,有待考虑仅作为补充对任何其他人。

安装打印机后,如果打印机无法工作,请考虑采取以下措施:

  • 检查“打印”或“打印机”下,右键单击打印机并“查看打印队列”,选择作业,右键单击并单击“释放”(如果处于活动状态)

  • 运行captstatusui -P LBP1120并检查“恢复作业”是否处于活动状态

  • 通过电源按钮重新启动打印机


考虑为主要有用的命令创建可执行脚本。为此,需要 gnome-terminal 或另一个具有自定义配置文件的终端(在本例中称为“new1”),该配置文件将在结束命令后保持终端打开。在 gnome 终端中:配置文件首选项 - 标题和命令 - 命令打开时:保持终端打开。

查看 ccpd 状态的脚本(两个数字):

#!/bin/bash

gnome-terminal --window-with-profile=new1 -e "service ccpd status"

重新启动 cups 并查看状态的脚本:

#!/bin/bash

gnome-terminal --window-with-profile=new1 -e " sudo service ccpd restart && service ccpd status"

打开“capt”用户界面的脚本:

#!/bin/bash

gnome-terminal --window-with-profile=new1 -e "captstatusui -P LBP1120"

我发现它们与主“打印机”或“打印”桌面/快捷方式文件一样有用。

答案4

我编写了一个脚本,希望对您有用。我在打印机关闭的情况下启动了 32 位 Ubuntu 12.04.5 LTS USB,然后执行了以下代码:

#!/bin/bash

if [ "$EUID" -ne 0 ]; then
    echo "Not root"
    exit
fi

touch /usr/lib/libcups.so.2

cd ~/Downloads
wget --no-check-certificate https://files.canon-europe.com/files/soft39340/Software/CAPT_Printer_Driver_for_Linux_V200_uk_EN.tar.gz -O print_driver.tar.gz
mkdir print_driver
tar --strip-components=1 -C print_driver -xzvf print_driver.tar.gz
cd print_driver/Driver/Debian

# renames cupsys to cups in deb package requirements
function rename_libcups_in_deb {
    if [ ! -f $1 ]; then
        echo "Where is the .deb file?"; exit 1;
    fi
    ar x "$1"
    mkdir tmp
    cd tmp
    tar -xvzf ../control.tar.gz
    sed -i 's/cupsys/cups/g' control
    rm -f ../control.tar.gz
    tar cvzf ../control.tar.gz *
    cd ..
    rm -rf tmp
    ar r "$1" control.tar.gz
    rm -f control.tar.gz debian-binary data.tar.gz
}
chmod 0777 "cndrvcups-capt_2.00-2_i386.deb"
chmod 0777 "cndrvcups-common_2.00-2_i386.deb"
rename_libcups_in_deb "cndrvcups-capt_2.00-2_i386.deb"
rename_libcups_in_deb "cndrvcups-common_2.00-2_i386.deb"

dpkg -i *.deb

lpadmin -p LBP1120 -m CNCUPSLBP1120CAPTK.ppd -v ccp://localhost:59787 -E
ccpdadmin -p LBP1120 -o /dev/usb/lp0

/bin/cat <<EOM >/etc/udev/rules.d/85-canon-capt.rules
KERNEL=="lp*", SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="04a9", RUN+="/etc/init.d/ccpd start"
KERNEL=="lp*", SUBSYSTEMS=="usb", ACTION=="remove", RUN+="/usr/bin/killall -9 ccpd"
EOM

# You might not want to do this if you have other printers as it will stop their detection
cp /lib/udev/rules.d/70-printers.rules /lib/udev/rules.d/70-printers.rules.backup
echo "" > /lib/udev/rules.d/70-printers.rules

/bin/cat <<EOM >/etc/init/ccpd-restart.conf
# ccpd-restart
description    "restart daemon ccpd for Canon printer LBP1120"

start on started cups
stop on runlevel [016]

script
    if [ -e /dev/usb/lp* ]; then
        service ccpd stop
        killall -9 ccpd &
        sleep 2
        service ccpd start
    fi
end script
EOM

udevadm control --reload-rules

service cups restart

然后我打开打印机,它工作正常。如果启动计算机时打印机已打开,则应将其关闭然后再打开。在这种情况下,必须终止 ccpd 进程,因为简单地这样做是service ccpd stop行不通的

相关内容