Operating System - Linux
1833451 Members
2928 Online
110052 Solutions
New Discussion

Compaq 20/40 DAT Hot Plug Tape Drive not detected

 
Jared Middleton
Frequent Advisor

Compaq 20/40 DAT Hot Plug Tape Drive not detected

We have a Compaq ProLiant DL580 G2 Server running Red Hat v7.3.
Linux does not seem to recognize the Compaq 20/40 DAT Hot Plug
tape drive.

The drive is connected to the integrated Compaq SmartArray 5i
RAID controller, which also controls the two internal 36GB SCSI
hard drives in a RAID 1 mirror.

When the server boots, the hardware (BIOS) detects the tape
drive on SCSI port 1, SCSI ID 0.

Side Note: The server also has second Compaq SmartArray RAID
controller managing external storage of 12 SCSI hard drives.

Here are the things we have checked...

Red Hat 7.3 kernel-2.4.18-10bigmem
===============================================================
[root]# mt -f /dev/st0 status
/dev/st0: No such device
===============================================================
[root]# cat /proc/scsi/scsi
Attached devices: none
===============================================================
[root]# modprobe st
[root]#

I think the empty result above is good, as opposed to getting
a "Can't locate module st" message.
===============================================================
[root]# ls /lib/modules/2.4.18-10bigmem/kernel/drivers/scsi/st*
/lib/modules/2.4.18-10bigmem/kernel/drivers/scsi/st.o
===============================================================
[root]# dmesg | grep st
SCSI subsystem driver Revision: 1.00
kmod: failed to exec /sbin/modprobe -s -k scsi_hostadapter,
errno = 2
Compaq CISS Driver (v 2.4.30)

There were other misc lines matching "st", but nothing which
seemed relevant to this issue.
===============================================================
[root]# lsmod
Module Size Used by Tainted: PF
st 30068 0 (unused)
nfsd 79168 8 (autoclean)
lockd 58880 1 (autoclean) [nfsd]
sunrpc 84148 1 (autoclean) [nfsd lockd]
autofs 12548 0 (autoclean) (unused)
tg3 45856 1
cpqasm 321760 20
cpqevt 9088 2 [cpqasm]
usb-ohci 22368 0 (unused)
usbcore 75872 1 [usb-ohci]
ext3 70912 9
jbd 53664 9 [ext3]
cciss 36800 14
sd_mod 12992 0 (unused)
scsi_mod 116100 2 [st cciss sd_mod]
===============================================================
[root]# cat /etc/modules.conf
alias parport_lowlevel parport_pc
alias scsi_hostadapter cciss
alias eth0 tg3
alias usb-controller usb-ohci
===============================================================
2 REPLIES 2
Stuart Browne
Honored Contributor

Re: Compaq 20/40 DAT Hot Plug Tape Drive not detected

Odd things..

I've never tried a Tape drive at ID 0, but from basic knowledge of SCSI systems, it seems like a bad idea. Bump it up to 2 or 3, and see what occurs.

If the 'dmesg' you executed there was right after a boot-up, then the Linux Kernel isn't seeing the tape drive at all. If the krenel doesn't see the tape drive, you don't have a hope of accessing it aftewards.

The fact that /proc/scsi/scsi is devoid of a device listing also odd. Do you have any normal SCSI controllers (i.e. NOT a RAID controller?) in the system? Move the tape onto that bus, and see if the kernel detects it.

According to some kernel documentation on the 'cciss' driver .. "You must enable 'SCSI tape drive support for Smart Array 5xxx' and 'SCSI support' in your kernel configuration to be able to use SCSI tape drives with your Smart Array 5xxx controller".

*blinks* ok, you should read this.. is a fun text file.. RedHat system:

/usr/share/doc/kernel-doc-*/cciss.txt

Has lots of details you'll find interesting with specific regard to SmartArray controllers..

Hope this helps!
One long-haired git at your service...
Jared Middleton
Frequent Advisor

Re: Compaq 20/40 DAT Hot Plug Tape Drive not detected

Stuart,

The info in your posting led me to what I needed. To summarize my solution...
I added the following lines to /etc/rc.d/rc.local:

# In order for the SCSI tape drive to work with the Compaq SMART
# Array Controller, the Compaq cciss driver must dynamically engage
# the SCSI core via the /proc filesystem after initialization.
# For more information see:
# /usr/share/doc/kernel-doc-2.4.18/cciss.txt

for x in /proc/driver/cciss/cciss[0-9]*; do
echo "engage scsi" > $x
done

Thanks,
Jared