[sane-devel] All sane frontends segfault with my HP 5200C

Peter Kirchgessner peter@kirchgessner.net
Sat, 02 Feb 2002 09:18:20 +0100


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@kirchgessner.net