I have read Chiaki and Eric's discussion of Chiaki's problem and Eric's 
[possible] solution, and it is timely that I find myself in a related
boat (and I provide you an almost-as-long description).

My deal is that I recently acquired a SCSI 5-disc changer which is not
on the device_list (formerly known as the blacklist).  I now wonder if
this is part of my problem, but let me describe it as it appears to me.

Configuration is a dual Pentium 133 on a Micronics M54Pe motherboard.
This is an old beast, but seems to serve me well so far as a server.
Currently running 2.2.14, but tried 2.2.13 as well.  Haven't dived 
into experimental, nor backtracked through 2.2.x.

The SCSI controller to which the CD changer is connected is, ironically,
a BusLogic BT-930.  I have used the controller for other devices in
the past and even recently a hard disk at the same time as the CD 
changer was connected.

The CD changer is a "LA Sound CDX-7405".  It has a 5-disc magazine,
and reportedly is a 4x drive.  Nifty keen.  But no mention of it 
in scsi.c as I mentioned.

Here's the problem I experience.  Since I boot off of IDE, the SCSI
adapter is probed with a module.  So far, I'm doing this manually
so as not to hang my boot-up.  So, here goes--I'm doing this as I write
it:

# modprobe BusLogic

In another term, I have 'tail -f /var/log/messages' going:

scsi: ***** BusLogic SCSI Driver Version 2.1.15 of 17 August 1998 *****
scsi: Copyright 1995-1998 by Leonard N. Zubkoff <[EMAIL PROTECTED]>
scsi0: Configuring BusLogic Model BT-930 PCI Ultra SCSI Host Adapter
scsi0:   Firmware Version: 5.02, I/O Address: 0xF800, IRQ Channel: 9/Level
scsi0:   PCI Bus: 0, Device: 13, Address: 0xFDFFF000, Host Adapter SCSI ID: 7
scsi0:   Parity Checking: Enabled, Extended Translation: Enabled
scsi0:   Synchronous Negotiation: Ultra, Wide Negotiation: Disabled
scsi0:   Disconnect/Reconnect: Enabled, Tagged Queuing: Enabled
scsi0:   Driver Queue Depth: 255, Scatter/Gather Limit: 128 segments
scsi0:   Tagged Queue Depth: Automatic, Untagged Queue Depth: 3
scsi0:   Error Recovery Strategy: Default, SCSI Bus Reset: Enabled
scsi0:   SCSI Bus Termination: Enabled, SCAM: Disabled
scsi0: *** BusLogic BT-930 Initialized Successfully ***
scsi0 : BusLogic BT-930
scsi : 1 host.
  Vendor: LASOUND   Model: CDX7405           Rev: 3.10
  Type:   CD-ROM                             ANSI SCSI revision: 02
  Vendor: LASOUND   Model: CDX7405           Rev: 3.10
  Type:   CD-ROM                             ANSI SCSI revision: 02
  Vendor: LASOUND   Model: CDX7405           Rev: 3.10
  Type:   CD-ROM                             ANSI SCSI revision: 02
  Vendor: LASOUND   Model: CDX7405           Rev: 3.10
  Type:   CD-ROM                             ANSI SCSI revision: 02
  Vendor: LASOUND   Model: CDX7405           Rev: 3.10
  Type:   CD-ROM                             ANSI SCSI revision: 02

>From the looks of things, you'd think everything was cool.  But I 
don't get the summary of the what type of devices it found.  (Don't
you usually get a "Detected removable media at scsi0, channel 0,
id 3, lun 0" kind of message?)

But the problem is that modprobe is still running!   Even right now,
and it's been 4 minutes since I executed it.  The load is now 0.99
(I assume because one processor is spinning in the kernel trying 
to complete the modprobe.)  I don't see any more in /var/log/messages.

# cat /proc/scsi/scsi
Attached devices: 
Host: scsi0 Channel: 00 Id: 03 Lun: 00
  Vendor: LASOUND  Model: CDX7405          Rev: 3.10
  Type:   CD-ROM                           ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 03 Lun: 01
  Vendor: LASOUND  Model: CDX7405          Rev: 3.10
  Type:   CD-ROM                           ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 03 Lun: 02
  Vendor: LASOUND  Model: CDX7405          Rev: 3.10
  Type:   CD-ROM                           ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 03 Lun: 03
  Vendor: LASOUND  Model: CDX7405          Rev: 3.10
  Type:   CD-ROM                           ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 03 Lun: 04
  Vendor: LASOUND  Model: CDX7405          Rev: 3.10
  Type:   CD-ROM                           ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 03 Lun: 06
  Vendor:          Model:                  Rev:     
  Type:   <NULL>                ANSI SCSI revision: ffffffff

This is very interesting indeed!  A 5-slot changer should have 5 luns,
no?  And they should be reasonable!  That last lun is obviously
bogus, and I wonder if there is a hangup somewhere with it?  The last
thing I can try (which will generate an oops), is to try to mount
/dev/scd0 anyway.  I don't know if this is wise, but I thought I'd
try it anyway, 'cause the system's not dead yet!

Okay, when I do this, the 

Detected scsi CD-ROM sr0 at scsi0, channel 0, id 3, lun 0
Detected scsi CD-ROM sr1 at scsi0, channel 0, id 3, lun 1
Detected scsi CD-ROM sr2 at scsi0, channel 0, id 3, lun 2
Detected scsi CD-ROM sr3 at scsi0, channel 0, id 3, lun 3
Detected scsi CD-ROM sr4 at scsi0, channel 0, id 3, lun 4

shows up in the log like it should.  But then I also get

scsi : aborting command due to timeout : pid 14, scsi0, channel 0, id 3, lun 6  Test 
Unit Ready c0 00 00 00 00 
scsi0: Aborting CCB #106841 to Target 3
scsi0: CCB #106841 to Target 3 Aborted
scsi : aborting command due to timeout : pid 14, scsi0, channel 0, id 3, lun 6  Test 
Unit Ready c0 00 00 00 00 
scsi0: Aborting CCB #106842 to Target 3
scsi0: CCB #106842 to Target 3 Aborted
scsi : aborting command due to timeout : pid 17, scsi0, channel 0, id 5, lun 0  Test 
Unit Ready 00 00 00 00 00 
scsi0: Aborting CCB #106846 to Target 5
scsi0: CCB #106846 to Target 5 Aborted
scsi : aborting command due to timeout : pid 18, scsi0, channel 0, id 6, lun 0  Test 
Unit Ready 00 00 00 00 00 
scsi0: Aborting CCB #106847 to Target 6
SCSI host 0 abort (pid 18) timed out - resetting
SCSI bus is being reset for host 0 channel 0.
scsi0: Resetting BusLogic BT-930 due to Target 6
scsi0: *** BusLogic BT-930 Initialized Successfully ***

wait_on_bh, CPU 0:
irq:  0 [0 0]
bh:   1 [0 1]
<[c010b35d]> <[c01a0c4c]> <[c0140d93]> <[c01a17eb]> <[c01a6c10]> <[c0198c84]>  
<5>scsi0: Target 3: Queue Depth 3, Asynchronous
Unable to handle kernel NULL pointer dereference at virtual address 00000003
current->tss.cr3 = 07142000, %cr3 = 07142000
*pde = 00000000
Oops: 0000
CPU:    1

Meanwhile, there is a lot of "ka-chunking" in my changer, and Look! The 
modprobe finally finished!  At least that's what the /var/log/messages
shows.  There's a whole bunch of similar spewage on the console, but it
scrolls way too fast to catch any of it.

I actually, forgot to use '-t iso9660' in my mount command, so the mount
did fail.  If I try it again, it says "mount: /dev/scd0 has wrong major 
or minor number".  So I though let's move to lun 1

# mount -t iso9660 /dev/scd1 /local/cdx01

And this works ! (It didn't last night... Hmmm...)

So I get bold...

# mount -t iso9660 /dev/scd2 /local/cdx02

No log output, here we have a crash:  (copied from console)

Kernel panic: scsi_free: Trying to free unused memory
In swapperm task - not syncing

and everything's pretty much dead after that.


Like I said, I got many oops last night the first time I tried.

Incidentally, this kernel is compiled with "Probe all LUNs" 
enabled.  I tried a kernel with it not enabled, and I could only
mount the first slot--to be expected, since scsi.c doesn't know
this device, I guess.

If more information is needed, I'll do my best.  What is the best
course of action to get my changer up and running?


Brendan Miller

-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]

Reply via email to