Installing MF4100 series printers on Ubuntu
This particular printer has always been a bugger to get playing with 64bit Ubuntu variants. Finally with 15.10 I managed to get it working so am documenting for future reference.
Official driver: https://www.usa.canon.com/internet/portal/us/home/support/details/printers/support-laser-printers-imageclass/imageclass-mf4150.
Arch Linux
This was a bit more of a challenge. I tried the AUR but it failed to build. In the end I used debtab which is a bit of a hack but it worked...
$ cd /tmp
# unpack driver
$ tar zxvf Linux_UFRII_PrinterDriver_V320_us_EN.tar.gz
$ cd Linux_UFRII_PrinterDriver_V320_us_EN/64-bit_Driver/Debian/
# get debtab
$ curl https://raw.githubusercontent.com/helixarch/debtap/master/debtap > debtap
$ chmod 755 debtab
$ sudo ./debtab -u
# rebuild common
$ ./debtab cndrvcups-common_3.60-1_amd64.deb
$ sudo pacman -U cndrvcups-common-3.60-1-x86_64.pkg.tar.xz
# rebuild ufr2
$ ./debtap cndrvcups-ufr2-us_3.20-1_amd64.deb
$ sudo pacman -U cndrvcups-ufr2-us-3.20-1-x86_64.pkg.tar.xz
For both the debtab stages there were dependencies it didn't recognise - I just edited the .PACKINFO to remove those lines. I also had to enable the multiarch repository and install the lib32-libxml2 package.
16.10 (Ubuntu Gnome 64bit)
$ cd /tmp
# unpack driver
$ tar zxvf Linux_UFRII_PrinterDriver_V320_us_EN.tar.gz
$ cd Linux_UFRII_PrinterDriver_V320_us_EN/64-bit_Driver/Debian/
# install dependancies
$ sudo apt-get install libpango1.0-0
# requires an older version of libpng
$ wget http://au.archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1_amd64.deb
$ sudo dpkg -i libpng12-0_1.2.54-1ubuntu1_amd64.deb
# still need to install some i386 packages
$ sudo apt-get install libxml2:i386
# install the packages
$ sudo dpkg -i cndrvcups-common_3.60-1_amd64.deb cndrvcups-ufr2-us_3.20-1_amd64.deb
# restart cups
$ sudo service cups restart
15.10 (Kubuntu 64bit)
$ cd /tmp
# Unpack driver
$ tar zxvf ~/Downloads/Linux_UFRII_PrinterDriver_V310_uk_EN.tar.gz
# for x64 we need a minimal set of i386 packages (about 15MB)
$ sudo apt-get install libxml2:i386
# install the drivers
$ cd Linux_UFRII_PrinterDriver_V310_uk_EN/64-bit_Driver/Debian
$ sudo dpkg -i cndrvcups-common_3.10-1_amd64.deb cndrvcups-ufr2-uk_3.10-1_amd64.deb
# restart cups
$ sudo service cups restart
After that the standard printer dialog was able to find the printer, install the required driver and print a test page - hooray!
Warning: Your mileage may vary!
Notes
- Some sites say you need to select the cnusb connection - the last two times for me it has auto detected the printer once the driver is correct.