How To Install CanoScan LIDE ES-400 Scanner On Ubuntu 18.04.4 LTS

GNU/Linux Ubuntu 18.04 Epson ES-400 Scanner Driver Setup Guide

I am a complete newb after ditching Win 10 for Ubuntu so go easy on me & be clear with your writing points. I joined this site 5 minutes ago specifically to ask this question.

Yes, I've been to the Canon site and downloaded the driver tarballs which I successfully extracted . Now what?

Despite all my best efforts I have no idea how to install the drivers and get the scanner going. I searched all over (including this site), and nobody seems to know a working solution.

Kindly point out in very simple terms how to install and setup the above scanner on the version of Ubuntu given. Imagine I'm totally retarded in your detailed & thorough working "How To" explanation. Much appreciated.

Thanks all,

I very much appreciate all the time and effort spent helping me, a complete stranger.

A lot has changed since I first posted. I did get my device working, although I have no idea how. I worked though all your helpful suggestions and something "clicked".

I moved on to try Mint 20 to give that a whirl. I experienced the same problem there that couldn't be fixed by the methods given. Strange, because I thought Mint is based on Ubuntu?

So, I ditched that in favour of Manjaro KDE where similar issues occurred with my Scanner plus all my Audio is screwed up no matter how I changed the settings according to online help posts. Out of frustration I changed yet again to the Manjaro Gnome variant where everything works fine "out-the-box".

I'm still considering building a system where Debian is alongside Arch and instead of "Distro-Hopping", merely change the settings in Arch or Debian with the tools available to make the unique version tailored to specific need.

Thanks again all. This matter can now be considered closed.

Not long ago, I myself bought a Canon scanner Lide 300. The driver installation for Lide 400 include the same steps. In my first attempt to install the Linux drivers for my Canon scanner, I failed miserably multiple times. But the scanner worked flawlessly with Windows driver. Over the short period of time, trying and failing, I finally found a way to make the scanner work with Linux. This is my quick guide, how to make the scanner work with Linux system(I tested it on Ubuntu 18.04)! Please, just follow the steps. Should one of the steps not work, try to do the troubleshooting suggestions. DO NOT continue with the next step, until the previous one is working.

Step 1 - Scanner recognition

First, all necessary packages have to be installed:

sudo apt update

sudo apt install sane-utils libusb-dev usbutils

In order to recognize the connected devices via USB, you can use the command lsusb. The scanner from Canon can be filtered out by running:

lsusb | grep '04a9'

The identifier 04a9 is specific for Canon devices. If no output line is shown after execution of previous command, the device is not recognized.

Troubleshooting suggestions:

  1. Check the connection between scanner and computer.

  2. Restart the system, but be sure, that the scanner is properly connected to the computer.

  3. The scanner make some noise adjusting the header during the system start. If that is not the case, try to plug in the scanner in a different USB slot.

  4. If you have a Windows system, try to test the USB connection by installing the scanner driver. Canon don't support Linux, but has a good implemented Windows driver.

Step 2 - Scanner identification

Now, you can run the command lsusb in your terminal and should see the output of the lsusb. The yellow framed output line shows the scanner connection. By inserting the bus and device number specific to your system, you can make the request about the permission settings for the particular connection. For example, in my case the bus ID is 001 and device ID is 002. The resulting command line is based on informations about my system is:

getfacl /dev/bus/usb/001/002

Remember to use your own connection specifications for the request!!! The output of the command will show you the group, you have to join as a user. In my case, it is the group lp, so I join the saned group(scanner management group) and lp.

sudo usermod -aG saned,lp $USER

sane-find-scanner will recognize the scanner and show the correct output.

Troubleshooting suggestions:

  1. You can see the groups, you as a user are participating in, if you type in cat /etc/group | grep $USER. The groups saned and lp should be in the list. If not, try to execute the usermod command again.

Step 3 - Software equipment

Although the scanner was found, in my case, the identification of scanner by running scanimage -L failed. This has to do with the sane software.

The suggestion from markling to use the repository(Install Canon LiDE 300 / 400 on Ubuntu 18.04) worked for me. However, the compilation and installation of the latest sane is in my opinion the cleaner solution.

As preparation, you have to install the prerequisites:

sudo apt install build-essential libieee1284-3 gphoto2 autoconf automake libtool gettext git autopoint autoconf-archive pkg-config libjpeg-dev

Now, you can enter the folder of your choice and run:

git clone

cd backends


BACKENDS="canon pixma" ./configure


make install

After the installation, you should be able to identify your scanner. The output of scanimage -L should look like that. If you ran scanimage -V, you will get the information about the sane backend version. In my case, by compiling the newest version, the backend status changed from 1.0.27 to 1.0.29.

Step 4 - Additional Software(optional)

By the way, the scan utility I like the most is SimpleScan:

sudo apt simple-scan

I have the same scanner and got it working without the drivers from the Canon website or compiling any software myself.

Ubuntu and other Linux distributions use SANE as a back-end to communicate with scanners. Ubuntu 18.04 has an older version of SANE that does not support the CanoScan LiDE 400 yet, but you can use a repository created by Rolf Bensch to easily install the latest release which does support that scanner:

sudo add-apt-repository ppa:rolfbensch/sane-release
sudo apt-get update
sudo apt-get upgrade

It should update the existing SANE version. After a quick reboot the Simple Scan program that comes with Ubuntu was able to use the scanner. I installed gscan2pdf to create PDF documents from the scanner.

This might be a simpler solution, and, this is exactly how I got my LiDE 400 to work with XSane in Ubuntu 18.04 (I forget if I'm using 18.04.2 or what sub release):

Rolf Bensch's PPA webpage for SANE

I configured the PPA as per the instructions there, I launched Synaptic and reloaded the package list. I made only these changes:

Commit Log for Thu Apr 23 14:18:55 2020 Upgraded the following packages: 
libsane-common (1.0.27-1~experimental3ubuntu2.2) to

libsane1 (1.0.27-1~experimental3ubuntu2.2) to

python3-update-manager (1: to 1:

sane-utils (1.0.27-1~experimental3ubuntu2.2) to

update-manager (1: to 1:

update-manager-core (1: to 1:

Installed the following packages: libsane (1.0.29+git20200422-bionic1)

First time I connected the LiDE 400 USB cable to the system AFTER the update, XSane launches and I make scans. This all took place just a few hours ago, and is my only effort to get it working - first try!


Note: I located some Canon Germany software for Linux, no other country I searched had it, it is called Scan Gear, and this software might be necessary for the scanner buttons to cause any activity inside the OS. I didn't install Scan Gear, I don't use such functions.

Updated link, as the original link has been deleted:

rgagit's answer worked best for me with slight changes made.

Step 2 : sane-find-scanner

sane-find-scanner always gave me errors on accessing the scanner with something like this

found USB scanner (vendor=0x04a9 [Canon], product=0x1912 [LiDE 400]) at libusb:
could not open USB device 0x2109/0x3431 at 001:002: Access denied (insufficient 

To fix this I wrote a little service that will set the correct permissions on startup. First the files


Description=Job that runs your user script



/usr/bin/set_usb_permission (make sure you apply execute permission to this)

#!/bin/sh -e
chmod -R a+w /dev/bus/usb
exit 0

After that do

$ systemctl reload-daemon
$ systemctl enable set.usb.permissions.service

After that the permissions should work

Step 3 : found it easier

I found it easier to use the precompiled version from I just unzip the contents. Go to the folder and do

$ ./configure
$ make
$ sudo make install

After those steps my Lide 400 finally works as expected

Next Post Previous Post
No Comment
Add Comment
comment url