mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-16 10:20:30 +00:00
082e703782
Obtained from: Gunther Schadow and Luigi Rizzo control program for Trust AmiScan BW (GI1904 chipset) ASC - A device driver for a handy scanner This is a device driver for GI1904-based hand scanners, e.g. the Trust Amiscan Grey and possibly others. The driver is based on the "gsc" driver and, partly, on a Linux driver. The driver has a working select(). -Luigi Rizzo (luigi@iet.unipi.it)
87 lines
3.1 KiB
Plaintext
87 lines
3.1 KiB
Plaintext
To install the device driver, please do the following steps:
|
|
|
|
1. Install the files by copying them as listed in the following table:
|
|
|
|
asc.c /usr/sys/i386/isa/
|
|
ascreg.h /usr/sys/i386/isa/
|
|
asc_ioctl.h /usr/sys/i386/include/
|
|
|
|
Note that if you have copies of the system header directories
|
|
in /usr/include/ instead of symbolic links, you have to copy
|
|
`asc.h' to /usr/include/machine/ also. I recommend to replace
|
|
the copies by links though.
|
|
|
|
[the following steps, 2..5, can be achieved by moving to
|
|
/sys/i386 and doing "patch < diffs.asc"]
|
|
|
|
2. Make the driver source known to config(8) by editing the file
|
|
/usr/src/sys/i386/conf/files.i386. Just append the following line:
|
|
|
|
i386/isa/asc.c optional asc device-driver
|
|
|
|
3. Include a driver access record in /usr/src/sys/i386/i386/conf.c
|
|
Append the following structure at the end of the array that
|
|
contains the *character* device drivers. Remember the major number
|
|
that will be used for the driver, i.e. the number following the
|
|
number af the preceeding record.
|
|
|
|
{ ascopen, ascclose, ascread, nowrite, /*<major>*/
|
|
ascioctl, nostop, nullreset, nodevtotty, /* asc */
|
|
ascselect, nommap, NULL },
|
|
|
|
4. Insert the definitions for the base port addresses of the device
|
|
into the file /usr/src/sys/i386/isa/isa.h:
|
|
|
|
#define IO_ASC1 0x3EB /* AmiScan addr.grp. 1 */
|
|
#define IO_ASC2 0x22B /* AmiScan addr.grp. 2 */
|
|
#define IO_ASC3 0x26B /* AmiScan addr.grp. 3 */
|
|
#define IO_ASC4 0x2AB /* AmiScan addr.grp. 4 */
|
|
#define IO_ASC5 0x2EB /* AmiScan addr.grp. 5 */
|
|
#define IO_ASC6 0x32B /* AmiScan addr.grp. 6 */
|
|
#define IO_ASC7 0x36B /* AmiScan addr.grp. 7 */
|
|
#define IO_ASC8 0x3AB /* AmiScan addr.grp. 8 */
|
|
|
|
5. Patch /dev/MAKEDEV by adding the following lines in the switch to
|
|
create the device entries:
|
|
|
|
asc*)
|
|
rm -f asc0
|
|
mknod asc0 c 68 0
|
|
mknod asc0p c 68 8
|
|
chmod 666 asc0 asc0p
|
|
chown root.wheel asc0 asc0p
|
|
;;
|
|
|
|
|
|
|
|
6. Edit your kernel configuration file (in /usr/src/sys/i386/conf/)
|
|
by inserting the following line:
|
|
|
|
device asc0 at isa? port 0x2ab tty drq 3 irq 10 vector ascintr
|
|
|
|
This should usually work for you as it reflects the factory
|
|
settings of the AMI scanner. However, if this conflicts with
|
|
any other device on your system, you have the option to change
|
|
`drq 3' into `drq 1' or `drq 5' and the actual port value to
|
|
"IO_ASC1".. "IO_ASC8" as defined in isa.h
|
|
|
|
7. Rebuild the kernel, don't forget to config(8) and `make depend' first.
|
|
|
|
8. Make the following device nodes:
|
|
|
|
mknod /dev/asc0 c <major> 0
|
|
mknod /dev/asc0p c <major> 8
|
|
|
|
(or, cd /dev and do ./MAKEDEV asc0).
|
|
|
|
If you plan to modify the and debug the driver, add these (you
|
|
won't need these though, unless you know how to get this
|
|
information from elsewhere.
|
|
|
|
mknod /dev/asc0d c <major> 32
|
|
mknod /dev/asc0pd c <major> 40
|
|
|
|
9. Install the new kernel and reboot. You can try the driver by
|
|
doing a simple "cat /dev/asc0p > myfile.pbm" and then trying
|
|
to display the PBM image with xv or some other tool.
|