Canon LBPプリンターをUbuntu 14.04で実行できない


17

Linux CAPTドライバーV2.60をCanonからダウンロードし、Ubuntu Software-Centerの64ビットフォルダーの下にリストされている両方の.debパッケージをインストールしました。Canonプリンターはまだ認識されません。他に何かしなければならないことはありますか?プリンターがUSBで接続されています。

Ubuntuは私のオフィスにとって素晴らしい代替品になりますが、残念ながらプリンタのサポートがなければ、私はまだWindowsに依存しています。

ここに画像の説明を入力してください


CanonがLinuxをサポートしていないことをUbuntuのせいにしないでください。
リンツウィンド

@Rinzwind Ubuntuには、キヤノンと話をしてサポートを向上させるのに十分な力があると思います。
エンペドクル

いいえ、間違っています。シンプル:キヤノンはビジネスとしてお金を望んでいます。Canonicalは支払いません(会社の理想に反します)。Ubuntu上のCanonに関してあなたが見るすべてのサポートは、ボランティアからのものです!(ランチパッドの michael gruz launchpad.net/~michael-gruz/+archive/canon-trunk )。
リンツウィンド

@Rinzwindそこの指示に従って、ターミナルを開き、「sudo add-apt-repository ppa:michael-gruz / canon-trunk」と「sudo apt-get update」を実行しました。他に何か?
エンペドクル

1
そのPPAは廃止されており、Ubuntu 14.04をサポートしていません。
ベイン

回答:


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プリンタードライバーにはいくつかの問題があります。

  • Debian用に構築され、最後にサポートされたUbuntuバージョンは12.04でした。ただし、14.04では機能します。

  • 32ビットi386用にビルドされたクローズドソースバイナリライブラリが含まれているため、amd64でネイティブに実行することはできません(64ビットパッケージでも)

  • captstatusuiには、一部のシステムstrcpyでエラーが発生aborted *** buffer overflow detected ***して失敗するcnsktmodule.cの無制限の呼び出しが含まれています

  • Canonプリンタードライバーは、実際にはローカルソケットまたはネットワークソケットを介してカップと通信する別個のデーモンです。システムのネットワークポートを開いたままにし、Canonコードがセキュリティの脆弱性について監査されたことはないと思います

  • プリンターはカップに2回表示されます(自動検出されたUSBプリンターの場合は1回、Canon CCPDデーモンとして1回)が、「USB」プリンターは印刷しようとすると機能しません。プリンター設定で、プリンターがUSBプリンターとして構成されている場合は、手動で無効にする必要があります(右クリックして無効にする)

  • キヤノンは、プリンターとの通信に独自の専用ソフトウェアとプロトコルを使用しているため、カップと統合されておらず、自動的に検出されず、ドライバーを手動でインストールする必要があります。プリンターが自動的に検出されて正常に動作することを期待するのは合理的ですが、Canon LBPではこれは不可能です。私の次のプリンターは、オープンソースドライバーで「機能する」プリンター、おそらくBrother HL-2250DN(安い二重ネットワークプリンター、以前はAmazonのトップセールスレーザープリンター)のようなPCL- プリンターコマンド言語標準をサポートするネットワークプリンターです。、またはオープンソース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プロセスが1つだけ

通常の操作では、2つのccpdプロセスがシステムで実行されている必要があります。ccpdデーモンは、2番目のプロセスをフォークする前にcupsデーモンを実行することに依存しています。次の方法を使用して、問題を回避できます。

  1. cups initスクリプトを有効にします(update-rc.d cupsのデフォルト)。

  2. cups init(update-rc.d ccpdのデフォルト値99)の後に実行するようにccpd initスクリプトに指示するか、/ etc / rc.localスクリプトに「sleep 10 && /etc/init.d/ccpd start」を追加します。

UDEVルールと起動スクリプトを使用する場合は、CUPS initスクリプトの前にUDEVルールが実行されることに注意してください。そのため、単に起動するのではなく、ccpd initスクリプトを再起動すると便利です。たとえば、「/ etc / rc.local」に次の文字列を配置できます。

sleep 10 && /etc/init.d/ccpd restart

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ライブラリが含まれます。


ありがとう。また、エネルギー効率も常に求めています。LaserJet Pro P1102はどうですか?topten.ch/deutsch/buro/laserdrucker/...
エンペドクレス

HPLIP P1102ページによると、そのプリンターはUbuntu 14.04で完全にサポートされています。ダウンロード可能なクローズドソースプラグインが必要です。hp-setupダウンロードと設定を行うソフトウェア()を提供します。
ベイン


1
答えてくれてありがとう!ところで、それlibstdc++6:i386 libxml2:i386 zlib1g:i386が必要だということをどのように知ったのですか?指示にはが記載ia32-libsされていましたが、それ以降のUbuntuバージョンには存在しなかったので、置き換えが何であるか疑問に思いました。
syockit 14年

1
@syockit実行file canon/libcapt.soすると、Canonライブラリが「ELF 32ビット」として識別されるため、32ビットの動的ライブラリが必要であることがわかります。そのようにlddを実行しますldd canon/libcapt.so-リンカは必要な動的ライブラリを出力し、見つからないものを表示します。その後、使用することができますapt-file search libpthread.soライブラリはしているパッケージを見つけること。
ベイン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.