[sane-devel] HP ScanJet 7400c open of device faled: invalid arguement

Johannes Meixner jsmeix at suse.de
Wed Apr 27 07:43:30 UTC 2016


Hello,

On Apr 26 16:47 Chen, Xianwen wrote (excerpt):
> 'lsusb' returns:
...
> Bus 003 Device 033: ID 03f0:0801 Hewlett-Packard ScanJet 7400c
...
> 'lsusb -t' returns:
...
> /:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/15p, 480M
...
>    |__ Port 6: Dev 33, If 0, Class=, Driver=, 12M

You scanner is connected at a USB bus/port where the
kernel module/driver "xhci_hcd" (a.k.a. "USB 3") is used.

There are currently isues when the xhci kernel module
is used for USB ports where the scanner is connected.

Only "lsusb -t" will tell you what kernel module/driver
is actually used for the USB bus and port where
your scanner is connected to.

Neither the color nor what the port/connector is
labeled on the computer is reliable regarding what
kernel driver is used for the port/connector.

For example my testing machine has 4 USB connectors,
two labeled with the "super speed" USB logo (a.k.a. USB 3)
and two labeled with the normal USB logo (a.k.a. USB 2)
but for all 4 ports xhci is used.

Furthermore all USB connectors on my testing machine have
same dark color. Also the "super speed" (USB 3) labeled
connectors are basically black. Their color is "very dark"
but not "100% black" and neither blue (USB 3.0) nor
teal blue (USB 3.1), cf.
https://en.wikipedia.org/wiki/USB#Colors

Only "lsusb -t" output shows what kernel driver is
actually used.

Regarding "USB 2" versus "USB 3" see
http://lists.alioth.debian.org/pipermail/sane-devel/2015-December/034197.html
and
http://lists.alioth.debian.org/pipermail/sane-devel/2015-December/034207.html

See also
https://bugzilla.opensuse.org/show_bug.cgi?id=955079#c2
and
https://bugzilla.opensuse.org/show_bug.cgi?id=856794
in particular
https://bugzilla.opensuse.org/show_bug.cgi?id=856794#c50
and finally see
http://bugzilla.opensuse.org/show_bug.cgi?id=975866
for possible workarounds by using an appropriate version
of the sane-backends software that may (hopefully) work
with your currently used "xhci_hcd" driver from your
currently installed kerenel.

With newest kernels a current development snapshot of the
sane-backends software should also work but you may have
to compile that on your own when your Linux distributor
does not provide ready-to-use software packages of
sane-backends development snapshots.

Alternatively:

If possible connect scanners at a traditional "USB 2" port.

It seems your computer also has USB ports where it seems
traditional "USB 2" kernel modules/drivers are used
(from your "lsusb -t" output):

> /:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
...
> /:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M

I would expect "Driver=ehci_hci" not "Driver=ehci-pci"
but I am not at all a kernel expert to know details.

If those USB ports have connectors at the outside of
your computer so that you could connect the scanner
at such a USB 2 port, then the scanner should probably
"just work".


Kind Regards
Johannes Meixner
-- 
SUSE LINUX GmbH - GF: Felix Imendoerffer, Jane Smithard,
Graham Norton - HRB 21284 (AG Nuernberg)




More information about the sane-devel mailing list