I downloaded Canon UFRII/UFRII LT Printer Driver for Linux v3.00 from Canon Europe’s website.
After unzipping the zip file I installed the Debian packages:
# sudo dpkg -i cndrvcups-common_3.10-1_amd64.deb cndrvcups-ufr2-uk_3.00-1_amd64.deb
But after adding my printer I got the following message every time I tried to print:
Idle - src = libcanon_pdlwrapper.c, line = 514, err = 0¥nDEBUG: PID 5537 (gs) exited with no errors.
I wondered what might be missing. So I ran:
linux-gate.so.1 => (0xf775b000)
libEnoJBIG.so.1.0.0 => /usr/lib/libEnoJBIG.so.1.0.0 (0xf76ef000)
libcanon_slim.so.1.0.0 => /usr/lib/libcanon_slim.so.1.0.0 (0xf76e8000)
libxml2.so.2 => not found
libEnoJPEG.so.1.0.0 => /usr/lib/libEnoJPEG.so.1.0.0 (0xf76b9000)
libcaepcm.so.1 => /usr/lib/libcaepcm.so.1 (0xf7642000)
libc.so.6 => /lib32/libc.so.6 (0xf7496000)
libm.so.6 => /lib32/libm.so.6 (0xf7450000)
libdl.so.2 => /lib32/libdl.so.2 (0xf744b000)
libpthread.so.0 => /lib32/libpthread.so.0 (0xf742f000)
librt.so.1 => /lib32/librt.so.1 (0xf7426000)
I already had libxml2.so.2 installed on the system at /usr/lib/x86_64-linux-gnu/libxml2.so.2 so why wasn’t it being found?
# file libcanonufr2.so.1.0.0
libcanonufr2.so.1.0.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
Ah, even though I installed the 64-bit printer driver the libraries it installed were 32-bit. Now to install a 32-bit libxml2:
# sudo dpkg --add-architecture i386
# apt-get install libxml2:i386
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
gcc-4.9-base:i386 libc6:i386 libgcc1:i386 liblzma5:i386 zlib1g:i386
The following NEW packages will be installed:
gcc-4.9-base:i386 libc6:i386 libgcc1:i386 liblzma5:i386 libxml2:i386
0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
Need to get 4,753 kB of archives.
After this operation, 12.1 MB of additional disk space will be used.
# service cups restart
The next problem was that my Printer State would say:
Processing - Connected to printer.
… but never print. So I navigated to http://localhost:631/jobs/ and found the following message:
processing since Sun 20 Sep 2015 05:21:40 PM BST "src = bidiCommon.c, line = 1088, err = 0¥nDEBUG: Connecting to x.x.x.x:9100
According to this post the bjnp back end was needed.
# sudo apt-get install cups-backend-bjnp
But then I had a program spinning at 100% when I tried to make a test page print, cnpkmoduleufr2.
So I installed libstdc++6:i386 as recommended at this page.
# sudo apt-get install libstdc\+\+6:i386
# sudo service cups restart
And now I can finally print. Let me just say – spending 2 hours of my weekend trying to print to my expensive colour laser printer has been a most unsatisfying waste of time. Canon pretend to make 64-bit drivers available but, in truth, are old 32-bit relics from an age long since past. This was painful.