Canon printers on Linux have a complicated reputation โ some models work out of the box through IPP Everywhere or driverless printing, others require Canon’s official Linux drivers (which are distributed as binary-only .deb packages with minimal documentation), and a few remain stubbornly unsupported. On Ubuntu 24.04, the printing stack has improved enough that most Canon inkjets and laser printers from the last decade work with some effort, and we have tested the process across PIXMA, MAXIFY, and imageCLASS models. This guide covers driverless setup, Canon’s official driver packages, CUPS configuration, scanner support via SANE, and troubleshooting the most common failures. Expect sections on identifying your model, choosing the right driver path, and getting both printing and scanning to work reliably.
Step 1: Try Driverless Printing First
Modern printers (manufactured after ~2015) often support IPP Everywhere or AirPrint, which means they work without any manufacturer-specific drivers. Ubuntu 24.04 includes full support for driverless printing through CUPS and the ipp-usb package.
USB Connection
sudo apt install ipp-usb
Connect your Canon printer via USB. Open Settings โ Printers โ the printer may appear automatically. If it does, try printing a test page. If the output looks correct, you are done โ no Canon-specific drivers needed.
Network Connection
For Canon printers connected via Wi-Fi or Ethernet, they should appear in Settings โ Printers as a discovered device. If not, add manually:
- Open a browser and go to
http://localhost:631(CUPS web interface) - Administration โ Add Printer
- Select your printer from the discovered devices list
- Choose “IPP Everywhere” as the driver
- Print a test page
If driverless printing works for your model, this is the preferred approach โ it requires no third-party software and updates come through Ubuntu’s package system.
Step 2: Install Canon’s Official Linux Drivers
If driverless printing does not work (common with older PIXMA models and some imageCLASS laser printers), you need Canon’s official drivers.
Download the Driver Package
Canon distributes Linux drivers on their regional support websites. Search for your exact model number plus “Linux driver” on Canon’s support site. The download is typically a tarball containing .deb packages.
Extract and Install
tar xzf linux-UFRII-drv-v600-uken-*.tar.gz
cd linux-UFRII-drv-v600-uken/
sudo ./install.sh
Or, for the individual .deb packages:
cd 64-bit_Driver/Debian/
sudo dpkg -i cnrdrvcups-ufr2-uk_*_amd64.deb
sudo apt --fix-broken install
The apt --fix-broken install step resolves any missing dependencies.
For PIXMA Inkjet Printers
PIXMA printers use a different driver package (cnijfilter2):
sudo dpkg -i cnijfilter2_*_amd64.deb
sudo apt --fix-broken install
Verify the Driver Is Installed
lpinfo -m | grep canon
You should see your printer model listed. If the list is empty, the driver package did not install correctly โ check dpkg -l | grep cnr to verify the package is installed.
Step 3: Add the Printer in CUPS
After installing drivers:
sudo systemctl restart cups
Then add the printer:
- Go to
http://localhost:631/admin - Click “Add Printer”
- Select your Canon printer (USB or network)
- Choose the Canon-specific PPD file from the driver list (not “IPP Everywhere”)
- Set paper size, default quality, and duplex settings
- Print a test page
Command-Line Alternative
lpinfo -v # List detected printers
lpadmin -p CanonPrinter -v usb://Canon/... -m canonlbp623c.ppd -E
lpoptions -d CanonPrinter # Set as default
Step 4: Scanner Setup with SANE
Canon scanners and multifunction printer scanners require the scangearmp2 or sane-airscan backend.
Try sane-airscan First (Driverless)
sudo apt install sane-airscan
scanimage -L
If your scanner appears in the list, you are done. Test with:
scanimage --format=png > test-scan.png
Install Canon’s ScanGear MP2
If sane-airscan does not detect your scanner:
Download scangearmp2 from Canon’s support site for your model, then:
sudo dpkg -i scangearmp2_*_amd64.deb
sudo apt --fix-broken install
Run the scanner GUI:
scangearmp2
Or use it through the SANE interface:
scanimage -L # Should now show your Canon scanner
scanimage --device 'pixma:...' --format=png --resolution 300 > scan.png
Integration with Document Scanner
Ubuntu’s built-in “Document Scanner” app (simple-scan) uses the SANE backend. Once your scanner is detected by scanimage -L, it should also appear in Document Scanner for a friendlier scanning experience.
Troubleshooting Common Issues
Printer Detected but Prints Blank Pages
This usually means the wrong driver is selected. Open http://localhost:631/printers/, click your printer, Modify Printer, and change the driver/PPD to the Canon-specific one rather than the generic option.
USB Printer Not Detected
Check USB connection:
lsusb | grep Canon
If it appears in lsusb but not in CUPS, the issue is usually permissions. Add your user to the lp group:
sudo usermod -aG lp $USER
Log out and back in.
Network Printer Not Found
Ensure the printer is on the same network subnet. Try adding it manually by IP:
lpadmin -p CanonPrinter -v ipp://192.168.1.100/ipp/print -m everywhere -E
Driver Installation Fails with Dependency Errors
Canon’s .deb packages sometimes depend on older library versions. The fix:
sudo apt --fix-broken install
If that does not resolve it, check which dependency is missing:
dpkg -I cnrdrvcups-*.deb | grep Depends
And install the missing package manually.
Duplex Printing Not Working
Some Canon drivers default to simplex even on duplex-capable printers. Set it manually:
lpoptions -p CanonPrinter -o sides=two-sided-long-edge
Tested Canon Models on Ubuntu 24.04
| Model | Printing | Scanning | Driver Method |
|---|---|---|---|
| PIXMA TS5350 | โ | โ | Driverless (IPP) |
| PIXMA G3270 | โ | โ | cnijfilter2 |
| imageCLASS LBP623Cdw | โ | N/A | UFRII-LT |
| MAXIFY GX7050 | โ | โ | Driverless (IPP) |
| PIXMA MG3650 | โ | โ | cnijfilter2 + scangearmp2 |
Related Reading
- Ubuntu 24.04 Post-Install Checklist โ general setup steps including driver installation
- Fix Nvidia on Ubuntu 24.04 โ another common driver challenge


