Canon LBP 프린터를 Ubuntu 14.04에서 실행할 수 없습니다


17

Canon에서 Linux CAPT 드라이버 V2.60을 다운로드하고 Ubuntu Software-Center와 함께 64 비트 폴더 아래에 나열된 .deb 패키지를 모두 설치했습니다. 캐논 프린터가 여전히 인식되지 않습니다. 내가해야 할 다른 일이 있습니까? 프린터가 USB를 통해 연결되었습니다.

우분투는 내 사무실에 훌륭한 교체를 해주었지만 불행히도 프린터 지원이 없으면 여전히 Windows에 의존합니다.

여기에 이미지 설명을 입력하십시오


캐논이 리눅스를 지원하지 않는다고 우분투를 비난하지 마십시오.
Rinzwind

@Rinzwind 우분투가 캐논과 대화하여 더 나은 지원을 얻을 수있는 충분한 힘을 가지고 있다고 생각합니다.
empedokles

아니, 당신은 거기 잘못되었습니다. 간단 함 : 비즈니스로서의 Canon은 돈을 원합니다. 그리고 Canonical은 비용을 지불하지 않을 것입니다 (회사의 이상에 위배됩니다). 우분투에서 Canon에 관한 모든 지원은 (!) 자원 봉사자 (런치 패드의 michael gruz launchpad.net/~michael-gruz/+archive/canon-trunk )에서 제공됩니다.
Rinzwind

@Rinzwind 거기의 지침에 따라 터미널을 열고 "sudo add-apt-repository ppa : michael-gruz / canon-trunk"및 "sudo apt-get update"를 수행했습니다. 다른 거있어?
empedokles

1
PPA는 더 이상 사용되지 않으며 Ubuntu 14.04를 지원하지 않습니다.
bain

답변:


14

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 데몬에 의존합니다. 다음 방법을 사용하여 문제를 해결할 수 있습니다.

  1. cups init 스크립트를 활성화하십시오 (update-rc.d cups 기본값).

  2. 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 라이브러리가 포함됩니다.


감사. 나는 또한 항상 에너지 효율을 찾습니다. LaserJet Pro P1102는 어떻습니까? topten.ch/deutsch/buro/laserdrucker/…
empedokles

에 따르면 HPLIP P1102 페이지 프린터는 완전히 우분투 14.04에서 지원됩니다. 다운로드 가능한 폐쇄 소스 플러그인이 필요합니다. hp-setup다운로드를 수행하고 구성 할 소프트웨어 ( )를 제공 합니다.
bain


1
답변 해주셔서 감사합니다! 그런데, 그것이 libstdc++6:i386 libxml2:i386 zlib1g:i386필요 하다는 것을 어떻게 알았 습니까? ia32-libs이후의 Ubuntu 버전에는 없었던 지침이 언급 되었으므로 대체가 무엇인지 궁금합니다.
syockit

1
@syockit 실행 file canon/libcapt.so하면 Canon 라이브러리를 "ELF 32 비트"로 식별하므로 32 비트 동적 라이브러리가 필요합니다. 그래서 같은 ldd를 실행 ldd canon/libcapt.so- 링커는 필요한 동적 라이브러리를 인쇄 찾을 수없는 자들을 보여줍니다. 그런 다음 apt-file search libpthread.so라이브러리에있는 패키지를 찾는 데 사용할 수 있습니다 .
bain
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.