[sane-devel] SANE and XSane on HP-UX
Michael Piotrowski
mxp at dynalabs.de
Wed Oct 3 15:46:33 BST 2001
Henning Meier-Geinitz <henning at meier-geinitz.de> writes:
[...]
> Maybe you can rewrite the README.hp-ux for us?
Here's a draft, tell me what you think.
Building and Installing SANE on HP-UX
-------------------------------------
Time-stamp: <2001-10-03T16:41:13 mxp>
This file contains some notes on building and installing SANE on
HP-UX. It tells you which compiler switches to use, how to find out
to which controller card your scanner is connected, and how to create
a device file for it.
Building SANE
-------------
On HP-UX, SANE can be built using either the HP ANSI C compiler or
GCC. For GCC, no special arguments to configure are necessary. For
the HP compiler, invoke configure like this:
CC=cc CFLAGS="-Ae -O" ./configure
If you're using the HP compiler on 64-bit HP-UX 11, you must build
64-bit executables:
CC=cc CFLAGS="-Ae +DA2.0W -O" ./configure
Some of the make files use GNU extensions, so you have to use gmake
(GNU make). Gmake binaries are available from the HP-UX Porting and
Archive Centre <http://hpux.connect.org.uk> and its mirror sites.
Installing SANE
---------------
The SCSI pass-through driver (sctl) must be enabled in your kernel,
but it is by default.
Naturally, the scanner must have a non-conflicting SCSI address and it
must be connected to the right SCSI bus to work.
You'll probably need to create a device file for your scanner. To do
this, you'll need to know its SCSI address, and, if your machine has
multiple SCSI controllers, the number of the one it's connected to.
As root, you can use ioscan -f to find this information.
For example, here's the partial ioscan output for a C200:
Class I H/W Path Driver S/W State H/W Type Description
==============================================================================
[...]
ext_bus 0 8/0/19/0 c720 CLAIMED INTERFACE Ultra Wide SCSI
target 0 8/0/19/0.6 tgt CLAIMED DEVICE
disk 0 8/0/19/0.6.0 sdisk CLAIMED DEVICE IBM DDYS-T09170N
target 1 8/0/19/0.7 tgt CLAIMED DEVICE
ctl 0 8/0/19/0.7.0 sctl CLAIMED DEVICE Initiator
[...]
ext_bus 1 8/16/5 c720 CLAIMED INTERFACE Built-in SCSI
target 4 8/16/5.1 tgt CLAIMED DEVICE
unknown -1 8/16/5.1.0 UNCLAIMED UNKNOWN EPSON Perfection1640
target 2 8/16/5.2 tgt CLAIMED DEVICE
disk 1 8/16/5.2.0 sdisk CLAIMED DEVICE TOSHIBA CD-ROM XM-5401TA
target 3 8/16/5.7 tgt CLAIMED DEVICE
ctl 1 8/16/5.7.0 sctl CLAIMED DEVICE Initiator
[...]
You can see that there are two SCSI controllers, Ultra Wide SCSI and
Built-in SCSI (narrow single-ended). The I column shows the number of
the controller card. Our scanner, an Epson Perfection 1640, is
connected to controller 1, and has SCSI address 1 (that's the 1 in the
H/W Path number).
You can now create the device file using mknod(1M). In this example,
the command would be:
mknod /dev/rscsi/c1t1d0 c 203 0x011000
In the filename, c1 specifies controller 1, t1 is target 1 (i.e., the
SCSI address), d0 (device 0) because it's the only device at that
address. 203 is the major number of the sctl driver. In the minor
number (0x011000), 01 again means controller 1, and the second one
means SCSI address 1. See scsi_ctl(7) for details.
For ease of use with SANE, I'd recommend to create a link to
/dev/scanner, e.g.,
ln -s /dev/rscsi/c1t1d0 /dev/scanner
To allow normal users to access the scanner, the best approach is
probably to create a new group, say, "scanner", and make the scanner
device file readable and writable for the group, e.g.,
chown bin:scanner /dev/rscsi/c1t1d0
chmod g+rw /dev/rscsi/c1t1d0
You would then add all users that are allowed to use the scanner to
that group. If you haven't already done so, you should do
ln -s /etc/group /etc/logingroup
so that users are automatically in all groups to which they belong
(and don't have to use newgrp(1)).
--
Michael Piotrowski, M.A. <mxp at dynalabs.de>
More information about the sane-devel
mailing list