I’ve gotten my hands on a Canon i-Sensys MF8280Cw multifunction colour laser printer, in part because I noticed that Canon has published CUPS drivers for Debian (that is Ubuntu), so it should work.
It also does work, but I had to jump a few hoops.
The driver is available from here (Italian site).
Running Debian testing on amd64, I downloaded the 64bit driver. Unpacking the file gives you two DEB files to install: ‘cndrvcups-common’ and ‘cndrvcups-ufr2-uk’ which installed without a hitch.
Opening the CUPS admin interface, the printers were installed in a second. I used the wifi link, and the printer was autodetected.
Printing a test page from within CUPS went fine. At least CUPS thought it went fine, as there were no error messages or anything. Document printed.
The printer didn’t agree, though. It just emitted a long beeeeep and printed nothing. There’s a work log in the printer, and it stated that each and every print job from CUPS gave an error #822. Printing over wifi from Android or iOS worked fine.
So printer works, wifi link works, and apparently the CUPS driver works, only nothing is printed.
So Google to the rescue, but also not. There was preciously little to find. In the end I ended up with some hints that there might be some 32bit (i386) parts of the driver, that wouldn’t work without the i386 libraries installed.
I ran a command like this on both installed packages:
dpkg -L cndrvcups-ufr2-uk | while read f; do ldd "$f" 2>/dev/null | grep -v 0x | grep -v "not a dynamic executable"; done
but it gave no errors.
I installed the i386 packages
libc6:i386 libc6-i686:i386 libstdc++6:i386
And the still no prints.
I ran the command checking for unresolved linker dependencies again, and lo and behold, it said libxml2 was missing. I installed that from the i386 architecture, restarted CUPS, turned the printer off and on again, and it printed.
So it does work, but not easily.
To summarise I have done this:
dpkg --add-architecture i386 aptitude update aptitude install libc6:i386 libc6-i686:i386 libstdc++6:i386 libxml2:i386 /etc/init.d/cups stop; /etc/init.d/cups start