[sane-devel] All sane frontends segfault with my HP 5200C
Peter Kirchgessner
peter at kirchgessner.net
Sat Feb 2 08:18:20 GMT 2002
Hi Ben,
there is something wrong with the device /dev/scanner. This should only
be used for SCSI-scanners. If this is a link to your USB-device, remove
the link.
You can try to start xscanimage like this:
xscanimage hp:/dev/usb/scanner0
--Peter
Ben Finney wrote:
> Howdy all,
>
> I'm attempting to use my HP 5200C on a USB port with sane 1.0.6, and not
> having much joy. I've checked everywhere that the docs suggest could be
> a problem; I've even got the latest USB scanner driver (0.4.6) from David
> Nelson's site
>
> =====
> $ cat /proc/bus/usb/devices
> [...]
> T: Bus=01 Lev=02 Prnt=02 Port=02 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
> D: Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
> P: Vendor=03f0 ProdID=0401 Rev= 1.00
> S: Product=HP ScanJet 5200C
> S: SerialNumber=SG93K162P0HT
> C:* #Ifs= 1 Cfg#= 1 Atr=60 MxPwr= 0mA
> I: If#= 0 Alt= 0 #EPs= 3 Cls=00(>ifc ) Sub=00 Prot=00 Driver=(none)
> E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
> E: Ad=02(O) Atr=02(Bulk) MxPS= 16 Ivl= 0ms
> E: Ad=83(I) Atr=03(Int.) MxPS= 1 Ivl=250ms
> [...]
>
> $ cat /proc/bus/usb/drivers |grep scanner
> 48- 63: usbscanner
>
> $ uname -a
> Linux rose 2.4.16 #1 Sat Feb 2 14:21:17 EST 2002 i686 unknown
>
> $ sudo /sbin/insmod scanner vendor=0x3f0 product=0x0401
> Using /lib/modules/2.4.16/kernel/drivers/usb/scanner.o
>
> $ dmesg |grep scanner
> usb.c: registered new driver usbscanner
> scanner.c: probe_scanner: User specified USB scanner -- Vendor:Product - 3f0:401scanner.c: 0.4.6:USB Scanner Driver
>
> $ cat /etc/sane.d/dll.conf |grep hp
> hp
>
> $ cat /etc/sane.d/hp.conf
> /dev/usb/scanner0
> option connect-device
>
> $ ls -l /dev/usb/scanner0
> crw-rw---- 1 root scanner 180, 48 Jan 29 12:22 /dev/usb/scanner0
>
> $ scanimage --version
> scanimage (sane-backends) 1.0.6; backend version 1.0.6
>
> $ sane-find-scanner -v
> # Note that sane-find-scanner will find any scanner that is connected
> # to a SCSI bus and some scanners that are connected to the Universal
> # Serial Bus (USB) depending on your OS. It will even find scanners
> # that are not supported at all by SANE. It won't find a scanner that
> # is connected to a parallel or proprietary port.
>
> # You may want to run this program as super-user to find all devices.
> # Once you found the scanner devices, be sure to adjust access
> # permissions as necessary.
>
> sane-find-scanner: searching for SCSI scanners:
> sane-find-scanner: checking /dev/scanner... open ok
> Segmentation fault
> =====
>
> I get a segmentation fault no matter what sane frontend I try. Here is
> the output of an strace on sane-find-scanner:
>
> =====
> execve("/usr/bin/sane-find-scanner", ["sane-find-scanner"], [/* 32 vars */]) = 0
> uname({sys="Linux", node="rose", ...}) = 0
> brk(0) = 0x804f0c4
> open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/etc/ld.so.cache", O_RDONLY) = 3
> fstat64(0x3, 0xbfffeb04) = 0
> old_mmap(NULL, 55126, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40016000
> close(3) = 0
> open("/lib/libnsl.so.1", O_RDONLY) = 3
> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0B\0\000"..., 1024) = 1024
> fstat64(0x3, 0xbfffeb4c) = 0
> old_mmap(NULL, 82716, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40024000
> mprotect(0x40035000, 13084, PROT_NONE) = 0
> old_mmap(0x40035000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x10000) = 0x40035000
> old_mmap(0x40037000, 4892, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40037000
> close(3) = 0
> open("/lib/libm.so.6", O_RDONLY) = 3
> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 I\0\000"..., 1024) = 1024
> fstat64(0x3, 0xbfffeb3c) = 0
> old_mmap(NULL, 137220, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40039000
> mprotect(0x4005a000, 2052, PROT_NONE) = 0
> old_mmap(0x4005a000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x20000) = 0x4005a000
> close(3) = 0
> open("/usr/lib/libjpeg.so.62", O_RDONLY) = 3
> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0%\0\000"..., 1024) = 1024
> fstat64(0x3, 0xbfffeb2c) = 0
> old_mmap(NULL, 123268, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4005b000
> mprotect(0x40078000, 4484, PROT_NONE) = 0
> old_mmap(0x40078000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1c000) = 0x40078000
> close(3) = 0
> open("/lib/libc.so.6", O_RDONLY) = 3
> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0(\327\1"..., 1024) = 1024
> fstat64(0x3, 0xbfffeb1c) = 0
> old_mmap(NULL, 1187968, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4007a000
> mprotect(0x40192000, 41088, PROT_NONE) = 0
> old_mmap(0x40192000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x117000) = 0x40192000
> old_mmap(0x40198000, 16512, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40198000
> close(3) = 0
> old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4019d000
> munmap(0x40016000, 55126) = 0
> fstat64(0x1, 0xbfffafcc) = 0
> old_mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40016000
> SYS_199(0x401971f0, 0, 0x40197e60, 0x40194f30, 0x804ecac) = 1000
> brk(0) = 0x804f0c4
> brk(0x804f244) = 0x804f244
> brk(0x8050000) = 0x8050000
> open("/proc/scsi/scsi", O_RDONLY) = 3
> fstat64(0x3, 0xbfffb14c) = 0
> old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40018000
> read(3, "Attached devices: \nHost: scsi0 C"..., 1024) = 493
> read(3, "", 1024) = 0
> close(3) = 0
> munmap(0x40018000, 4096) = 0
> open("/proc/scsi/scsi", O_RDONLY) = 3
> fstat64(0x3, 0xbfffb14c) = 0
> old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40018000
> read(3, "Attached devices: \nHost: scsi0 C"..., 1024) = 493
> read(3, "", 1024) = 0
> close(3) = 0
> munmap(0x40018000, 4096) = 0
> open("/dev/scanner", O_RDWR|O_EXCL) = 3
> ioctl(3, TIOCSCCINI, 0xbfffb6a4) = -1 ENOTTY (Inappropriate ioctl for device)
> ioctl(3, TIOCGKISS, 0x804ede8) = -1 ENOTTY (Inappropriate ioctl for device)
> old_mmap(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4019e000
> rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
> rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
> rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
> write(3, "*\0\0\0)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 42) = 42
> rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
> select(4, [3], NULL, NULL, NULL) = 1 (in [3])
> rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
> read(3, "", 41) = 0
> rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
> --- SIGSEGV (Segmentation fault) ---
> +++ killed by SIGSEGV +++
>
> =====
>
> Any help appreciated.
>
>
--
Peter Kirchgessner
http://www.kirchgessner.net
mailto:peter at kirchgessner.net
More information about the sane-devel
mailing list