最初这个问题仅限于 11.10。现在我在 (Lubuntu) 12.10。(关于这个问题的变化,请参见元问题)。
考虑 11.10
我尝试过不同的(或没有太大区别的)方法 - 其他用户也在这里评论过。我的主要参考资料是:
- 这ubuntu 官方文档网站上的 LBP Canon 驱动包,
- 这Unixmen 的解决方案部分参考了Radu Cotescu 脚本旨在提供近乎自动化的安装,并且
- 一个由 Unixmen 更新该脚本的版本(下载这里)。
对我来说都不起作用。
答案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 restart
或sudo 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
行不通的