If you don't get a message like that you should check the SCSI howto's
for your SCSI card. If you are using a SCSI card that came with the scanner,
see here for hints configuring the cards.

My Linux kernel recognizes my SCSI scanner but SANE does not
Usually the hp-backend is configured to find the SCSI scanner automatically
or at least at /dev/scanner.
This requires that /dev/scanner is a link to the device where the scanner is
really located.
Run the tool sane-find-scanner from SANEs tools-directory (in old versions
of SANE it is called find-scanner). This will print a list
of device names where the scanner is found. If for example /dev/sg0 is in that
list, become root, create a link and set permissions with the commands

ln -s /dev/sg0 /dev/scanner
chmod 666 /dev/sg0

You also can try to force scanimage to use the correct device:

scanimage -d hp:/dev/sg0 > scan.ppm

How do I configure the ISA-card that came with the scanner
Usually two cards are delivered with HP scanners:
Symbios Logic 53C400 A: Support for this card is included in the g_NCR5380 driver. See /usr/src/linux/drivers/scsi/README.g_NCR5380 for details.
Symbios Logic 53C416: A driver for this card should be included in recent 2.2.x
kernels. For an example how to configure the card see
here.

check termination. If the scanner is at the end of the SCSI chain,
the termination must be activated. If it is inbetween, the
termination must de deactivated. Some scanners (5p) automatically
turn on/off the termination. Other scanners (3c) have a termination
switch which must be set manually to the proper position. On the 3c
the positions of the termination switch are marked with a plus
sign and a dot.

check maximum cable length. Depending on the type of SCSI connection
the cable length must not exceed 3 or 6 meters.

check SCSI ID. On the SCSI chain all SCSI devices must have a
different ID. IDs 0 and 7 may be reserved. Some scanners have a switch
that can be rotated to eight different positions. The HP ScanJet 6300 C
searches a free SCSI ID automatically. If you want to use a specific
ID, press the left button during power on. Looking through the scanners
window you will then see a LED start blinking. Releasing the button
after n blinks, the scanner will use n as SCSI ID.

Linux kernel 2.4.x:
Download
hpscan-2.2.7.tar.gz (driver for kernel 2.2.7) and
hpscan-2.2.7.patch.tar.gz (patch for support of kernel 2.4.x.
Thanks to Kipp Cannon for his work).
Untar the hpscan-2.2.7.patch.tar.gz and follow the instructions in
README.patch

This driver gives you a new device /dev/hpscan.
Then you need to add to the file
/usr/local/etc/sane.d/hp.conf the two lines

Note: Because Hewlett-Packard does no longer produce scanners which
support SCL (beside MFP's), this list is complete. Other HP-scanners are not
supported by the hp-backend. But you can find support for other HP-scanners
on

Linux Parallel Port Sharing and
ppSCSI suite of drivers.
Here you could find support for scanners connected to the
parallel port. A patch of this driver suite for 2.4-kernels
can be found at
Debian.If your parallel port HP scanner is not listed here,
it is quite certain that it is not supported.

My HP ScanJet 5100 C scans with colored lines.
Try to set the parallel port to EPP mode (BIOS setting). And if you have
a single processor machine, check that you are not using a SMP kernel
(thanks to Yoan de Macedo, yoan.demacedo at wanadoo.fr).

My scanner works for SCSI. But on the USB it is not found.
Some scanners support SCSI and USB. But they can not be used simultaneously.
If the scanner is connected to a machine through SCSI, USB might not work.
Even if the machine with the SCSI adapter is turned off. Try to unconnect
the scanner from SCSI.

My scanner works with USB on Windows. But not with Linux.
You need at least Linux kernel V 2.2.19. If you want to upgrade manually,
see below for hints.
If you have a kernel 2.2.19 or later, first be sure that the scanner
is found by the system. You can run the X11-program usbview to see if
it is found. Or do the following steps as user root:
To get a listing of the devices found on the USB do

The entry "Product=" should show your type of scanner.
If you don't find an entry for your scanner, it is not recognized.
Check if your kernel supports USB and if you have installed the necessary
packages.
Now when your scanner is recognized, do a

cat /proc/bus/usb/drivers

This should give you something like

usbdevfs
hub
hid
48- 63: usbscanner

This indicates that the usbscanner driver is available. Now have a look
at the permissions of the device /dev/usbscanner by

ls -l /dev/usbscanner

If it shows

crw-r--r-- 1 root root 180, 48 Jan 19 2001 /dev/usbscanner

it is not ok. Only root can read and write to the scanner. To allow
everyone to use it, do

chmod 666 /dev/usbscanner

Now look where the configuration file hp.conf of SANE is located.
It should be at /etc/sane.d/hp.conf or /usr/local/etc/sane.d/hp.conf.
To that file you need to add the two lines

/dev/usbscanner
option connect-device

The file then should look like

scsi HP
/dev/scanner
/dev/usbscanner
option connect-device

You might need to use /dev/usb/scanner0 instead of /dev/usbscanner.
Now you should be able to use the scanner with SANE.

If you need to upgrade to kernel 2.2.19 manually, you also need the
USB scanner module scanner.o. As root, load it and make a device
/dev/usbscanner by

mknod usbscanner c 180 48

Then you can continue with the description above.
(Thank's to Wolfgang Rapp for hints about USB).

Do you have a driver for scanner HP xyz for Windows ?
No. I don't have Windows drivers. But you can download them from
Hewlett Packard. Go to section "Software
& Driver Downloads" and enter your product name like "scanjet 6200".
If you don't have the HP ScanJet model name, only the HP-internal model
number, the following table may help you to identify your product.Note: The table only contains HP scanners using SCL. For other
models I don't have this information.