Canon에서 Linux CAPT 드라이버 V2.60을 다운로드하고 Ubuntu Software-Center와 함께 64 비트 폴더 아래에 나열된 .deb 패키지를 모두 설치했습니다. 캐논 프린터가 여전히 인식되지 않습니다. 내가해야 할 다른 일이 있습니까? 프린터가 USB를 통해 연결되었습니다.
우분투는 내 사무실에 훌륭한 교체를 해주었지만 불행히도 프린터 지원이 없으면 여전히 Windows에 의존합니다.
Canon에서 Linux CAPT 드라이버 V2.60을 다운로드하고 Ubuntu Software-Center와 함께 64 비트 폴더 아래에 나열된 .deb 패키지를 모두 설치했습니다. 캐논 프린터가 여전히 인식되지 않습니다. 내가해야 할 다른 일이 있습니까? 프린터가 USB를 통해 연결되었습니다.
우분투는 내 사무실에 훌륭한 교체를 해주었지만 불행히도 프린터 지원이 없으면 여전히 Windows에 의존합니다.
답변:
Canon CAPT 프린터 드라이버는 비공개 소스이며 Canon에서 제공하는 바이너리 라이브러리는 i386 용으로 컴파일되었습니다. 따라서 amd64를 사용하는 경우 먼저 다중 아치를 활성화하고 일부 라이브러리를 설치해야합니다.
# 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 파일을 찾아 프린터와 일치하거나 가장 가까운 파일을 선택하십시오.
# 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
문제
Canon 프린터 드라이버에는 몇 가지 문제가 있습니다.
데비안 용으로 빌드되었으며 마지막으로 지원되는 Ubuntu 버전은 12.04입니다. 그러나 14.04에서 작동합니다.
여기에는 32 비트 i386 용으로 구축 된 폐쇄 소스 바이너리 라이브러리가 포함되어 있으므로 amd64에서 기본적으로 실행될 수 없습니다 (64 비트 패키지에서도).
captstatusui에 cnsktmodule.c에 대한 무제한 호출이 포함되어 일부 시스템 strcpy
에서 오류가 발생 aborted *** buffer overflow detected ***
함
Canon 프린터 드라이버는 실제로 로컬 또는 네트워크 소켓을 통해 컵과 통신하는 별도의 데몬입니다-시스템에 열린 네트워크 포트를 남겨두고 Canon 코드가 보안 취약점에 대해 감사를받은 것으로 의심됩니다.
프린터는 컵에 두 번 나타날 수 있습니다 (자동 감지 USB 프린터의 경우 한 번, Canon CCPD 데몬으로 한 번). "USB"프린터는 인쇄를 시도하면 작동하지 않습니다. 프린터 설정에서 USB 프린터로 구성된 프린터가 표시되면 수동으로 비활성화해야합니다 (오른쪽 클릭, 비활성화)
Canon은 프린터와 통신 할 때 자체 소프트웨어와 프로토콜을 사용하므로 컵과 통합되지 않고 자동으로 감지되지 않으며 드라이버를 수동으로 설치해야합니다. 프린터가 자동으로 감지되고 작동해야하는 것이 합리적이지만 Canon LBP에서는 불가능합니다. 다음 프린터는 오픈 소스 드라이버로 작동하는 프린터 일 것입니다. 아마도 Brother HL-2250DN (이전의 아마존에서 가장 많이 팔린 레이저 프린터) 과 같은 PCL-Printer Command Language 표준 을 지원하는 네트워크 프린터 일 것입니다. 또는 오픈 소스 HPLIP 소프트웨어 와 함께 작동 하는 HP Linux 권장 프린터 입니다 .
소스 코드의 빌드 스크립트는 오래되었고 약간 혼란 스러웠습니다. 폐쇄 소스 i386 바이너리 라이브러리가 포함되어 있고 빌드 스크립트에서 멀티 아키텍트가 지원되지 않기 때문에 완전히 작동하는 64 비트 릴리스를 컴파일하기가 매우 어렵습니다. 빌드 시스템의 다양한 버그를 해결 한 후에는 32 비트 시스템에서 32 비트 릴리스를 컴파일 할 수 있습니다.
문제 : ccpd가 멈춤
때때로 ccpd가 중단되고 대기열에 "Processing since ..."라고 표시됩니다.
수동 재시작을 시도하십시오.
pkill -9 -x ccpd
pkill -9 -x captmoncnabc
/etc/init.d/ccpd start
/etc/init.d/ccpd status
문제점 : ccpd가 작동하지 않음-시스템 시작 후 하나의 ccpd 프로세스 만 실행
정상적인 작동을 위해서는 두 개의 ccpd 프로세스가 시스템에서 실행되고 있어야합니다. ccpd 데몬은 두 번째 프로세스를 분기하기 전에 실행중인 cups 데몬에 의존합니다. 다음 방법을 사용하여 문제를 해결할 수 있습니다.
cups init 스크립트를 활성화하십시오 (update-rc.d cups 기본값).
ccpd init 스크립트가 cups init 이후에 실행되도록 지시하거나 (update-rc.d ccpd 기본값 99) /etc/rc.local 스크립트에 "sleep 10 && /etc/init.d/ccpd start"를 추가하십시오.
UDEV 규칙 및 시작 스크립트를 사용하려면 UDEV 규칙이 CUPS init 스크립트보다 먼저 실행되므로 ccpd init 스크립트를 다시 시작하는 것이 아니라 시작하는 것이 유용 할 수 있습니다. 예를 들어, "/etc/rc.local"에 다음 문자열을 배치 할 수 있습니다.
수면 10 && /etc/init.d/ccpd restart
( 우분투 위키의 솔루션 )
Canon 지원 센터에 버그 및 문제보고
Canon은 드라이버 관련 버그 및 문제를보고하기위한 공식 이메일 주소를 가지고 있습니다.
sup-debian@list.canon.co.jp
소스에서 빌드
소스에서 빌드 및 설치를 시도하려는 경우 다음 지시 사항을 따르십시오 ( 아키 빌드 스크립트 도 도움이 될 수 있음).
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
하면 Canon 라이브러리를 "ELF 32 비트"로 식별하므로 32 비트 동적 라이브러리가 필요합니다. 그래서 같은 ldd를 실행 ldd canon/libcapt.so
- 링커는 필요한 동적 라이브러리를 인쇄 찾을 수없는 자들을 보여줍니다. 그런 다음 apt-file search libpthread.so
라이브러리에있는 패키지를 찾는 데 사용할 수 있습니다 .