I am in the process of upgrading to Leap 42.1 from 13.2, getting everything right on an old machine before wiping the disk on my regular machine. I am unable to get the scanner to be recognized. It was not straightforward under 13.2. I had to go through these steps:
ATTR{idVendor}==“03f0”, ATTR{idProduct}==“4305”, MODE=“0664”, GROUP=“lp”, ENV{libsane_matched}=“yes”
to /etc/udev/libsane.rules
Add
hp3900
to /etc/sane.d/dll.conf
Install hplip
Go to Yast -> Hardware -> Scanner
and attempt to configure the scanner.
Under Leap 42.1 the Scanner Configuration window contains these three items in the list:
hp3900 No scanner recognized by this driver
hpaio No scanner recognized by this driver
Not Configured hewlett packard hp scanjet USB scanner (vendor=0x03f0 [hewlett packard]) at libusb:001:004
When I select the last one and click on Edit, I get a list of types of scanner. I select the G3110 and click Next, but it refuses to be configured.
If I try the command
scanimage -d hp3900 -v >/dev/null && echo OK
I get
scanimage: open of device hp3900 failed: Invalid argument
Running sane-find-scanner gives
found USB scanner (vendor=0x03f0 [hewlett packard], product=0x4305 [hp scanjet]) at libusb:001:004
scanimage -L
gives No scanners were identified…
Running scanimage -d hp3900 -v >/tmp/scan.jpg
gives scanimage: open of device hp3900 failed: Invalid argument
[sanei_debug] Setting debug level of dll to 4.
[dll] sane_init: SANE dll backend version 1.0.13 from sane-backends 1.0.24
[dll] sane_init/read_dlld: attempting to open directory `./dll.d'
[dll] sane_init/read_dlld: attempting to open directory `/etc/sane.d/dll.d'
[dll] sane_init/read_dlld: opendir failed: No such file or directory
[dll] add_backend: adding backend `hp3900'
[dll] add_backend: adding backend `hpaio'
[dll] sane_open: trying to open `hp3900:libusb:001:003'
[dll] load: searching backend `hp3900' in `/usr/lib64/sane'
[dll] load: trying to load `/usr/lib64/sane/libsane-hp3900.so.1'
[dll] load: dlopen()ing `/usr/lib64/sane/libsane-hp3900.so.1'
[dll] load: dlopen() failed (/usr/lib64/sane/libsane-hp3900.so.1: wrong ELF class: ELFCLASS32)
scanimage: open of device hp3900:libusb:001:003 failed: Invalid argument
[dll] sane_exit: exiting
[dll] sane_exit: finished
FAILED
The same instruction on my machine running 13.2 accepts the library file and starts scanning. I have compared the library files on the two machines. /usr/lib64/sane/libsane-hp3900.so.1 on the old 64-bit machine running Leap 42.1 is 681031 bytes in length, while the one on the 13.2 machine is 428840 bytes. Both were derived from the same download file.
So it looks like there is a fault in the INSTALL.sh script that is part of the hp3900-series_0.12.tar.gz file downloaded from http://sourceforge.net/projects/hp3900-series/ It seems to be misdetecting the architecture of the hardware.
The scanner model (G3110) you reported in your opening post is listed as supported by the backend
man sane-hp3900
and the chipset (usb 0x03f0 0x4305) is declared in the hp3900.conf file already, so it’s not clear to me why the need to compile the driver. The last update to it (from the link you provided) was 2012-09-16, so it isn’t providing anything that isn’t already included in sane-backends anyway. The same package already provides the required udev rule for this chipset as well.
There are two libraries for the HP G3110 scanner: /usr/lib64/sane/libsane-hp3900.so.1.1.0 and /usr/lib64/sane/libsane-hp3900.so.1.0.24 The link /usr/lib64/sane/libsane-hp3900.so was going to the 1.1.0 version (which came from Sourceforge) which seems to be the problem. I have relinked the “so” to the 1.0.24, which is the library that works on my 13.2 machine.
Yast still says that the scanner is not configured, no matter what I do.
XSane still gives no scanner detected.
“scanimage -d hp3900 -v >/dev/null && echo OK” gives a segmentation fault
“scanimage -L” says no scanners were identified
Yast still says that the scanner is not configured, no matter what I do.
XSane still gives no scanner detected.
“scanimage -d hp3900 -v >/dev/null && echo OK” gives a segmentation fault
“scanimage -L” says no scanners were identified
BTW, if you don’t have a multi-function HP device, I think it is a good idea that ‘hpaio’ is removed or commented from /etc/sane.d/dll.conf, since it is not needed, (but I’m not sure if it can impact in any way).
How is the USB scanner enumerated when you first attach it? Run the following first, then connect…
dmesg --follow
This was the output after plugging in the scanner:
193.010363] usb 1-2: new high-speed USB device number 3 using ehci-pci
193.146255] usb 1-2: New USB device found, idVendor=03f0, idProduct=4305
193.146268] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
193.146275] usb 1-2: Product: hp scanjet
193.146281] usb 1-2: Manufacturer: hewlett packard
193.347920] WARNING! power/level is deprecated; use power/control instead
I also tried the sane-find-scanner with debug settings:
toshiba:/home/gfreeman # export SANE_DEBUG_DLL=128
toshiba:/home/gfreeman # export SANE_DEBUG_SANEI_USB=4
toshiba:/home/gfreeman # sane-find-scanner
# 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.
[sanei_debug] Setting debug level of sanei_usb to 4.
[sanei_usb] sanei_usb_init: initializing libusb-1.0
[sanei_usb] sanei_usb_scan_devices: marking existing devices
[sanei_usb] libusb_scan_devices: Looking for libusb-1.0 devices
[sanei_usb] libusb_scan_devices: found libusb-1.0 device (0x03f0/0x4305) interface 0 at libusb:001:004
[sanei_usb] store_device: add dn 0 with libusb:001:004
[sanei_usb] sanei_usb_open: can't find device `/dev/usb/scanner' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usb/scanner0' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usb/scanner1' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usb/scanner2' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usb/scanner3' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usb/scanner4' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usb/scanner5' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usb/scanner5' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usb/scanner7' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usb/scanner8' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usb/scanner9' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usb/scanner10' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usb/scanner11' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usb/scanner12' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usb/scanner13' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usb/scanner14' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usb/scanner15' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usbscanner' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usbscanner0' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usbscanner1' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usbscanner2' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usbscanner3' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usbscanner4' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usbscanner5' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usbscanner6' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usbscanner7' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usbscanner8' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usbscanner9' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usbscanner10' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usbscanner11' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usbscanner12' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usbscanner13' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usbscanner14' in list
[sanei_usb] sanei_usb_open: can't find device `/dev/usbscanner15' in list
found USB scanner (vendor=0x03f0 [hewlett packard], product=0x4305 [hp scanjet]) at libusb:001:004
could not fetch string descriptor: Pipe error
could not fetch string descriptor: Pipe error
# 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.
[QUOTE=tgf;2750373]This was the output after plugging in the scanner:
193.010363] usb 1-2: new high-speed USB device number 3 using ehci-pci
193.146255] usb 1-2: New USB device found, idVendor=03f0, idProduct=4305
193.146268] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
193.146275] usb 1-2: Product: hp scanjet
193.146281] usb 1-2: Manufacturer: hewlett packard
193.347920] WARNING! power/level is deprecated; use power/control instead
[QUOTE]
I am wondering if the HLIP udev rules (/ec/udev/rules.d/56-hpmud.rules are impacting here. Certainly, the warning above comes as a direct consequence of a matching (HPLIP) rule being invoked. You could try removing (or renaming) 56-hpmud.rules, or if you don’t need HPLIP, remove it entirely, and then see if the scanner is handled properly.
I wouldn’t worry about the null ‘scanimage -L’ result (that often fails to detect local scanners), but a bug report might be required to help progress this further.