You plug in the scanner, open Document Scanner, and then the device doesn’t appear. Before installing a randomly found driver, you need to locate the break: does Ubuntu see the device, does SANE recognize it, or is the application simply not receiving the list of scanners?
The diagnosis below follows these layers in order. Each command is used to select the next one, whether with a USB scanner or a network model under Ubuntu 22.04 or 24.04.

Separate the hardware problem from the SANE problem
Start with a USB scanner. The command lsusb directly queries the USB bus. It allows checking if the system sees a device at the hardware level. If you need to pinpoint devices and USB ports more precisely, you can also refer to our guide for listing USB ports on Linux.
lsusb
A line corresponding to the manufacturer or model of the scanner indicates that the USB connection is visible to the kernel. If nothing changes when you plug in the device, test another port, remove any USB hub, and check the cable. At this stage, Document Scanner and SANE are not yet to blame.
Next, check detection by the SANE tool:
sane-find-scanner
sane-find-scanner searches for SCSI and USB scanners as well as their device files. Detection here confirms that the device is accessible at the hardware level. However, it does not guarantee the presence of a compatible SANE backend. The Ubuntu documentation for sane-find-scanner specifies that a device can be found even without a usable backend.
The third check queries the SANE layer that will be used by the applications:
scanimage -L
| Result | Interpretation | Follow-up actions |
|---|---|---|
lsusb sees nothing |
The problem is before SANE: cable, port, power supply, or USB device. | Correct the connection then re-run the commands. |
lsusb and sane-find-scanner see the device, but scanimage -L remains empty |
The hardware responds, but SANE likely does not have the appropriate backend, or access to the device is blocked. | Move to backend diagnosis and permissions. |
scanimage -L shows a scanner |
SANE provides a usable device to the applications. | Test the backend with scanimage -T, then open Document Scanner. |
For a network scanner, lsusb brings nothing. The scanner must be powered on, connected to the same local network as the computer, and accessible without isolation between Wi-Fi clients.
Install and verify Ubuntu tools
On a minimal installation, the diagnostic commands or application may be missing. Install the Ubuntu packages intended for this layer:
sudo apt update
sudo apt install sane-utils simple-scan
sane-utils provides notably scanimage and sane-find-scanner. simple-scan installs Document Scanner. Installing these packages does not provide a universal driver for all scanners. It prepares the diagnostic tool, but compatibility subsequently depends on the SANE backend and the model used.
Check the versions of packages offered by the active repositories:
apt policy sane-utils simple-scan
The output shows notably the Installed and Candidate versions. A candidate version without an installed version means the package is available but absent. An empty candidate indicates a problem with repositories or APT configuration. In this case, check the Ubuntu sources before looking for a third-party package.
If sane-utils is installed, re-run scanimage -L. If the device appears, the software foundation is in place. You can then focus on Document Scanner instead of unnecessarily modifying the system.
When sane-find-scanner sees the device but not scanimage
This difference indicates that USB detection is working, but SANE does not yet know how to use the scanner. Start by testing the backend directly:
scanimage -T
scanimage -T performs a test of the SANE backend. If the test succeeds, the SANE layer responds correctly. If scanimage -L remains empty despite this, the list returned by the backend may be incomplete, particularly for network devices. The scanimage man page describes the difference between the list of devices and the backend test.
You can temporarily increase the messages from the SANE library loader:
SANE_DEBUG_DLL=3 scanimage -L
The command then displays additional information about loading the backends. Look for an error of absent library, inaccessible configuration file, or ignored backend. This level of logging is for ad-hoc diagnosis. It does not fix anything and should not remain set permanently in your session.
If the log shows an absent backend, first identify the exact model and its compatibility with SANE. Some manufacturers distribute an official package, but you need to check its source, Ubuntu version, and architecture before any installation. Never add an unknown repository simply because a search result suggests a DEB file.
If the backend is loaded but the device remains absent, move on to permissions. A device visible to lsusb may still be unusable by your user session.
Correct USB permission properly
Observe the USB device files without modifying their rights:
ls -l /dev/bus/usb/*/*
The displayed entries correspond to bus devices. The owner, group, and permission bits allow you to see if your session can access them. A permission error in scanimage or in the SANE log confirms this clue, but the absence of the scanner in the list is not sufficient by itself.
Unplug the scanner, wait a few seconds, then plug it back directly into the computer. Then re-run:
lsusb
sane-find-scanner
scanimage -L
This reconnection forces the recreation of the file in /dev/bus/usb and allows checking the udev rule applied to the device. If access only works after a reconnection or only in a particular session, check your identity and the groups actually associated with the session:
id
groups
A group modification is only taken into account after a new session is opened, but blindly adding the user to a group named scanner is not a reliable method. This group may not exist, may not be used by the device rule, or may not correspond to the backend. Never give global rights with chmod 666 on a USB device.
To go further, compare the udev rules provided by Ubuntu or the manufacturer with the permissions actually present. The principles of managing Linux permissions apply here: correct the targeted rule, then open a new session and test access with your normal user.
Network scanner: SANE, AirScan, and mDNS discovery
A network scanner can work without appearing in lsusb. Ubuntu must discover an eSCL/AirScan or WSD service on the local network. Install the AirScan backend and the Avahi service:
sudo apt update
sudo apt install sane-airscan avahi-daemon
Check that the mDNS discovery service is active:
systemctl is-active avahi-daemon
The expected response is active. A response of inactive, failed, or the absence of the service indicates a step to correct before testing network detection.
Then query the detectable AirScan devices:
airscan-discover
The command may display the found services with their type and address. An empty list does not prove that the scanner is incompatible. It may indicate a guest network, Wi-Fi isolation, a firewall, Avahi inactive, or a scanner placed on another VLAN.
Check the network profile used by Ubuntu and ensure that the computer is not connected to a guest network:
nmcli connection show --active
nmcli device status
Our guide on modifying a network profile with nmcli helps verify the active connection. The scanner and the workstation must be able to communicate on the same LAN. mDNS discovery uses network announcements that do not always traverse VLANs or certain access point configurations.
After this verification, re-run:
scanimage -L
If the network scanner appears, SANE has found the backend and the discovery service. The sane-airscan project supports eSCL/AirScan and WSD network scanners, with automatic discovery or manual configuration. If automatic discovery fails while the scanner’s IP address is known, refer to its documentation for manual backend configuration, without inventing a device name or URL.
Validate in Document Scanner
When scanimage -L lists the scanner, launch the application:
simple-scan
The visible list in Document Scanner should match the device provided by SANE. Start a simple scan and check that the preview loads, the document is readable, and that saving works in the chosen format.
- USB absent in
lsusb: first correct the cable, port, or power supply. - USB visible, but absent from
scanimage -L: check the backend, SANE logs, and permissions. - Network scanner absent from
airscan-discover: check Avahi, ensure the same LAN, and Wi-Fi isolation. - Scanner listed, but application in error: test
scanimage -T, then relaunch Document Scanner in your user session.
The validation is complete when scanimage -L lists the scanner and simple-scan performs a complete scan without administrative privileges. Then, perform a final scan with the document actually used, and check the saved file.