Problem with the Canon MF3010

Hello Garuda users.

  Kernel: 5.19.2-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 12.1.1
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
    root=UUID=3be6bfab-7793-443d-8925-14f402362e3c rw [email protected]
    quiet quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
    resume=UUID=1358094e-bd25-4baf-9290-02892a3efe12 loglevel=3 ibt=off
  Desktop: KDE Plasma v: 5.25.4 tk: Qt v: 5.15.5 info: latte-dock
    wm: kwin_x11 vt: 1 dm: SDDM Distro: Garuda Linux base: Arch Linux
  Type: Desktop System: Gigabyte product: H110M-S2H v: N/A
    serial: <superuser required>
  Mobo: Gigabyte model: H110M-S2H-CF v: x.x serial: <superuser required>
    UEFI: American Megatrends v: F22 date: 06/12/2017
  Info: model: Intel Pentium G4600 bits: 64 type: MT MCP arch: Kaby Lake
    built: 2018 process: Intel 14nm family: 6 model-id: 0x9E (158) stepping: 9
    microcode: 0xF0
  Topology: cpus: 1x cores: 2 tpc: 2 threads: 4 smt: enabled cache:
    L1: 128 KiB desc: d-2x32 KiB; i-2x32 KiB L2: 512 KiB desc: 2x256 KiB
    L3: 3 MiB desc: 1x3 MiB
  Speed (MHz): avg: 2900 high: 3600 min/max: 800/3600 scaling:
    driver: intel_pstate governor: powersave cores: 1: 3600 2: 3600 3: 3600
    4: 800 bogomips: 28800
  Flags: ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Type: itlb_multihit status: KVM: VMX disabled
  Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable
  Type: meltdown mitigation: PTI
  Type: mmio_stale_data mitigation: Clear CPU buffers; SMT vulnerable
  Type: retbleed mitigation: IBRS
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
  Type: spectre_v2 mitigation: IBRS, IBPB: conditional, RSB filling,
    PBRSB-eIBRS: Not affected
  Type: srbds mitigation: Microcode
  Type: tsx_async_abort status: Not affected
  Device-1: NVIDIA TU117 [GeForce GTX 1650] driver: nvidia v: 515.65.01
    alternate: nouveau,nvidia_drm non-free: 515.xx+ status: current (as of
    2022-07) arch: Turing code: TUxxx process: TSMC 12nm built: 2018-22 pcie:
    gen: 1 speed: 2.5 GT/s lanes: 16 link-max: gen: 3 speed: 8 GT/s
    bus-ID: 01:00.0 chip-ID: 10de:1f82 class-ID: 0300
  Device-2: Realtek FULL HD 1080P Webcam type: USB
    driver: snd-usb-audio,uvcvideo bus-ID: 1-7:4 chip-ID: 0bda:58b0
    class-ID: 0102 serial: <filter>
  Display: x11 server: X.Org v: 21.1.4 with: Xwayland v: 22.1.3
    compositor: kwin_x11 driver: X: loaded: nvidia unloaded: modesetting
    alternate: fbdev,nouveau,nv,vesa gpu: nvidia display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1280x1024 s-dpi: 85 s-size: 382x302mm (15.04x11.89")
    s-diag: 487mm (19.17")
  Monitor-1: DVI-D-0 res: 1280x1024 hz: 60 dpi: 86
    size: 376x301mm (14.8x11.85") diag: 482mm (18.96") modes: N/A
  OpenGL: renderer: NVIDIA GeForce GTX 1650/PCIe/SSE2 v: 4.6.0 NVIDIA
    515.65.01 direct render: Yes
  Device-1: Intel 100 Series/C230 Series Family HD Audio vendor: Gigabyte
    driver: snd_hda_intel bus-ID: 1-7:4 v: kernel chip-ID: 0bda:58b0
    bus-ID: 00:1f.3 chip-ID: 8086:a170 class-ID: 0102 class-ID: 0403
    serial: <filter>
  Device-2: NVIDIA driver: snd_hda_intel v: kernel pcie: gen: 3
    speed: 8 GT/s lanes: 16 bus-ID: 01:00.1 chip-ID: 10de:10fa class-ID: 0403
  Device-3: Realtek FULL HD 1080P Webcam type: USB
    driver: snd-usb-audio,uvcvideo
  Sound Server-1: ALSA v: k5.19.2-zen1-1-zen running: yes
  Sound Server-2: PulseAudio v: 16.1 running: no
  Sound Server-3: PipeWire v: 0.3.56 running: yes
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    vendor: Gigabyte driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s
    lanes: 1 port: d000 bus-ID: 02:00.0 chip-ID: 10ec:8168 class-ID: 0200
  IF: enp2s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
  Local Storage: total: 674.16 GiB used: 229.04 GiB (34.0%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/sda maj-min: 8:0 vendor: Kingston model: SA400S37120G
    size: 111.79 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    type: SSD serial: <filter> rev: 60A9 scheme: MBR
  ID-2: /dev/sdb maj-min: 8:16 vendor: Kingston model: SA400S37480G
    size: 447.13 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    type: SSD serial: <filter> rev: 1103 scheme: GPT
  ID-3: /dev/sdc maj-min: 8:32 type: USB vendor: Kingston
    model: DataTraveler 3.0 size: 115.23 GiB block-size: physical: 512 B
    logical: 512 B type: N/A serial: <filter> scheme: MBR
  SMART Message: Unknown USB bridge. Flash drive/Unsupported enclosure?
  ID-1: / raw-size: 438.03 GiB size: 438.03 GiB (100.00%) used: 213.18 GiB
    (48.7%) fs: btrfs dev: /dev/sdb2 maj-min: 8:18
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%) used: 588 KiB
    (0.2%) fs: vfat dev: /dev/sdb1 maj-min: 8:17
  ID-3: /home raw-size: 438.03 GiB size: 438.03 GiB (100.00%) used: 213.18
    GiB (48.7%) fs: btrfs dev: /dev/sdb2 maj-min: 8:18
  ID-4: /var/log raw-size: 438.03 GiB size: 438.03 GiB (100.00%) used: 213.18
    GiB (48.7%) fs: btrfs dev: /dev/sdb2 maj-min: 8:18
  ID-5: /var/tmp raw-size: 438.03 GiB size: 438.03 GiB (100.00%) used: 213.18
    GiB (48.7%) fs: btrfs dev: /dev/sdb2 maj-min: 8:18
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
  ID-1: swap-1 type: zram size: 7.72 GiB used: 73.8 MiB (0.9%)
    priority: 100 dev: /dev/zram0
  ID-2: swap-2 type: partition size: 8.8 GiB used: 0 KiB (0.0%)
    priority: -2 dev: /dev/sdb3 maj-min: 8:19
  System Temperatures: cpu: 35.0 C mobo: N/A gpu: nvidia temp: 35 C
  Fan Speeds (RPM): N/A gpu: nvidia fan: 30%
  Processes: 267 Uptime: 1h 33m wakeups: 0 Memory: 7.72 GiB used: 4.73 GiB
  (61.3%) Init: systemd v: 251 default: graphical tool: systemctl
  Compilers: gcc: 12.1.1 clang: 14.0.6 Packages: note: see --pkg pacman: 2092
  lib: 556 Shell: Bash v: 5.1.16 running-in: konsole inxi: 3.3.20
Garuda (2.6.6-1):
  System install date:     2022-05-15
  Last full system update: 2022-08-23
  Is partially upgraded:   No
  Relevant software:       NetworkManager
  Windows dual boot:       Probably (Run as root to verify)
  Snapshots:               Snapper
  Failed units:            bluetooth-autoconnect.service 

I've been trying to connect the printer for a couple of weeks now. I need it for my studies and until it works I won't be able to work properly. Therefore, it is advisable to resolve the issue quickly, if possible. I installed the drivers from this site
But the system gives such an error:
"/usr/lib/cups/filter/rastertoufr2" : No such file or directory.

Please help to solve this problem.Preformatted text

What is the printer model? Your post title just says "Canon printer" and the post itself provides no further detail.


A forum search by simply mf3010 seems to lead to a good result

Edit: I see only now you already tried there probably


Yes, it is. It's just that I'm doing everything right, it's just that this error knocks everything down. No one wrote about it.
PS Yes, before opening the topic, I did everything as it was written there, I even took the website with drivers from there.

Try to install the driver from the AUR, maybe you will have better luck with that.

paru cndrvcups-lb

You are right.
If you search the Internet for that missing file you will find that it is a problem discovered and fixed in other distributions, e.g., gentoo and nixos.
The following is very unorthodox, but if you like you can try it.
The gentoo bug report suggests as a workaround to use the binary from the Debian package, but reading the comments they suggest an AUR package that should include that file.
The more correct option would perhaps be to open a bug for the cups package.

Edit: exactly the package suggested above :blush:


I did as you said, and then I got this conclusion. I also tried to run the installation via Octopi, but there the terminal stopped at this output and that's it. The terminal did not say that the installation was completed.

:: Разрешение зависимостей...
:: Есть 2 доступных источников-поставщиков пакета cnrdrvcups-lb:
:: Репозиторий AUR:
    1) cnrdrvcups-lb  2) cnrdrvcups-lb-bin  
Введите номер (по умолчанию = 1): 1
:: Поиск конфликтов...
:: Поиск внутренних конфликтов...

Репозиторий Make (1) jbigkit-2.1-6
Aur (1) cnrdrvcups-lb-5.50-2

:: Продолжить обзор? [Y/n]: Y

:: Скачиваются PKGBUILD’ы...
 (1/1) скачивается: cnrdrvcups-lb-5.50-2
# Maintainer:  Chris Severance aur.severach aATt spamgourmet dott c>
# Maintainer:  Lone_Wolf <[email protected]>
# Contributor: Steven She <[email protected]>
# Contributor: vbPadre <[email protected]>


# The download link changes with every version, try to keep changes>
_pkgver='5.50';  _dl='8/0100007658/27';_suffix='00'

pkgdesc='CUPS Canon UFR II LIPSLX CARPS2 printer driver for LBP iR >
# Direct links to the download reference go bad on the next version>
license=('GPL2' 'MIT' 'custom')
# parts of the code are GPL or MIT licensed, some parts have a cust>
makedepends=('jbigkit' 'gzip' 'gtk3')
depends=('gcc-libs' 'libxml2')
optdepends=('libjpeg6-turbo: solves cpu hang on some color imageRUN>
                       'libjbig-shared: port of debian/fedora speci>
                        'gtk3: for cnsetuputil2')

conflicts=('cndrvcups-lb' 'cndrvcups-common-lb')
options=('!emptydirs' '!strip' '!libtool')

source=(  "${_dl}/linux-UFRII-drv-v${_p>

# Canon provides the sourcecode in a tarball within the dowload and>
# In order to keep the $srcdir structure tidy we put the extracted >
# the code itself is spread over many folders. 
# "cnrdrvcups-common-${_pkgver}" aka _common_dir & "cnrdrvcups-lb-$>
# are used to keep this manageable


prepare() {

    # extract sources
    mkdir "${_srcdir}"
    cd "${_srcdir}"
    bsdtar -xf "${srcdir}/linux-UFRII-drv-v${_pkgver//\./}-m17n/Sou>

    local _specs=(cnrdrvcups-lb.spec)

    # cngplp/ fails to find several libraries.
    # adding these in the right place of the soon to be generated m>
    # so we patch it directly into that
    #    sed -e '2a export LIBS="-lgtk-x11-2.0 -lgobject-2.0 -lglib>
    # the switch to gtk3 appears to have solved this

    # the files from canon target an old automake/autoco>
    # autoreconf converts them to a form compatible with archlinux >
    pushd "${_common_dir}"
    for i in "backend" "buftool" "cngplp" "cnjbig" "rasterfilter"
        pushd "$i"
        autoreconf --install --warnings=none
    pushd "${_driver_dir}"
    for i in "cngplp/files" "cngplp" "cpca" "pdftocpca"
        pushd "$i"
        autoreconf --install --warnings=none

    # where available is not useful for packaging on arch>
    # Canon provides methods to build deb & rpm packages.
    # The debian rules are not suited for archlinux. When the .spec>
    # Chris Severach figured out a way to automate  this conversion.

    # Generate make from spec %setup, %build
    sed -n -e '/^%setup/,/^%install/ p' "${_specs[@]}" | \
    grep -v '^%' | \
    sed -e '# Convert spec %{VAR} to shell ${VAR}' \
        -e 's:%{:${:g' \
        -e '# Quote to allow _cflags to have spaces' \
        -e 's:${_cflags}:"${_cflags}":g' \
        -e '# Some commands in the spec file do not set >
        -e 's:^./ --prefix=${_prefix}:g ' \
        > 'make.Arch'

    # Generate make install from spec %install
    sed -n -e '/^%install/,/^%clean/ p' "${_specs[@]}" | \
    grep -v '^%' | \
    sed -e '# Convert spec %{VAR} to shell ${VAR}' \
        -e 's:%{:${:g' \
        -e '# Quote to handle path with spaces' \
        -e 's:${RPM_BUILD_ROOT}:"&":g' \
        -e '# ln -f hides problems so should be avoided' \
        -e 's:ln -sf :ln -s :g' \
        > 'make.install.Arch'


_setvars() {
    # variables used by the (generated) make.Arch &  make.install.A>
    # relative paths start at ${srcdir}/${_srcdir} 
    # _libsarch is architecture dependent


build() {
  cd "${_srcdir}"
  local _vars; _setvars
  # Bash does not recognize var assigments hidden by array expansio>
  env "${_vars[@]}" \
  sh 'make.Arch'


package() {
    cd "${_srcdir}"

    local _vars; _setvars
    env "${_vars[@]}" \
    RPM_BUILD_ROOT="${pkgdir}" \
    sh 'make.install.Arch'

    # licensing information is spread over multiple files and folde>
    # while they could be done in a loop iterating through dirs/fil>
    # I feel that would obscure what happens and make troubleshooti>
    # so each file gets its own install command
    pushd "${_common_dir}"
    install -Dpm644 "README" "${pkgdir}/usr/share/licenses/${pkgnam>
    install -Dpm644 "backend/LICENSE.txt" "${pkgdir}/usr/share/lice>
    install -Dpm644 "backend/" "${pkgdir}/usr/shar>
    install -Dpm644 "backend/README" "${pkgdir}/usr/share/licenses/>
    install -Dpm644 "buftool/LICENSE.txt" "${pkgdir}/usr/share/lice>
    install -Dpm644 "buftool/README" "${pkgdir}/usr/share/licenses/>

    install -Dpm644 "cngplp/" "${pkgdir}/usr/share>
    install -Dpm644 "cngplp/README" "${pkgdir}/usr/share/licenses/$>
    install -Dpm644 "cnjbig/README" "${pkgdir}/usr/share/licenses/$>
    install -Dpm644 "rasterfilter/README" "${pkgdir}/usr/share/lice>

    pushd "${_driver_dir}"
    install -Dpm644 "README" "${pkgdir}/usr/share/licenses/${pkgnam>
    install -Dpm644 "cngplp/README" "${pkgdir}/usr/share/licenses/$>
    install -Dpm644 "cngplp/files/README" "${pkgdir}/usr/share/lice>
    install -Dpm644 "cpca/README" "${pkgdir}/usr/share/licenses/${p>
    install -Dpm644 "cpca/cnpklib/" "${pkgdir}/usr>
    install -Dpm644 "pdftocpca/README" "${pkgdir}/usr/share/license>
    # documentation
    pushd "$srcdir/linux-UFRII-drv-v${_pkgver//\./}-m17n/Documents"
    install -Dpm644 deutsch/"README-ufr2-5.5xDE.html" "${pkgdir}/us>
    install -Dpm644 espanol/"README-ufr2-5.5xSP.html" "${pkgdir}/us>
    install -Dpm644 francais/"README-ufr2-5.5xFR.html" "${pkgdir}/u>
    install -Dpm644 italiano/"README-ufr2-5.5xIT.html" "${pkgdir}/u>
    install -Dpm644 korean/"README-ufr2-5.5xKR.html" "${pkgdir}/usr>
    install -Dpm644 simplified_chinese/"README-ufr2-5.5xSC.html" "$>
    install -Dpm644 traditional_chinese/"README-ufr2-5.5xTC.html" ">
    install -Dpm644 uk_eng/"README-ufr2-5.5xUK.html" "${pkgdir}/usr>
    install -Dpm644 deutsch/"UsersGuide-ufr2-DE.html" "${pkgdir}/us>
    install -Dpm644 espanol/"UsersGuide-ufr2-SP.html" "${pkgdir}/us>
    install -Dpm644 francais/"UsersGuide-ufr2-FR.html" "${pkgdir}/u>
    install -Dpm644 italiano/"UsersGuide-ufr2-IT.html" "${pkgdir}/u>
    install -Dpm644 korean/"UsersGuide-ufr2-KR.html" "${pkgdir}/usr>
    install -Dpm644 simplified_chinese/"UsersGuide-ufr2-SC.html" "$>
    install -Dpm644 traditional_chinese/"UsersGuide-ufr2-TC.html" ">
    install -Dpm644 uk_eng/"UsersGuide-ufr2-UK.html" "${pkgdir}/usr>
    install -Dpm644 deutsch/"LICENSE-DE.txt" "${pkgdir}/usr/share/l>
    install -Dpm644 espanol/"LICENSE-ES.txt" "${pkgdir}/usr/share/l>
    install -Dpm644 francais/"LICENSE-FR.txt" "${pkgdir}/usr/share/>
    install -Dpm644 italiano/"LICENSE-IT.txt" "${pkgdir}/usr/share/>
    install -Dpm644 korean/"LICENSE-KO.txt" "${pkgdir}/usr/share/li>
    install -Dpm644 simplified_chinese/"LICENSE-CN.txt" "${pkgdir}/>
    install -Dpm644 traditional_chinese/"LICENSE-TW.txt" "${pkgdir}>
    install -Dpm644 uk_eng/"LICENSE-EN.txt" "${pkgdir}/usr/share/li>


Paru gives you an opportunity to review the code before you proceed with installation. Once you are finished reviewing it, press


and it will ask you if you want to continue.


Hello, your solution helped, but I got another error (it looks like the printer itself is actively resisting normal operation))). This is the "Filter failed" error, and I see it only in the localhost 631 interface. And in the computer, the program endlessly sends data to the printer. I've been trying to fix it for 40 minutes. I tried reinstalling ghostscript via Octopi, but it didn't help.

Your compy's BIOS is dated 2017. Is there a more current one available? The BIOS (Basic Input/Output System) can have a direct bearing on hardware recognition. That may or may not be a part of the problem(s).


Source: BIOS - Wikipedia

1 Like

No, unfortunately, this is my only BIOS.

Are you setting up the printer in the Print Settings app before you try to use it? It looks like this:


Yes exactly.

Okay, and it is detecting the printer just fine and allowing you to add it?

Are you able to print a test page to the printer?

Does the printer show up as an option if you attempt to print a document or something?

Can you provide more detail about where exactly you are encountering the error you mentioned?


1)Yes, you can add a printer
2) No, you can't, because of the endless "processing and sending data to the printer"
3) Yes
4)Screenshots are attached

Hmm, the screenshots you chose don't appear to show anything helpful. Certainly the problem you are experiencing is not illustrated.

Try power cycling the printer and rebooting your computer as well. Test again, then make note of any error messages. A screenshot of the error you are seeing might be helpful. Even better, copy and paste to the thread as text if possible.

I restarted the computer and the printer. Then I tried to print a test page (4 times). There is an error on one of the screenshots (where the status message is):Filter file. On another screen, there is just an inscription "Processing - Sending data to the printer." (Written in Russian).

Is the printer connected by USB? If so, it looks like there is another additional package that may need to be installed:

USB over IP (BJNP)

Some Canon printers use Canon's proprietary USB over IP BJNP protocol to communicate over the network. There is a CUPS backend for this, which is available as cups-bjnpAUR.

Source: CUPS/Printer-specific problems - ArchWiki

To install:

paru cups-bjnp

I did everything as you wrote. The result is the same.

The printer seems to be processing the task, judging by the display.