我从佳能公司下载了Linux CAPT驱动程序V2.60,并安装了两个.deb软件包,这些软件包在Ubuntu Software-Center的64位文件夹下列出。我的佳能打印机仍然无法识别。我还有什么需要做的吗?我的打印机通过USB连接。
Ubuntu将取代我的办公室,但是不幸的是,如果没有打印机支持,我仍然会依赖Windows。
我从佳能公司下载了Linux CAPT驱动程序V2.60,并安装了两个.deb软件包,这些软件包在Ubuntu Software-Center的64位文件夹下列出。我的佳能打印机仍然无法识别。我还有什么需要做的吗?我的打印机通过USB连接。
Ubuntu将取代我的办公室,但是不幸的是,如果没有打印机支持,我仍然会依赖Windows。
Answers:
Canon CAPT打印机驱动程序是封闭源,并且Canon为i386编译了二进制库。因此,如果您使用的是amd64,则需要首先启用multiarch并安装一些库:
# amd64 only
dpkg --add-architecture i386
apt-get update
apt-get install libstdc++6:i386 libxml2:i386 zlib1g:i386 libpopt0:i386
如果还没有杯子,请安装它:
apt-get install cups
下载并解压缩Canon CAPT打印机驱动程序:
wget http://gdlp01.c-wss.com/gds/6/0100004596
tar -zxvf Linux_CAPT_PrinterDriver_V260_uk_EN.tar.gz/03/Linux_CAPT_PrinterDriver_V260_uk_EN.tar.gz
根据您的体系结构安装32位或64位驱动程序:
32位
dpkg -i Linux_CAPT_PrinterDriver_V260_uk_EN/32-bit_Driver/Debian/*.deb
64位
dpkg -i Linux_CAPT_PrinterDriver_V260_uk_EN/64-bit_Driver/Debian/*.deb
现在,查找/usr/share/cups/model
描述打印机的ppd文件,然后选择与您的打印机匹配(或最接近)的ppd文件:
# grep -H ModelName /usr/share/cups/model/*.ppd | less
...
/usr/share/cups/model/CNCUPSLBP6018CAPTS.ppd:*ModelName: "Canon LBP6000/LBP6018 CAPT (US)"
在这种情况下,我们选择了CNCUPSLBP6018CAPTS.ppd
与型号LBP6000匹配的产品。
添加打印机:
# lpadmin -p LBP6000 -m CNCUPSLBP6018CAPTS.ppd -v ccp://localhost:59687
# lpadmin -p LBP6000 -E
# ccpdadmin -p LBP6000 -o /dev/usb/lp0
并配置系统以自动启动Canon ccpd守护程序:
# update-rc.d ccpd defaults
问题
佳能打印机驱动程序存在几个问题:
它是为Debian构建的,最后支持的Ubuntu版本是12.04。它确实在14.04中工作。
它包括为32位i386构建的封闭源二进制库,因此不能在amd64上本机运行(即使在64位程序包中)
captstatusui在cnsktmodule.c中包含无限制的调用,strcpy
该调用aborted *** buffer overflow detected ***
在某些系统上因错误而失败
佳能打印机驱动程序实际上是一个单独的守护程序,可通过本地或网络套接字与杯子进行对话-它在系统上留下了开放的网络端口,而且我怀疑佳能代码是否已经过安全性审核。
打印机可以在杯子中出现两次(一次用于自动检测到的USB打印机,一次作为Canon CCPD守护程序),但是如果尝试打印到该打印机,则“ USB”打印机将无法工作。在打印机设置中,如果看到打印机配置为USB打印机,则必须手动将其禁用(右键单击,禁用)
佳能使用自己专有的软件和协议与打印机进行通讯,这就是为什么它不与杯子集成在一起,无法自动检测到并且需要手动安装驱动程序的原因。可以合理地预期应该自动检测到打印机并使其正常工作,但是佳能LBP无法做到这一点。我的下一个打印机将是与开源驱动程序“兼容”的打印机,可能是支持PCL-打印机命令语言标准的网络打印机,例如Brother HL-2250DN(便宜的双面网络打印机,以前是亚马逊最畅销的激光打印机)。 ,或HP Linux推荐的与其开放源HPLIP软件一起使用的打印机。
源代码的构建脚本很旧,有点混乱。由于包含了封闭源i386二进制库,并且在构建脚本中缺少对多体系结构的支持,因此很难编译一个完全可用的64位发行版。解决了构建系统中的各种错误之后,就可以在32位系统上编译32位发行版。
问题:ccpd挂起
有时ccpd挂起,队列仅显示“正在处理……”
尝试手动重启:
pkill -9 -x ccpd
pkill -9 -x captmoncnabc
/etc/init.d/ccpd start
/etc/init.d/ccpd status
问题:ccdd不起作用-系统启动后仅运行一个ccpd进程
为了正常运行,系统中应运行两个ccpd进程。ccpd守护程序在派生第二个进程之前依赖于运行cups守护程序。您可以使用以下方法解决该问题:
启用cups初始化脚本(默认为update-rc.d cups)。
指示ccpd初始化脚本在cups初始化之后运行(update-rc.d ccpd默认为99),或者在/etc/rc.local脚本中添加“ sleep 10 && /etc/init.d/ccpd start”。
如果要使用UDEV规则和启动脚本,请注意UDEV规则在CUPS初始化脚本之前执行,因此重新启动ccpd初始化脚本而不是简单地启动可能很有用。例如,您可以将以下字符串放在“ /etc/rc.local”中:
睡眠10 && /etc/init.d/ccpd重新启动
(来自Ubuntu Wiki的解决方案 )
向佳能支持报告错误和问题
佳能有一个官方电子邮件地址,用于报告驱动程序中的任何错误和问题:
sup-debian@list.canon.co.jp
从源构建
如果您很想尝试从源代码进行构建和安装,请遵循以下说明(Arch构建脚本也可能会有所帮助):
sudo apt-get install build-essential automake libtool libgtk2.0-dev libglade2-dev libcups2-dev
wget http://gdlp01.c-wss.com/gds/6/0100004596/03/Linux_CAPT_PrinterDriver_V260_uk_EN.tar.gz
tar -zxvf Linux_CAPT_PrinterDriver_V260_uk_EN.tar.gz
cd Linux_CAPT_PrinterDriver_V260_uk_EN/Src/
# do cndrvcups-common
sudo apt-get install build-essential automake libtool libgtk2.0-dev libglade2-dev libcups2-dev
rm -rf cndrvcups-common-2.60-1/
tar -zxvf cndrvcups-common-2.60-1.tar.gz
cd cndrvcups-common-2.60-1/
sed -i -e 's/-lcups/-lcups -lgmodule-2.0/' cngplp/src/Makefile.am
dpkg-buildpackage -b -uc
cd ..
sudo apt-get install cups
sudo dpkg -i cndrvcups-common_2.60-1_amd64.deb
# do cndrvcups-capt
rm -rf cndrvcups-capt-2.60-1/
tar -zxvf cndrvcups-capt-2.60-1.tar.gz
cd cndrvcups-capt-2.60-1/
export echo=echo
sed -i -e 's/dh_shlibdeps/dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info/' debian/rules
sed -i -e 's/eval cmds=\"$old_archive_cmds/echo/' cngplp/ltmain.sh
sed -i -e 's:uimain.h":uimain.h"\n#include <cups/ppd.h>:' statusui/src/ppapdata.c
sed -i -e 's/cnsktmodule.la/cnsktmodule.la -lpthread/' statusui/src/Makefile.am
debian/rules configure
sed -i -e 's/RANLIB=/#RANLIB=/' cngplp/libtool
debian/rules build
fakeroot debian/rules install
fakeroot debian/rules binary-arch
cd ..
sudo dpkg -i cndrvcups-capt_2.60-1_amd64.deb
我将其包括在内,以作为任何愿意遵循此道路的人的笔记。大多数人不应该尝试从源头上构建它。即使在amd64系统上,生成的程序包也将包含关闭的i386库。
hp-setup
了将进行下载和配置的软件()。
libstdc++6:i386 libxml2:i386 zlib1g:i386
是必需的?说明确实提到了ia32-libs
,此后在更高的Ubuntu版本中都没有,因此我想知道替换的是什么。
file canon/libcapt.so
,它将佳能库标识为“ ELF 32位”,因此我们知道它需要32位动态库。像这样运行ldd- ldd canon/libcapt.so
链接器将打印所有必需的动态库,并显示未找到的动态库。然后,您可以使用apt-file search libpthread.so
查找包库英寸