Bug 226044

Summary: HAL doesn't recognize my SCSI scanner
Product: [openSUSE] openSUSE 10.2 Reporter: Johannes Meixner <jsmeix>
Component: HotplugAssignee: Hannes Reinecke <hare>
Status: RESOLVED WONTFIX QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None    
Version: RC 5   
Target Milestone: ---   
Hardware: i386   
OS: SUSE Other   
Whiteboard:
Found By: Development Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: output of lshal
output of dmesg
/tmp/lshal.2.out for comment #4
/tmp/messages.out for comment #4

Description Johannes Meixner 2006-12-05 13:40:40 UTC
I have the following SCSI scanner:
lsscsi -c (note that the vendor entry is empty for this device)
------------------------------------------------------------------------------
Host: scsi0 Channel: 00 Target: 06 Lun: 00
  Vendor:          Model: ScanMaker X12USL Rev: 1.30
  Type:   Scanner                          ANSI SCSI revision: 02
------------------------------------------------------------------------------
lsscsi -v
------------------------------------------------------------------------------
[0:0:6:0]    scanner          ScanMaker X12USL 1.30  -       
  dir: /sys/bus/scsi/devices/0:0:6:0  [/sys/devices/platform/host0/target0:0:6/0:0:6:0]
------------------------------------------------------------------------------

I have the following SCSI host adapter
lspci -v
------------------------------------------------------------------------------
02:0b.0 SCSI storage controller: Advanced System Products, Inc ABP940-U / ABP960-U (rev 03)
        Subsystem: Advanced System Products, Inc ASC1300 SCSI Adapter
        Flags: bus master, medium devsel, latency 64, IRQ 169
        I/O ports at b800 [size=256]
        Memory at feafec00 (32-bit, non-prefetchable) [size=256]
        Expansion ROM at 30000000 [disabled] [size=64K]
------------------------------------------------------------------------------
which is recognized by HAL but there is nothing in "lshal" about
my SCSI scanner.

The SCSI kernel module for the host adapter is advansys.
It was not automatically set up and therefore I did it manually
so that it is loaded during boot via /etc/sysconfig/kernel
------------------------------------------------------------------------------
INITRD_MODULES="processor thermal advansys piix fan jbd ext3 edd"
------------------------------------------------------------------------------

By the way:
The scanner works fine.
Comment 1 Johannes Meixner 2006-12-05 13:41:15 UTC
Created attachment 108343 [details]
output of lshal
Comment 2 Johannes Meixner 2006-12-05 13:41:45 UTC
Created attachment 108344 [details]
output of dmesg
Comment 3 Danny Al-Gaaf 2006-12-05 14:03:50 UTC
please start hal with: hald --daemon=yes --verbose=yes --use-syslog

wait until hal is complete available via lshal, attach the scanner and attach the part of /var/log/messages since the scanner was added, to this bug. 

Also the related output of 'udevmonitor --env' would be useful. Btw. Worked this before with any other SUSE release?
Comment 4 Johannes Meixner 2006-12-05 14:42:05 UTC
I cannot attach a SCSI device during runtime.
It is connected and switched on since booting the system.
I don't know if it would have worked with any version before because
openSUSE 10.2 it the first version where the SCSI kernel module "advansys"
works for me.

What I did now is:

# echo HALTEST | logger

# rchal stop
Shutting down HAL daemon                              done

# udevmonitor --env
udevmonitor prints the received event from the kernel [UEVENT]
and the event which udev sends out after rule processing [UDEV]

[there are no further messages in udevmonitor]

# lshal >/tmp/lshal.2.out

# grep -A 10000 HALTEST /var/log/messages >/tmp/messages.out

[I switched the scanner off and on with the switch on the scanner
but again there are no further messages in udevmonitor]

[I switched the scanner off and unplugged it from the power supply
and again there are no further messages in udevmonitor
and the scanner is still shown in lsscsi - i.e. it seems this
doesn't cause any udev event]

[I re-plugged power and switched it on angain and as expected there
are no further messages in udevmonitor]
Comment 5 Johannes Meixner 2006-12-05 14:43:38 UTC
Created attachment 108355 [details]
/tmp/lshal.2.out for comment #4
Comment 6 Johannes Meixner 2006-12-05 14:44:35 UTC
Created attachment 108356 [details]
/tmp/messages.out for comment #4
Comment 7 Johannes Meixner 2006-12-05 14:46:45 UTC
Am I right that it is because udevmonitor shows no event
so that HAL cannot recognize it?

If yes, do you know how I can set up udev so that it works?
(Or please re-assign it to a udev expert.)
Comment 8 Johannes Meixner 2006-12-05 15:07:06 UTC
I did one more test:
I disconnected the (switched on) scanner from the SCSI cable
and again udevmonitor shows no event and even now it is still
listed in "lsscsi" and even after re-connection udevmonitor
shows no event (the scanner still works - puhhh!).
Comment 9 Danny Al-Gaaf 2006-12-17 16:40:29 UTC
If udev show no events, HAL can't detect the hardware. You need a udev event to get this running.

I reassign this to Hannes. 
Comment 10 Johannes Meixner 2007-01-04 14:45:35 UTC
For your information:
(I mentioned the problem on the SANE mailing list)
--------------------------------------------------------------------------
Date: Wed, 03 Jan 2007 20:40:09 +0100
From: ...
To: <sane-devel@lists.alioth.debian.org>
Subject: Re: [sane-devel] Sane and HAL
...
That's a problem with the SCSI bus: At least its simple variants, as
used by scanners, are not hotplugging-aware, so there is no way to
detect if a device is powered on or off. (BTW, better avoid to
(dis-)connect SCSI devices while any device on the bus is powered
on: this can destroy the driver transistors, no joke. And _never_ do
this with NCR5380 SCSI bus chips. For these chips, fortunately quite
old ones and today not often found in use, it is a safe bet that
they are broken after hotplugging ;)
--------------------------------------------------------------------------
Comment 11 Hannes Reinecke 2007-01-08 09:28:15 UTC
First of all: why wasn't it automatically detected / loaded during boot?
What does 'lspci' show? Can you please attach the output of 'lspci' and 'lspci -nv'?
Comment 12 Johannes Meixner 2007-01-08 10:00:20 UTC
I don't know why it wasn't automatically detected/loaded during boot.
There is a seperated bug report regarding this issue: bug #227892.

lspci
---------------------------------------------------------------------------
02:0b.0 SCSI storage controller: Advanced System Products,
 Inc ABP940-U / ABP960-U (rev 03)02
---------------------------------------------------------------------------

lspci -nv
---------------------------------------------------------------------------
02:0b.0 Class 0100: 10cd:1300 (rev 03)
        Subsystem: 10cd:1310
        Flags: bus master, medium devsel, latency 64, IRQ 169
        I/O ports at b800 [size=256]
        Memory at feafec00 (32-bit, non-prefetchable) [size=256]
        Expansion ROM at 30000000 [disabled] [size=64K]
---------------------------------------------------------------------------
Comment 14 Hannes Reinecke 2007-01-11 12:52:44 UTC
And this is as expected. This driver is broken for 64bit.
And I don't think we'll fix it anytime soon, if at all :-(