I installed xscanimage as a plug-in for GIMP. The dummy devices
pmm:n work, so I guess, the basic installation is ok.
When I select my scanner (umax:/dev/scanner, a umax ASTRA 1200S
flatbed scanner), xscanimage is usually immediately aborted with
the error message "wire_read: unexpected EOF". When I am
persistent and repeat selecting the menu entry, after about 20-30
attempts xscanimage will usually start. When called via the
"device dialog" menu entry, the success rate seems to be slightly
higher.
Versions of the involved components:
Kernel: Linux 2.1.42, libc: 5.4.38,
gimp: 0.99.13, sane: 0.65, gtk+: 970925
SCSI interface: Asus SC-200, ncr53c8xx driver
When called as a standalone program, xscanimage normally works
(except for occasional crashes on startup - about every 2nd call
will fail). When the device is given on the command line
("xscanimage umax:/dev/scanner") the following warnings are
displayed.
** WARNING **: file gtkwidget.c: line 2813 (gtk_real_widget_queue_draw): "GTK_IS_WIDGET (widget)"
** WARNING **: file gtkwidget.c: line 2813 (gtk_real_widget_queue_draw): "GTK_IS_WIDGET (widget)"
I don't know enough about sane, gtk and gimp to make any sense of
this. Below is the output when xscanimage is called as a gimp
plug-in with all debug variables activated. It doesn't look
particularly helpful, but maybe somebody can detect anything
unusual in it:
- - - - - 8< - - - - - 8< - - - - - 8< - - - - - 8< - - - - -
[sanei_init_debug]: Setting debug level of dll to 128.
[dll] adding backend umax
[dll] adding backend pnm
[dll] loading backend umax
[dll] load: found `/usr/local/lib/libsane-umax.la'
[dll] dlopen()ing `/usr/local/lib/libsane-umax.so.0'
[dll] init: initializing backend `umax'
[sanei_init_debug]: Setting debug level of umax to 128.
[umax] sane_init
[umax] attach_scanner: /dev/scanner
[umax] attach_scanner: opening /dev/scanner
[sanei_init_debug]: Setting debug level of sanei_scsi to 128.
[umax] init
[umax] initialize_values
[umax] identify_scanner
[umax] do_inquiry
[sanei_scsi] scsi_req_enter: entered 0x8076d50
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x8076d50
[sanei_scsi] sanei_scsi.issue: 0x8076d50
[sanei_scsi] sanei_scsi_req_wait: read 41 bytes
[sanei_scsi] scsi_req_enter: entered 0x8076d50
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x8076d50
[sanei_scsi] sanei_scsi.issue: 0x8076d50
[sanei_scsi] sanei_scsi_req_wait: read 197 bytes
[umax] Found UMAX scanner Astra 1200S version V1.1 on device /dev/scanner
[umax] get_inquiry_values
[umax] sane_open
[umax] init_options
[umax] sane_control_option 2, set value
[dll] control_option(handle=0x806e8f8,option=0,action=0,value=0xbfffe900,info=(nil))
[umax] sane_control_option 0, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=1)
[umax] sane_get_option_descriptor 1
[dll] get_option_descriptor(handle=0x806e8f8,option=2)
[umax] sane_get_option_descriptor 2
[dll] control_option(handle=0x806e8f8,option=2,action=0,value=0x8080e00,info=(nil))
[umax] sane_control_option 2, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=3)
[umax] sane_get_option_descriptor 3
[dll] control_option(handle=0x806e8f8,option=3,action=0,value=0x8081b08,info=(nil))
[umax] sane_control_option 3, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=4)
[umax] sane_get_option_descriptor 4
[dll] control_option(handle=0x806e8f8,option=4,action=0,value=0xbfffe7d4,info=(nil))
[umax] sane_control_option 4, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=5)
[umax] sane_get_option_descriptor 5
[dll] get_option_descriptor(handle=0x806e8f8,option=6)
[umax] sane_get_option_descriptor 6
[dll] control_option(handle=0x806e8f8,option=6,action=0,value=0xbfffe7d4,info=(nil))
[umax] sane_control_option 6, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=6)
[umax] sane_get_option_descriptor 6
[dll] control_option(handle=0x806e8f8,option=6,action=1,value=0xbfffe110,info=0xbfffdfe8)
[umax] sane_control_option 6, set value
[dll] get_option_descriptor(handle=0x806e8f8,option=7)
[umax] sane_get_option_descriptor 7
[dll] control_option(handle=0x806e8f8,option=7,action=0,value=0xbfffe7d4,info=(nil))
[umax] sane_control_option 7, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=8)
[umax] sane_get_option_descriptor 8
[dll] control_option(handle=0x806e8f8,option=8,action=0,value=0xbfffe7d4,info=(nil))
[umax] sane_control_option 8, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=9)
[umax] sane_get_option_descriptor 9
[dll] get_option_descriptor(handle=0x806e8f8,option=10)
[umax] sane_get_option_descriptor 10
[dll] get_option_descriptor(handle=0x806e8f8,option=11)
[umax] sane_get_option_descriptor 11
[dll] control_option(handle=0x806e8f8,option=11,action=0,value=0xbfffe7d4,info=(nil))
[umax] sane_control_option 11, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=12)
[umax] sane_get_option_descriptor 12
[dll] control_option(handle=0x806e8f8,option=12,action=0,value=0xbfffe7d4,info=(nil))
[umax] sane_control_option 12, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=13)
[umax] sane_get_option_descriptor 13
[dll] control_option(handle=0x806e8f8,option=13,action=0,value=0xbfffe7d4,info=(nil))
[umax] sane_control_option 13, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=14)
[umax] sane_get_option_descriptor 14
[dll] control_option(handle=0x806e8f8,option=14,action=0,value=0xbfffe7d4,info=(nil))
[umax] sane_control_option 14, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=15)
[umax] sane_get_option_descriptor 15
[dll] get_option_descriptor(handle=0x806e8f8,option=16)
[umax] sane_get_option_descriptor 16
[dll] get_option_descriptor(handle=0x806e8f8,option=17)
[umax] sane_get_option_descriptor 17
[dll] get_option_descriptor(handle=0x806e8f8,option=18)
[umax] sane_get_option_descriptor 18
[dll] get_option_descriptor(handle=0x806e8f8,option=19)
[umax] sane_get_option_descriptor 19
[dll] get_option_descriptor(handle=0x806e8f8,option=20)
[umax] sane_get_option_descriptor 20
[dll] get_option_descriptor(handle=0x806e8f8,option=21)
[umax] sane_get_option_descriptor 21
[dll] get_option_descriptor(handle=0x806e8f8,option=22)
[umax] sane_get_option_descriptor 22
[dll] get_option_descriptor(handle=0x806e8f8,option=23)
[umax] sane_get_option_descriptor 23
[dll] get_option_descriptor(handle=0x806e8f8,option=24)
[umax] sane_get_option_descriptor 24
[dll] get_option_descriptor(handle=0x806e8f8,option=25)
[umax] sane_get_option_descriptor 25
[dll] get_option_descriptor(handle=0x806e8f8,option=26)
[umax] sane_get_option_descriptor 26
[dll] get_option_descriptor(handle=0x806e8f8,option=27)
[umax] sane_get_option_descriptor 27
[dll] get_option_descriptor(handle=0x806e8f8,option=28)
[umax] sane_get_option_descriptor 28
[dll] get_option_descriptor(handle=0x806e8f8,option=29)
[umax] sane_get_option_descriptor 29
[dll] get_option_descriptor(handle=0x806e8f8,option=30)
[umax] sane_get_option_descriptor 30
[dll] get_option_descriptor(handle=0x806e8f8,option=31)
[umax] sane_get_option_descriptor 31
[dll] get_option_descriptor(handle=0x806e8f8,option=32)
[umax] sane_get_option_descriptor 32
[dll] get_option_descriptor(handle=0x806e8f8,option=33)
[umax] sane_get_option_descriptor 33
[dll] get_option_descriptor(handle=0x806e8f8,option=34)
[umax] sane_get_option_descriptor 34
[dll] control_option(handle=0x806e8f8,option=34,action=0,value=0xbfffe7d4,info=(nil))
[umax] sane_control_option 34, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=35)
[umax] sane_get_option_descriptor 35
[dll] get_option_descriptor(handle=0x806e8f8,option=36)
[umax] sane_get_option_descriptor 36
[dll] get_option_descriptor(handle=0x806e8f8,option=37)
[umax] sane_get_option_descriptor 37
[dll] get_option_descriptor(handle=0x806e8f8,option=38)
[umax] sane_get_option_descriptor 38
[dll] get_option_descriptor(handle=0x806e8f8,option=39)
[umax] sane_get_option_descriptor 39
[dll] get_option_descriptor(handle=0x806e8f8,option=40)
[umax] sane_get_option_descriptor 40
[dll] get_option_descriptor(handle=0x806e8f8,option=41)
[umax] sane_get_option_descriptor 41
[dll] get_option_descriptor(handle=0x806e8f8,option=42)
[umax] sane_get_option_descriptor 42
[dll] control_option(handle=0x806e8f8,option=42,action=0,value=0xbfffe7d4,info=(nil))
[umax] sane_control_option 42, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=43)
[umax] sane_get_option_descriptor 43
[dll] control_option(handle=0x806e8f8,option=43,action=0,value=0xbfffe7d4,info=(nil))
[umax] sane_control_option 43, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=44)
[umax] sane_get_option_descriptor 44
[dll] get_option_descriptor(handle=0x806e8f8,option=45)
[umax] sane_get_option_descriptor 45
[dll] get_parameters(handle=0x806e8f8,params=0xbfffe9dc)
[umax] sane_get_parameters
[dll] get_option_descriptor(handle=0x806e8f8,option=2)
[umax] sane_get_option_descriptor 2
[dll] get_option_descriptor(handle=0x806e8f8,option=3)
[umax] sane_get_option_descriptor 3
[dll] get_option_descriptor(handle=0x806e8f8,option=1)
[umax] sane_get_option_descriptor 1
[dll] get_option_descriptor(handle=0x806e8f8,option=2)
[umax] sane_get_option_descriptor 2
[dll] control_option(handle=0x806e8f8,option=2,action=0,value=0x8082240,info=(nil))
[umax] sane_control_option 2, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=3)
[umax] sane_get_option_descriptor 3
[dll] control_option(handle=0x806e8f8,option=3,action=0,value=0x8082f18,info=(nil))
[umax] sane_control_option 3, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=4)
[umax] sane_get_option_descriptor 4
[dll] control_option(handle=0x806e8f8,option=4,action=0,value=0xbfffe850,info=(nil))
[umax] sane_control_option 4, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=5)
[umax] sane_get_option_descriptor 5
[dll] get_option_descriptor(handle=0x806e8f8,option=6)
[umax] sane_get_option_descriptor 6
[dll] control_option(handle=0x806e8f8,option=6,action=0,value=0xbfffe850,info=(nil))
[umax] sane_control_option 6, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=6)
[umax] sane_get_option_descriptor 6
[dll] control_option(handle=0x806e8f8,option=6,action=1,value=0xbfffe18c,info=0xbfffe064)
[umax] sane_control_option 6, set value
[dll] get_option_descriptor(handle=0x806e8f8,option=7)
[umax] sane_get_option_descriptor 7
[dll] control_option(handle=0x806e8f8,option=7,action=0,value=0xbfffe850,info=(nil))
[umax] sane_control_option 7, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=8)
[umax] sane_get_option_descriptor 8
[dll] control_option(handle=0x806e8f8,option=8,action=0,value=0xbfffe850,info=(nil))
[umax] sane_control_option 8, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=9)
[umax] sane_get_option_descriptor 9
[dll] get_option_descriptor(handle=0x806e8f8,option=10)
[umax] sane_get_option_descriptor 10
[dll] get_option_descriptor(handle=0x806e8f8,option=11)
[umax] sane_get_option_descriptor 11
[dll] control_option(handle=0x806e8f8,option=11,action=0,value=0xbfffe850,info=(nil))
[umax] sane_control_option 11, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=12)
[umax] sane_get_option_descriptor 12
[dll] control_option(handle=0x806e8f8,option=12,action=0,value=0xbfffe850,info=(nil))
[umax] sane_control_option 12, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=13)
[umax] sane_get_option_descriptor 13
[dll] control_option(handle=0x806e8f8,option=13,action=0,value=0xbfffe850,info=(nil))
[umax] sane_control_option 13, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=14)
[umax] sane_get_option_descriptor 14
[dll] control_option(handle=0x806e8f8,option=14,action=0,value=0xbfffe850,info=(nil))
[umax] sane_control_option 14, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=15)
[umax] sane_get_option_descriptor 15
[dll] get_option_descriptor(handle=0x806e8f8,option=16)
[umax] sane_get_option_descriptor 16
[dll] get_option_descriptor(handle=0x806e8f8,option=17)
[umax] sane_get_option_descriptor 17
[dll] get_option_descriptor(handle=0x806e8f8,option=18)
[umax] sane_get_option_descriptor 18
[dll] get_option_descriptor(handle=0x806e8f8,option=19)
[umax] sane_get_option_descriptor 19
[dll] get_option_descriptor(handle=0x806e8f8,option=20)
[umax] sane_get_option_descriptor 20
[dll] get_option_descriptor(handle=0x806e8f8,option=21)
[umax] sane_get_option_descriptor 21
[dll] get_option_descriptor(handle=0x806e8f8,option=22)
[umax] sane_get_option_descriptor 22
[dll] get_option_descriptor(handle=0x806e8f8,option=23)
[umax] sane_get_option_descriptor 23
[dll] get_option_descriptor(handle=0x806e8f8,option=24)
[umax] sane_get_option_descriptor 24
[dll] get_option_descriptor(handle=0x806e8f8,option=25)
[umax] sane_get_option_descriptor 25
[dll] get_option_descriptor(handle=0x806e8f8,option=26)
[umax] sane_get_option_descriptor 26
[dll] get_option_descriptor(handle=0x806e8f8,option=27)
[umax] sane_get_option_descriptor 27
[dll] get_option_descriptor(handle=0x806e8f8,option=28)
[umax] sane_get_option_descriptor 28
[dll] get_option_descriptor(handle=0x806e8f8,option=29)
[umax] sane_get_option_descriptor 29
[dll] get_option_descriptor(handle=0x806e8f8,option=30)
[umax] sane_get_option_descriptor 30
[dll] get_option_descriptor(handle=0x806e8f8,option=31)
[umax] sane_get_option_descriptor 31
[dll] get_option_descriptor(handle=0x806e8f8,option=32)
[umax] sane_get_option_descriptor 32
[dll] get_option_descriptor(handle=0x806e8f8,option=33)
[umax] sane_get_option_descriptor 33
[dll] get_option_descriptor(handle=0x806e8f8,option=34)
[umax] sane_get_option_descriptor 34
[dll] control_option(handle=0x806e8f8,option=34,action=0,value=0xbfffe850,info=(nil))
[umax] sane_control_option 34, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=35)
[umax] sane_get_option_descriptor 35
[dll] get_option_descriptor(handle=0x806e8f8,option=36)
[umax] sane_get_option_descriptor 36
[dll] get_option_descriptor(handle=0x806e8f8,option=37)
[umax] sane_get_option_descriptor 37
[dll] get_option_descriptor(handle=0x806e8f8,option=38)
[umax] sane_get_option_descriptor 38
[dll] get_option_descriptor(handle=0x806e8f8,option=39)
[umax] sane_get_option_descriptor 39
[dll] get_option_descriptor(handle=0x806e8f8,option=40)
[umax] sane_get_option_descriptor 40
[dll] get_option_descriptor(handle=0x806e8f8,option=41)
[umax] sane_get_option_descriptor 41
[dll] get_option_descriptor(handle=0x806e8f8,option=42)
[umax] sane_get_option_descriptor 42
[dll] control_option(handle=0x806e8f8,option=42,action=0,value=0xbfffe850,info=(nil))
[umax] sane_control_option 42, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=43)
[umax] sane_get_option_descriptor 43
[dll] control_option(handle=0x806e8f8,option=43,action=0,value=0xbfffe850,info=(nil))
[umax] sane_control_option 43, get value
[dll] get_option_descriptor(handle=0x806e8f8,option=44)
[umax] sane_get_option_descriptor 44
[dll] get_option_descriptor(handle=0x806e8f8,option=45)
[umax] sane_get_option_descriptor 45
wire_read: unexpected EOF
-- | Peter Daum (gator@cs.tu-berlin.de) __o (+49 30) | http://www.cs.tu-berlin.de/~gator _'\<_ 691 46 35 | pgp messages welcome! _(_)/(_) ___________
-- Source code, list archive, and docs: http://www.mostang.com/sane/ To unsubscribe: echo unsubscribe sane-devel | mail majordomo@mostang.com