Canon LBP3000をDebian 64bitで印刷 | 見よう見まねのブログ

見よう見まねのブログ

CameraやPCなど、見よう見まねの悪戦苦闘

Linuxを使っていると、周辺機器が使えず苦労することが多いですね。

前回は、Epson LP-S120レーザプリンタをDebian 64bitで印刷することに成功しました。

Epson LP-S120をDebian 64bitで印刷

https://ameblo.jp/miyou55mane/day-20190215.html

 

これに気を良くして、今度はCanon LBP3000もDebian 64bitで印刷することに再挑戦しました。

3年余り前のブログで、Debian Jessie 32bitで印刷可能となりましたが、Jessie 64bit、Stretch 32/64bitでは"ccp send_data error"が出て印刷できません。

Canon LBP3000で印刷

https://ameblo.jp/miyou55mane/day-20151223.html

 

いちいちマルチブートでサポート切れの近い、32bit 旧OS(Jessie)に切り替えて印刷するのも止めたいですね。

ネットでいろいろ調査結果、Ubuntu 18.04(64bit)でCanon LBP2900の印刷に成功した事例を見つけました。

Canon 2900 working on linux

https://riku.titanix.net/wordpress/canon-2900-working-on-linux/

 

要するに、32bit用ライブラリを追加しないと正常に動作しないのが、"ccp send_data error"の原因です。

64bit用ドライバーに32bit用ライブラリが必須とは、設計がおかしいいですね。

 

LBP3000用64bitドライバーは以下から入手できます。

CAPT Printer Driver for Linux Ver.2.71(32bit&64bit)

https://cweb.canon.jp/cgi-bin/download/select-software.cgi

 

以前の手順通り、GDebiで以下を順番にインストールし、

cndrvcups-common_3.21-1_amd64.deb

cndrvcups-capt_2.71-1_amd64.deb

 

端末から印刷設定

$ sudo /usr/sbin/lpadmin -p LBP3000 -m CNCUPSLBP3000CAPTJ.ppd -v ccp://localhost:59787 -E
$ sudo ccpdadmin -p LBP3000 -o /dev/usb/lp0

 

何故か、LBP3000が2つも表示されました。

 

32bit不足ライブラリを追加インストールします。

$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install libatk1.0-0:i386 libcairo2:i386 libgtk2.0-0:i386 libpango1.0-0:i386 libstdc++6:i386 libxml2:i386 libpopt0:i386

 

各種サービスを再起動します。または、PCを再起動。

$ sudo killall ccpd
$ sudo systemctl restart cups
$ sudo /etc/init.d/ccpd start

 

これで、無事Canon LBP3000がDebian Stretch 64bitで印刷可能となりました。

多分、Debian Buster 64bitでも同じ手法が使える筈です。近いうちに試して見ます。

Canonのプリンターをお持ちの方は、この手法を試して見てください。Debian、Ubuntu以外にも応用が効く筈です。

 

その後追加調査結果、Ubuntu Wikiに32bit不足ライブラリを追加する必要があるとの記述を見つけました。

依存関係で無い為、ライブラリ不足が分からなかったのですね。道理で、GDebiでエラーが出なかった訳。

CanonCaptDrv190

https://help.ubuntu.com/community/CanonCaptDrv190

Known Issues
64-bit Systems
Canon CAPT Printer Driver for 64-bit architecture include the proprietary closed-source 32-bit executable captfilter (called by pstocapt CUPS filter, used to convert PostScript data to CAPT data stream)
which depends on 32-bit libraries libc6 and libpopt0. 

The libraries are not installed as dependencies. You can use the following commands to check whether the captfilter is working:

 

これで、長年に亘る懸案が解決しましたので、安心して64bitへの移行が進められます。

それにしても、Linuxにとって周辺機器用ドライバーは鬼門ですね。WinやMacに比べ、少数派の悲哀を痛感します。

今度プリンターを購入する時は、Linuxで苦労せずにまともに動く、評判の良いものを選びます。

 

動かない理由は陰でサボタージュ