Canon Pixma TS5151 driver not found

My setup is:
Manjaro version 5.15.85-1
GNOME version 43.2
Windowing system: Wayland

I bought a Canon Pixma TS5151 inkjet printer in 2021 for a Windows laptop but it’s not needed there any more so I thought I’d try it with Manjaro. Unfortunately, I cannot find drivers. The closest I got was the 2017 packages on the Canon website but I can’t figure out how to install them. I tried ./install.sh with the Deb and RPM downloads but both replied:

==================================================

Canon Inkjet Printer Driver
Version 5.50
Copyright CANON INC. 2001-2017

==================================================
An error occurred. The package management system cannot be identified.

I did a search on AUR without success. Is there a way to get the 2017 drivers installed or is this not advisable?

— EDIT —

Is there a way to use the printer with a different driver - even “generic” if there’s such a thing?

The Debian package is called cnijfilter2. There are several versions of that in the AUR, however none are the 5.50 version from 2017. You could potentially adapt one of those PKGBUILDs to use the version you need.

Thanks @Yochanan, I’m willing to try that but have no idea where to start. Is there some documentation I can read? I’m prepared to learn the details by reading manuals. I’m a software developer.

enable AUR (external repositories it’s called in pamac, I believe)
install the package group “base-devel” - all of the programs in there
then install the package
this one:

AUR (en) - cnijfilter2

or this one:

AUR (en) - cnijfilter2-bin

… try one and then the other …

See the following Arch Wiki articles:

The cnijfilter2-bin PKGBUILD will give you an idea. All that usually needs to be done is unpack the data.tar.gz inside the .deb (which will automatically be extracted) and install / copy the files to the proper locations:

EDIT: Looks there’s a little more to it based on the Debian postint file.

Here’s a functional PKGBUILD, try it out:

PKGBUILD
pkgname=cnijfilter2-2017-bin
pkgver=5.50
pkgrel=1
pkgdesc="IJ Printer Driver for Linux (PIXMA E204 E304 E3140 TR7540 TR7550 TR8540 TR8550 TS204 TS205 TS304 TS305 TS3140 TS3150 TS3151 TS5140 TS5150 TS5151 TS6140 TS6150 TS6151 TS8140 TS8150 TS8151 TS8152 TS9140 TS9150 TS9155"
arch=('x86_64')
url="https://www.canon.com"
license=('GPL2')
depends=('cups' 'libusb' 'libxml2')
options=('!emptydirs' '!strip')
source=("https://gdlp01.c-wss.com/gds/8/0100009108/01/cnijfilter2-${pkgver}-1-deb.tar.gz")
sha256sums=('d90c16e3050e9676db51d3db4b1157416d2cc950b2f2e8b9f0d4c178a94cbbd0')

package() {
  cd cnijfilter2-${pkgver}-1-deb
  ar x packages/cnijfilter2_${pkgver}-1_amd64.deb
  tar xzvf data.tar.gz -C "$pkgdir/"

  # make symbolic link for ppd
  ppd_files="canong3000.ppd canone200.ppd canonmg7700.ppd canonib4100.ppd canonts200.ppd canonmb2700.ppd canone480.ppd canonmb5400.ppd canonxk50.ppd canonts9180.ppd canonmb5000.ppd    canonmg6600.ppd canonmb2300.ppd canone3100.ppd canonts6130.ppd canontr8580.ppd canonmb5300.ppd canontr7530.ppd canonmg5700.ppd canonmb5100.ppd canone470.ppd canonts6000.ppd canontr7500.ppd canonib4000.ppd canonmb2000.ppd canonts8000.ppd canonts8100.ppd canonts3100.ppd canonmg6800.ppd canontr8530.ppd canonip110.ppd canonmg2900.ppd canonts5100.ppd canonts9100.ppd canonts6180.ppd canonmg3600.ppd canonts5000.ppd canonts6100.ppd canone300.ppd canonmb2100.ppd canonxk70.ppd canonmg7500.ppd canone460.ppd canontr8500.ppd canonmg5600.ppd canonmg6900.ppd canong4000.ppd canonmx490.ppd canonts9000.ppd canonts300.ppd canonmg3000.ppd canonts8130.ppd canonts8180.ppd"

  install -d "$pkgdir/usr/share/cups/model"
  for f in ${ppd_files}; do
    ln -fs /usr/share/ppd/${f} "$pkgdir/usr/share/cups/model/${f}"
  done
}
1 Like

As I mentioned, those are not the proper packages. Those are for different printers.

they seemed similar enough
but adapting the PKGBUILD for the actual package is likely the right way to go.

just unpacking the thing and placing the contents in the correct location would also likely work
but that is bypassing the package manager and also beyond what the OP is capable of doing :man_shrugging:

Indeed. I just took a peek inside the driver package and edited my post above.

Thanks @Yochanan, this worked a treat! I did the following:

  1. Saved the file as PKGBUILD in a new directory
  2. In a terminal, changed to that directory then ran:
makepkg
makepkg --install
  1. Used the Settings up to set up the printer, which appeared in the list of printers as shown - not the specific TS5151, but the series TS5100.

The only bit I’m not sure about is why there are duplicates, but it works anyway.

Next time, make sure to install the dependencies with --syncdeps as well. :wink:

I use:

makepkg -srcif

aka

makepkg --syndeps --rmdeps --clean --install --force
1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.