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で苦労せずにまともに動く、評判の良いものを選びます。
動かない理由は陰でサボタージュ