Linux CAPTドライバーV2.60をCanonからダウンロードし、Ubuntu Software-Centerの64ビットフォルダーの下にリストされている両方の.debパッケージをインストールしました。Canonプリンターはまだ認識されません。他に何かしなければならないことはありますか?プリンターがUSBで接続されています。
Ubuntuは私のオフィスにとって素晴らしい代替品になりますが、残念ながらプリンタのサポートがなければ、私はまだWindowsに依存しています。
Linux CAPTドライバーV2.60をCanonからダウンロードし、Ubuntu Software-Centerの64ビットフォルダーの下にリストされている両方の.debパッケージをインストールしました。Canonプリンターはまだ認識されません。他に何かしなければならないことはありますか?プリンターがUSBで接続されています。
Ubuntuは私のオフィスにとって素晴らしい代替品になりますが、残念ながらプリンタのサポートがなければ、私はまだ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プリンタードライバーにはいくつかの問題があります。
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デーモンを実行することに依存しています。次の方法を使用して、問題を回避できます。
cups initスクリプトを有効にします(update-rc.d cupsのデフォルト)。
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ライブラリが含まれます。
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
ライブラリはしているパッケージを見つけること。