答案1
由于 eOS Luna 基于 Ubuntu 12.04 LTS,因此我遵循了所提供的方法这里(下面大部分只是法语的翻译)。
所以,下载2.6驱动程序从这里并安装 deb 文件。
然后,运行这些命令:
sudo /usr/sbin/lpadmin -p LBP1120 -m CNCUPSLBP1120CAPTK.ppd -v ccp://localhost:59787 -E
sudo /usr/sbin/ccpdadmin -p LBP1120 -o /dev/usb/lp0
sudo 服务 ccpd 启动
sudo 服务 ccpd 状态
你应该得到二数字。
如果您没有得到两个数字:
- 使用管理权限进行编辑/etc/ccpd.conf
(本例中为 gedit 文本编辑器)
sudo gedit /etc/ccpd.conf
并添加以下内容:
<Printer LBP1120>
DevicePath / dev/usb/lp0
</ Printer>
然后重新启动守护进程并检查状态:
sudo 服务 ccpd 重新启动
sudo 服务 ccpd 状态
重新启动并重试
最后设置系统,使恶魔ccpd在打开打印机时正确启动;这需要两个条件:在打印机的每次操作时启动或重新启动 ccpd,以及在启动 ccpd 时 CUPS 服务处于活动状态。
使用打印机启动或重新启动 ccpd;可以使用 udev 自动执行此操作:
使用管理权限打开或创建文件:/etc/udev/rules.d/85-canon-capt.rules
sudo gedit /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+="/etc/init.d/ccpd stop"
通过保存文件来完成。
UDEV会自动检测这条新规则,无需重新启动。
如果您使用 BASH 脚本进行自动安装(或者您已经在启动时进行了自动化,如上面链接的我的 askubuntu 答案中所示),则 ccpd 守护进程将不会考虑上述两个条件,它只是每次使用 PC 启动。
因此有必要取消这个系统性的动作,以免干扰新的udev规则。
在终端中键入以下命令:
sudo update-rc.df 删除 ccpd
自动检测文件系统中定义的打印机/lib/udev/rules.d/70-printers.rules可能会违反您刚刚创建的 udev 规则。
使用管理权限打开文件:/lib/udev/rules.d/70-printers.rules
sudo gedit /lib/udev/rules.d/70-printers.rules
并注释所有行:
# Low-level USB device add trigger
#ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="07", ATTR{bInterfaceSubClass}=="01", TAG+="udev-configure-printer", RUN+="udev-configure-printer add %p"
# usblp device add trigger (needed when usblp is already loaded)
#ACTION=="add", KERNEL=="lp*", TAG+="udev-configure-printer", RUN+="udev-configure-printer add %p"
# Low-level USB device remove trigger
#ACTION=="remove", SUBSYSTEM=="usb", ENV{ID_USB_INTERFACES}=="*:0701*:*", RUN+="udev-configure-printer remove %p"
如果在第一次打印请求时 ccpd 守护进程在 CUPS 之前运行,它将卡住,并且不会显示任何错误消息。然后,它可能会占用 100% 的 CPU,并且可能需要通过“kill -9”或转到控制台 - ctrl-alt-f1 - 并在用户名和密码之后强制注销:来停止pkill -KILL -u *username*
。
如果打印机已打开并已连接,则可能会出现这种情况前PC 启动(Ubuntu 启动顺序 UDEV 在 CUPS 之前启动。因此,我们刚刚创建的 UDEV 规则将在 CUPS 之前检测打印机并启动 ccpd),或者在 CUPS 更新的情况下:服务停止,然后在 ccpd 时重新启动保持活跃。
为了克服这些特定问题,除了之前创建的 UDEV 规则之外,您还需要生成 Upstart 作业。当在 USB 总线上检测到打印机时,它将重新启动 ccpd 以确保正确操作。
使用管理权限创建文件:/etc/init/ccpd-restart.conf
sudo gedit /etc/init/ccpd-restart.conf
并插入:
# ccpd-restart - Relance ccpd si l'imprimante est allumée avant le PC.
description "restart daemon ccpd for Canon printer LBP-serie"
start on started cups
stop on runlevel [016]
script
if [ -e /dev/usb/lp* ]; then
/etc/init.d/ccpd stop
sleep 5
/etc/init.d/ccpd start
fi
end script
保存并关闭。
重新启动计算机。
问题解决方案:
如果后面只有 2 个数字service ccpd status
- 重新启动杯子:sudo service ccpd restart
。可能是注销或者重启。
如果有 2 个数字但不会打印(打印作业在打印队列中):
- 检查“打印”下,右键单击打印机并“查看打印队列”,选择作业,右键单击并单击“释放”(如果处于活动状态)
- 运行
captstatusui -P LBP1120
并检查“恢复作业”(如果处于活动状态) - 通过电源按钮重新启动打印机
- 可能会重新启动计算机 - 尝试连接打印机然后断开连接。
答案2
在下面的关联,我发现了一个有趣的问题解决方案print
:
这对我很有用:
lsmod | grep usblp
sudo modprobe usblp
ls -l /dev/usb/lp0
sudo /etc/init.d/ccpd restart
我希望这对其他事情有用。