From ArchWiki
Revision as of 07:26, 8 November 2010 by Hollunder (talk | contribs) (DBus problem)
Jump to: navigation, search


Sane provides a library and a command-line tool to use scanners under GNU/Linux.

Step 1: Check if sane supports your scanner

Check if sane supports your scanner

Step 2: Installation

Template:Codeline is available in the Template:Codeline repository so:

# pacman -S sane

Step 3: Configuration

Users that need to use a scanner should be part of the group Template:Codeline. Use Template:Codeline to add a user to a group:

# gpasswd -a username scanner
Note: You need to logout/login for this to take effect.

Now you can try to see if sane recognizes your scanner

$ scanimage -L

If that fails, check that your scanner is plugged into the computer. You also might have to unplug/plug your scanner for Template:Filename to recognize your scanner.

for HP hardware

For HP hardware you may also need to install the Template:Codeline package which is in the Template:Codeline repository:

# pacman -S hplip

Step 4: Firmware

Note: This section is only needed if you need to upload firmware to your scanner.

Get the firmware

Note: If you don't have an install CD, you might find the required software on the scanner manufacturer's website.

Extract the file from your scanner install CD

Firmwares usually have the Template:Codeline extension.

But it may also be in:

Install the firmware

Firstly you need to put the firmware someplace safe, it is recommended to put it in a subdirectory of Template:Filename.

Then you need to tell sane where the firmware is:

If the backend of your scanner is not part of the sane package (such as hpaio.conf which is part of hplip), you need to uncomment the relevant entry in /etc/sane.d/dll.d/hplip.

Step 5: Install some frontend(s)

XSane provides a GTK-based frontend to Sane. It is available in the Template:Codeline repository.

# pacman -S xsane

Other frontends exist, to find them you can:


Invalid argument

If you get an "Invalid argument" error with xsane or another sane front-end you probably need a firmware. See above for details.

Permission problem

If you see your scanner only when doing Template:Codeline you might get it working by adding your user to Template:Codeline group.

# gpasswd -a username lp

This is reported to work on HP all-in-one models (e.g., PSC 1315 and PSC 2355).

Also you could try to change permission of usb device


First, switch to root and check connected usb devices with command 'lsusb'

#[root@archlinux ~]# lsusb 
#Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
#Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
#Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
#Bus 003 Device 003: ID 04d9:1603 Holtek Semiconductor, Inc. 
#Bus 003 Device 002: ID 04fc:0538 Sunplus Technology Co., Ltd 
#Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
#Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
#Bus 001 Device 006: ID 03f0:2504 Hewlett-Packard 
#Bus 001 Device 002: ID 046d:0802 Logitech, Inc. Webcam C200
#Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
#[root@archlinux ~]# 

In our example we see scanner - 'Bus 001 Device 006: ID 03f0:2504 Hewlett-Packard'

So you can now change dev permissions with command

#chmod 777 /dev/bus/usb/001/006'

Another tip, is that you can add your device (scanner) in backend file:

In example we add string 'usb 0x03f0 0x2504' to file '/etc/sane.d/hp4200.conf'

Now file looks like this:

#[root@archlinux ~]# cat /etc/sane.d/hp4200.conf
# Configuration file for the hp4200 backend
# HP4200
#usb 0x03f0 0x0105
usb 0x03f0 0x2504
[root@archlinux ~]#

DBus problem

If you get following problem:

arguments to dbus_connection_send() were incorrect, assertion "connection != NULL" failed in file dbus-connection.c

Make sure dbus is actually running:

pgrep -l dbus

If it isn't, start it with:

sudo /etc/rc.d/dbus start

Add Template:Codeline to groups Template:Codeline and Template:Codeline:

# gpasswd -a dbus lp
# gpasswd -a dbus scanner

Slow startup

If you encounter slow startup issue (e.g. xsane or scanimage -L take a lot to find scanner) it may be that more than one driver supporting it is available.

Have a look at /etc/sane.d/dll.conf and try commenting out one (e.g. you may have epson, epson2 and epkowa enabled at the same time, try leaving only epson or epkowa uncommented)