Getting a HP ScanJet G3110 scanner to work

I have bought a new HP ScanJet G3110 scanner but have had no success in getting it to work under OpenSuSE. I get the message “No devices available”. The scanner works under MS Windows.

The website http://www.sane-project.org/sane-mfgs.html lists HP ScanJet G3110 with USB IDs 0x03f0/0x4305, having Basic status, “similar to scanjet 4370”, using the back-end from http://sourceforge.net/projects/hp3900-series/ and with documentation at http://www.sane-project.org/man/sane-hp3900.5.html

I downloaded the Tar file from sourceforge and ran

INSTALL.sh

, telling the script to install the SANE backend and that the OS is SuSE.

I added the lines

   # HP Scanjet G3110
   usb 0x03f0 0x4305

to /etc/sane.d/hp3900.conf and commented out the line for HP Scanjet G3010, just in case.

I have these packages installed:

~> rpm -qa | grep sane
hplip-sane-3.14.6-2.2.4.x86_64
sane-backends-32bit-1.0.24-2.1.10.x86_64
xsane-0.998-22.1.5.x86_64
libksane0-14.12.3-16.1.x86_64
sane-backends-1.0.24-2.1.10.x86_64
sane-backends-autoconfig-1.0.24-2.1.10.x86_64

lsusb gives this output:

~> lsusb
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 04f2:b3b1 Chicony Electronics Co., Ltd 
Bus 002 Device 002: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 011: ID 0930:0220 Toshiba Corp. 
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
**Bus 001 Device 002: ID 03f0:4305 Hewlett-Packard ScanJet G3110**
Bus 005 Device 003: ID 045e:0040 Microsoft Corp. Wheel Mouse Optical
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 045e:00cb Microsoft Corp. Basic Optical Mouse v2.0
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

with varying Device number for the scanner every time it gets turned on.

If I run sane-find-scanner, I get:

  # sane-find-scanner will now attempt to detect your scanner. If the
  # result is different from what you expected, first make sure your
  # scanner is powered up and properly connected to your computer.

  # No SCSI scanners found. If you expected something different, make sure that
  # you have loaded a kernel SCSI driver for your SCSI adapter.

found USB scanner (vendor=0x03f0 [hewlett packard], product=0x4305 [hp scanjet]) at libusb:001:003
  # Your USB scanner was (probably) detected. It may or may not be supported by
  # SANE. Try scanimage -L and read the backend's manpage.

  # Not checking for parallel port scanners.

  # Most Scanners connected to the parallel port or other proprietary ports
  # can't be detected by this program.

Running “scanimage -L” gives:

No scanners were identified.  If you were expecting something different, 
check that the scanner is  plugged in, turned on and detected by the 
sane-find-scanner tool (if  appropriate). Please read the documentation 
which came with this  software (README, FAQ, manpages).

dmesg contains no error messages about the scanner:

 1637.153039] usb 1-1: new high-speed USB device number 4 using ehci-pci
 1637.273177] usb 1-1: New USB device found, idVendor=03f0, idProduct=4305
 1637.273188] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
 1637.273194] usb 1-1: Product: hp scanjet
 1637.273199] usb 1-1: Manufacturer: hewlett packard
 9640.207958] usb 1-1: USB disconnect, device number 4
[18754.416225] usb 1-1: new high-speed USB device number 5 using ehci-pci
[18754.536020] usb 1-1: New USB device found, idVendor=03f0, idProduct=4305
[18754.536031] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[18754.536037] usb 1-1: Product: hp scanjet
[18754.536042] usb 1-1: Manufacturer: hewlett packard

I have tried using YaST → Hardware → Scanner. Initially it came up with

Driver: Not Configured: hewlett packard hp scanjet USB scanner (vendor=0x03f0 [hewlett packard], product=0x4305 [hp scanjet]) at libusb:001:003
Driver: hpaio   No scanner recognized by this driver 

Although the sourceforge site provided a couple of libraries /usr/lib/sane/libsane-hp3900.la and /usr/lib/sane/libsane-hp3900.so.1.1.0 , and the USB hardware is being recognized, it seems that no association is being made with a driver. Do I need another file? Do I need to edit something to link the USB IDs with a driver?

I am using openSuSE 13.2 and I have a 64-bit AMD chip.

There should have been no need to add the chipset to the /etc/sane.d/hp3900.conf configuration file as there should have been an entry for this particular device already (mine is), and the SANE backend is included as standard. There is also a udev rule to handle this particular chipset (provided by the sane-backends package)

# Hewlett-Packard ScanJet G3110
ATTR{idVendor}=="03f0", ATTR{idProduct}=="4305", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"

No, configuration should be necessary. Is the user account a member of the ‘lp’ group?

Thanks, deano_ferrari, for those comments. I had to add to the /etc/sane.d/hp3900.conf file because the G3110 was not there. I have checked the /etc/udev/libsane.rules file and it also is missing the line you have in your file. I don’t understand why my files are not up-to-date. I perform a “zypper up” every few days when I hear of any package revisions.

I have verified that I (as an ordinary user) am a member of the “lp” group. I don’t have “root” listed in User and Group Administration. I am assuming that root has all privileges.

I have added

# Hewlett-Packard ScanJet G3110 
ATTR{idVendor}=="03f0", ATTR{idProduct}=="4305", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"

to /etc/udev/libsane.rules. I am not sure whether I need to reboot or not. I then tried YaST → Scanner and the same two drivers are listed as before:

Not Configured: hewlett packard hp scanjet USB scanner (vendor=0x03f0 [hewlett packard], product=0x4305 [hp scanjet]) at libusb:001:003
hpaio   No scanner recognized by this driver

Attempting to edit the “not configured” line by selecting the G3110 line in the known scanner models and then clicking on “next” gives “Error: failed to activate HP3900”.

I am mystified that things are missing from my system that should be there. Should I try to undo the INSTALL.sh that I loaded from sourceforge, ie. remove the two library files and anything else that might have been installed? Alternatively, what else might be missing from my system?

I’d be inclined to force re-install the sane packages (via zypper or yast) again. All that you needed should have been there.

I have issued the command

zypper in -f hplip-sane sane-backends-32bit xsane libksane0 sane-backends sane-backends-autoconfig

These were the only packages previously installed that contained “sane” in the name.

The files that I had edited to add G3110 (/etc/sane.d/hp3900.conf and /etc/udev/libsane.rules) were not affected by the reinstall.

Unfortunately, it has made no difference. I still get “No scanners detected” from simple-scan and “no devices available” from xsane even though sane-find-scanner can see it.

When you first connect the scanner, note what is reported by

dmesg|tail

Review this troubleshooting guide as it may help determine where the problem is located.

That was a big help, thanks deano_ferrari. dmesg|tail shows

[80134.478635] usb 1-1: new high-speed USB device number 8 using ehci-pci
[80134.598571] usb 1-1: New USB device found, idVendor=03f0, idProduct=4305
[80134.598582] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[80134.598589] usb 1-1: Product: hp scanjet
[80134.598593] usb 1-1: Manufacturer: hewlett packard

I experimented with suggestions in the troubleshooting guide as you suggested. A device identifier of “hp3900” (the name of the library downloaded from sourceforge) is recognized by scanimage, so

scanimage -d hp3900 -v >/dev/null && echo OK

does echo OK. and the command

scanimage -d hp3900 >/tmp/img.jpg

successfully scans a file.

The command scanimage -L gives

No scanners were identified

and xsane reports “no devices available”. So the problem has been narrowed down to how to get xsane to know that the device is “hp3900”.

I added the line “hp3900” to /etc/sane/dll.conf and now xsane is working and scanimage -L reports

device `hp3900:libusb:001:009' is a Hewlett-Packard Scanjet G3110 flatbed scanner

Thank-you so much for your help.

I added the line “hp3900” to /etc/sane/dll.conf and now xsane is working and scanimage -L reports

device `hp3900:libusb:001:009' is a Hewlett-Packard Scanjet G3110 flatbed scanner

Thank-you so much for your help.

Good to know. Usually, it’s not necessary to explicitly declare the backend in dll.conf, unless you’re using a third-party driver, but it does help SANE with determining a matching driver. I’m glad to have been of help. :slight_smile: