Install Canon MF4350 CUPS printer drivers in 64-bit Ubuntu Linux

Printing in Linux has certainly improved over the years, but there are still plenty of quirks to deal with. I love my Canon MF4350 printer, but 64-bit Ubuntu, including derivatives, such as Linux Mint, and other Debian-based distribution, doesn’t native drivers. Likewise, the various details to get the drivers working are often spread out among various articles on the Internet. In the spirit of trying to consolidate this information in one place, here are the steps that I used to get the MF4350 working on Ubuntu 12.04 LTS (and Linux Mint 13).

  1. Download the latest Linux UFRII drivers from the Canon support site.  As of this writing, the latest version is 2.40 and the US version of the drivers are available here.  (If that link is broken, try the generic MF4350 support page here.)
  2. Extract the drivers from the downloaded file.  From the Terminal, you can extract them using this command:
tar xvf Linux_UFRII_PrinterDriver_V240_us_EN.tar.gz
  1. The drivers only include RPM packages for the 64-bit drivers, so we must install the alien package to convert the RPM package into a Debian .deb package which will install in Ubuntu/Linux Mint/Debian.  In the terminal, run this command:
sudo apt-get install alien
  1. At the terminal, change to the directory with the 64-bit driver RPM packages (e.g., Linux_UFRII_PrinterDriver_V240_us_EN/64-bit_Driver/RPM) and run these commands:
sudo alien --to-deb --scripts cndrvcups-common-2.40-2.x86_64.rpm
sudo alien --to-deb --scripts cndrvcups-ufr2-us-2.40-2.x86_64.rpm
  1. These drivers also require that the i386 (32-bit) standard Linux libraries are installed.  To install them, at the terminal, run this command:
sudo apt-get install libc6-i386 ia32-libs lib32z1
  1. Now we are ready to actually install the Canon MF4350 drivers.  Returning to the terminal in the directory where the .deb package files that we converted from RPMs using the alien utility, run the following two commands:
sudo dpkg -i cndrvcups-common_2.40-2_amd64.deb
sudo dpkg -i cndrvcups-ufr2-us_2.40-2_amd64.deb
  1. Launch the CUPS administrative interface http://localhost:631/admin/ to install and configure your printer.  You will be able to select Canon MF4320-MF4350 ver.2.4 as the appropriate printer type under the Canon printer category.
  2. Finally, after installing your printer, you will need to create a link to the printer filter file, since it actually is installed in the 64-bit library directory (/usr/lib64), but Ubuntu looks for it in the 32-bit library directory (/usr/lib).  Run this command at the terminal:
sudo ln -s /usr/lib64/cups/filter/pstoufr2cpca /usr/lib/cups/filter/pstoufr2cpca

Happy printing! And feel free to leave any questions or comments below.


12 thoughts on “Install Canon MF4350 CUPS printer drivers in 64-bit Ubuntu Linux

  1. Please Please Please help me….I have been looking through for 1 week now and finally i found your blog which is describing the matter in the best manner.

    but i am getting stuck at two steps. What should i do…Wil be very grateful to you !

    This is was the first problem :

    ~$ sudo apt-get install libc6-i386 ia32-libs lib32z1Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:

    The following packages have unmet dependencies:
    ia32-libs : Depends: ia32-libs-multiarch but it is not installable

    Second problem was :

    sudo ln -s /usr/lib64/cups/filter/pstoufr2cpca /usr/lib/cups/filter/pstoufr2cpca
    ln: failed to create symbolic link `/usr/lib/cups/filter/pstoufr2cpca’: File exists

    E: Unable to correct problems, you have held broken packages.

  2. Hello,

    Thank you for posting the comments. I followed your comments till the very last command. All the commands worked out for me. I was able to add the printer driver in my computer. I can’t get the last command to work. I can not print as well. Is there anything I can do?

  3. Hi there. Thank you for your blog. I finally install canon ir1025N, but when I try to print test page I get the message: Idle “filter failed” and nothing happens. I have Ubuntu 12.10 64 bits.
    Thanks in advance,

  4. I applied these instructions for a Canon LBP7018C (step 8. was unnecessary). In the CUPS admin interface I added the printer, just selected Canon LBP7010C/7018C (Canon LBP7010C/7018C) in the Local printers and it went fine (it created two printers, though, the other doesn’t have a location). But every time I try to print, it just finishes/completes without actually printing anything. The user is Unknown in the printer window (using Linux Mint 13 KDE). What might be the problem?

  5. Hey, I think your blog might be having browser compatibility issues.
    When I look at your blog in Firefox, it looks fine but
    when opening in Internet Explorer, it has some overlapping.

    I just wanted to give you a quick heads up! Other then
    that, amazing blog!

  6. i did the same steps as above but i did it on canon IR2318L printer and ubuntu 12.04 LTS but it is showing error “Idle – /usr/lib/cups/filter/pstoufr2cpca failed” Please give me the solution

  7. Thanks for this, it was helpful. Recently installed Linux Mint Debian 2, and couldn’t get it to connect to network printer with Canon MF4680, until I read your tips; now connecting nicely. Btw, Canon has newer drivers, v2.90, which includes also Debian packages.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s