I'm trying to install a Canon MF4570dw in CUPS on a Raspberry Pi 3, but I can't make it work.
This is what I've tried so far:

1. Install the printer from PPD files

I've extracted the latest Canon driver for my printer linux-UFRII-drv-v520-usen-05.tar.gz
I've extracted \linux-UFRII-drv-v520-usen\Sources\cnrdrvcups-lb-5.20-1.tar.gz and took this 2 PPD files: CNRCUPSMF4500WZS.ppd and CNRCUPSMF4500ZS.ppd In CUPS admin page I see the printer enter image description here
, but on the next screen the printer is not in the list of supported printers so I need to provide a PPD file.
I've tried both of the above files, but when I try to print a test page, nothing is printing.
The printer status seems to be always idle in CUPS.

2. Install the printer drivers

Extracting the same driver from above I got this \linux-UFRII-drv-v520-usen\32-bit_Driver\Debian\cnrdrvcups-ufr2-us_5.20-1_i386.deb Debian 32 bit driver.
I've tried to install it, but it's companying about libcups2 and libcupsys2

sudo apt install ./cnrdrvcups-ufr2-us_5.20-1_i386.deb
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'cnrdrvcups-ufr2-us:i386' instead of './cnrdrvcups-ufr2-us_5.20-1_i386.deb'
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:
 cnrdrvcups-ufr2-us:i386 : Depends: libcups2:i386 but it is not installable or
                                    libcupsys2:i386 (>= 1.2.7) but it is not installable
E: Unable to correct problems, you have held broken packages.

I've tried this answer to enable the i386 packages installation, but I still get has no installation candidate

sudo apt install libcups2:i386 libcupsys2:i386
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libcups2:i386 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'libcups2:i386' has no installation candidate
E: Unable to locate package libcupsys2:i386

Installing the dev version of this packages, libcups2-dev and libcupsys2-dev still dont allow me to install the above driver and I still get the same reason.

3. Installing cups-bjnp-2.0.tar.gz

I've followed this answer and extracted cups-bjnp-2.0.tar.gz, than run the config and make commands, but they don't seem to work under the current Raspbian OS

    $ ./configure –prefix=/usr
    configure: error: invalid variable name: `–prefix'
    $ make
    make: *** No targets specified and no makefile found.  Stop.
    $ sudo make install
    make: *** No rule to make target 'install'.  Stop.


As suggested by @tttapa the correct configure command is ./configure --prefix=/usr
After this I got a make error

bjnp-commands.c: In function ‘bjnp_set_command_header’:
bjnp-commands.c:40:5: error: ‘strncpy’ output truncated before terminating nul copying 4 bytes from a string of the same length [-Werror=stringop-truncation]
     strncpy(cmd->header.BJNP_id, BJNP_STRING, sizeof(cmd->header.BJNP_id));

I've solved this, by editing the bjnp-commands.c file and replacing the strncpy by memcpy at line 40 as described in this solution
Then all went well and I was able to add the printer in CUPS admin page with bjnp://:9100, but I'm still asked to chose the printer from the list, and I can't find any MF4500 or MF4570 printer enter image description here

4. Open Printing database
Searching the open printing database shows this printer is not yet supported.

Can you suggest something else, so I can install my printer in CUPS on the RPI3?

  • 1
    i386 is the 32-bit x86 architecture (Intel), you cannot use these binaries on an ARM system like the RPi (at least not without emulation). The error in the command in your third section is –prefix, it should be two short dashes, not a single hyphen: --prefix (As a side note, manually installing stuff in /usr is usually a bad idea, it's for software installed by the package manager, manually installed software goes in /usr/local or elsewhere.) – tttapa Jan 27 at 21:28
  • Thanks @tttapa - changing –prefix for --prefix worked - I'm not sure how to emulate x86 drivers on ARM, I'm currently reading about this - thanks for the installation path recommandation, this is just for testing, at the end I plan on having a clean docker image made for this – Ionut Jan 27 at 21:44
  • I am trying to do the same, have you had any luck? Mines is MF4580 (MF4500 Series). Like you found, I found a matching PPDs in the Sources/cnrdrvcups-lb-5.30/ppd/ With ubuntu 20 on an Intel laptop, I can install the cnrdrvcups-ufr2-uk_5.30-1_i386.deb and get it to print fine, I'm using a RPI2, latest Raspbian. – user424174 yesterday
  • I'm trying to diagnose by running dpkg-deb -c cnrdrvcups-ufr2-uk_5.30-1_amd64.deb. Adding the PPD to /usr/share/cups/model/ will make it available in the cups printer list – user424174 yesterday

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.