Porting SANE backend 1.0.21 to FreeBSD 7.2

Mark Terribile materribile at yahoo.com
Sat May 22 15:30:30 UTC 2010

If this is the wrong place, please be gentle!  I need to get a Canon 8800F scanner running on FreeBSD 7.2 .  SANE's latest version is said to support this scanner.

I have gotten a copy of it to build (and fed a few minor problems back to the people at the SANE project: https://alioth.debian.org/tracker/?func=detail&atid=410366&aid=312503&group_id=30186) and I have added

product CANON CS8800F		0x1901	CanoScan 8800F

to /usr/src/sys/dev/usb/usbdevs.  I have also added


to /usr/src/sys/dev/usb/uscanner.c

When I run scanimage -L I get

device `pixma:04A91901' is a CANON Canoscan 8800F multi-function peripheral

When I run scanimage -d pixma:04A9101 I get
scanimage: sane_read: Invalid argument

Which I have traced to a defaulted fill routine in a table.

scanimage --help gives me

Usage: scanimage [OPTION]...

Start image acquisition on a scanner device and write image data to
standard output.

Parameters are separated by a blank from single-character options (e.g.
-d epson) and by a "=" from multi-character options (e.g. --device-name=epson).
-d, --device-name=DEVICE   use a given scanner device (e.g. hp:/dev/scanner)
    --format=pnm|tiff      file format of output file
-i, --icc-profile=PROFILE  include this ICC profile into TIFF file
-L, --list-devices         show available scanner devices
-f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output
                           can be specified: %d (device name), %v (vendor),
                           %m (model), %t (type), %i (index number), and
                           %n (newline)
-b, --batch[=FORMAT]       working in batch mode, FORMAT is `out%d.pnm' or
                           `out%d.tif' by default depending on --format
    --batch-start=#        page number to start naming files with
    --batch-count=#        how many pages to scan in batch mode
    --batch-increment=#    increase page number in filename by #
    --batch-double         increment page number by two, same as
    --batch-prompt         ask for pressing a key before scanning a page
    --accept-md5-only      only accept authorization requests using md5
-p, --progress             print progress messages
-n, --dont-scan            only set options, don't actually scan
-T, --test                 test backend thoroughly
-h, --help                 display this help message and exit
-v, --verbose              give even more status messages
-B, --buffer-size=#        change input buffer size (in kB, default 32)
-V, --version              print version information

Options specific to device `pixma:04A91901':
  Scan mode:
    --resolution auto||75|150|300|600|1200|2400|4800dpi [75]
        Sets the resolution of the scanned image.
    --mode auto|Color|Gray [Color]
        Selects the scan mode (e.g., lineart, monochrome, or color).
    --source Flatbed|Transparency Unit [Flatbed]
        Selects the scan source (such as a document-feeder).
    --button-controlled[=(yes|no)] [no]
        When enabled, scan process will not start immediately. To proceed,
        press "SCAN" button (for MP150) or "COLOR" button (for other models).
        To cancel, press "GRAY" button.
    --custom-gamma[=(auto|yes|no)] [yes]
        Determines whether a builtin or a custom gamma-table should be used.
    --gamma-table auto|0..255,...
        Gamma-correction table.  In color mode this option equally affects the
        red, green, and blue channels simultaneously (i.e., it is an intensity
        gamma table).
    -l auto|0..216.069mm [0]
        Top-left x position of scan area.
    -t auto|0..297.011mm [0]
        Top-left y position of scan area.
    -x auto|0..216.069mm [216.069]
        Width of scan-area.
    -y auto|0..297.011mm [297.011]
        Height of scan-area.
        Update button state
    --button-1 <int> [0]
        Button 1
    --button-2 <int> [0]
        Button 2

Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE.

List of available devices:

There is a /dev/usb/uscanner .

I haven't figured out how to turn on the internal debugging system, so my first question to someone who may have ported an earlier version is how to do that.

My second question is whether I have the USB entries right, and whether I need to do anything else to make this work.

And finally, I ask for any general wisdom or hints in dealing with SANE and SANE with USB devices.

When I am done, I will gladly turn my work over to anyone who would like to incorporate it into the ports base.  (And after this, I need a new CUPS and an EPSON Sylus R1900).

Thank you for any help you may be able to offer.

    Mark Terribile


More information about the freebsd-ports mailing list