I took the snapshots from http://www.sane-project.org/snapshots/ which were: sane-backends-2005-10-02.tar.gz sane-frontends-2005-10-02.tar.gz
I also grabbed libusb-0.1.10a.tar.gz from sourceforge and isnatlled that. Though it installs as 0.1, which seems a strange numbering scheme: # ls -l /usr/local/lib/libusb* lrwxrwxrwx 1 root root 19 Oct 2 18:57 /usr/local/lib/libusb-0.1.so.4 -> libusb-0.1.so.4.4.2 -rwxr-xr-x 1 root root 88284 Oct 2 18:57 /usr/local/lib/libusb-0.1.so.4.4.2 -rw-r--r-- 1 root root 135422 Oct 2 18:57 /usr/local/lib/libusb.a -rwxr-xr-x 1 root root 795 Oct 2 18:57 /usr/local/lib/libusb.la lrwxrwxrwx 1 root root 19 Oct 2 18:57 /usr/local/lib/libusb.so -> libusb-0.1.so.4.4.2 lrwxrwxrwx 1 root root 21 Oct 2 18:57 /usr/local/lib/libusbpp-0.1.so.4 -> libusbpp-0.1.so.4.4.2 -rwxr-xr-x 1 root root 242498 Oct 2 18:57 /usr/local/lib/libusbpp-0.1.so.4.4.2 -rw-r--r-- 1 root root 293564 Oct 2 18:57 /usr/local/lib/libusbpp.a -rwxr-xr-x 1 root root 975 Oct 2 18:57 /usr/local/lib/libusbpp.la lrwxrwxrwx 1 root root 21 Oct 2 18:57 /usr/local/lib/libusbpp.so -> libusbpp-0.1.so.4.4.2 I noticed an oddity when compiling the frontend: .... /usr/local/include -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include gtkglue.c cc1: warning: changing search order for system directory "/usr/local/include" cc1: warning: as it has already been specified as a non-system directory make[1]: *** No rule to make target `../sanei/libsanei.a', needed by `xscanimage'. Stop. make[1]: Leaving directory `/home/luke/linux/scanner/sane-frontends/src' make: *** [install-recursive] Error 1 Perhaps that was because I just did a "make install", and should have made all first? I went into sanei and just did a make in there and continued on. After I'd made install in sane-backend then sane-frontend (and moved aside the older versions and re-ren ldconfig), I did a "modprobe scanner" then "mount -t usbdevfs none /proc/bus/usb". Then sane-find-scanner reported the scanner: .... found USB scanner (vendor=0x04a9 [Canon], product=0x2220 [CanoScan], chip=LM9832/3) at libusb:001:003 .... But scanimage -L didn't find it (as root). I'll confess this is on a very old system (RH 7.2, running kernel 2.4.28). I then had a look for Stephan February's changes (in his post of Sept 29), but it looks like they didn't make it into the Oct2 2nd snapshots? So I applied the changes manually to backend/plustek-usbdevs.c. I was surprised that a "make" didn't compile anything. I then looked through the output from make and saw that plustek-usbdevs.c had never been compiled in the first place. So I think I'm a bit out of my depth now, since I don't understand how plustek-usbdevs.c gets compiled (it only appears in the DISTFILES list). In the end I gave up and made clean and rebuilt everything, but I still didn't notice plustek-usbdevs.c get compiled. I did notice a few mildly interesting warnings though: gcc -c -g -O2 -W -Wall -Wcast-align -Wcast-qual -Wmissing-declarations -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wstrict-prototypes -pedantic -ansi -DHAVE_CONFIG_H -I. -I. -I../include -I../include -DPATH_SANE_CONFIG_DIR=/usr/local/etc/sane.d -DPATH_SANE_DATA_DIR=/usr/local/share -DPATH_SANE_LOCK_DIR=/usr/local/var -DV_MAJOR=1 -DV_MINOR=0 -DBACKEND_NAME=canon630u -DLIBDIR=/usr/local/lib/sane canon630u.c -fPIC -DPIC -o .libs/canon630u.o In file included from canon630u.c:67: canon630u-common.c:69:1: warning: "USB_DIR_OUT" redefined In file included from canon630u.c:62: .../include/sane/sanei_usb.h:161:1: warning: this is the location of the previous definition .... coolscan.c: In function `get_internal_info_LS20': coolscan.c:1662: warning: string length `513' is greater than the length `509' ISO C89 compilers are required to support .... umax.c: In function `umax_identify_scanner': umax.c:3198: warning: string length `599' is greater than the length `509' ISO C89 compilers are required to support In the end, it didn't make any difference though - sane-find-scanner finds the Canon LiDE 25, but scanimage -L doesn't. Any ideas what I've done wrong? luke