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.