Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Jan 2007 10:31:35 -0700
From:      "Kenneth D. Merry" <ken@freebsd.org>
To:        Kirill Ponazdyr <lists@codeangels.com>
Cc:        freebsd-hardware@freebsd.org
Subject:   Re: Dell 128T (HP 2/20) library on FCAL problem
Message-ID:  <20070129173135.GA59137@nargothrond.kdm.org>
In-Reply-To: <4841.195.162.161.47.1170089092.squirrel@www.codeangels.com>
References:  <4841.195.162.161.47.1170089092.squirrel@www.codeangels.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jan 29, 2007 at 17:44:52 +0100, Kirill Ponazdyr wrote:
> Hi,
> 
> I have a problem control our Dell 128T (HP 2/20) library connected via
> Fibrechannel to FreeBSD host.
> 
> The LUNs seem to be visible but problem is that library controller is
> reported as "Fixed Storage Array SCSI-0 device":
> 
> sa0 at isp0 bus 0 target 129 lun 0
> sa0: <HP Ultrium 1-SCSI E32L> Removable Sequential Access SCSI-3 device
> sa0: 100.000MB/s transfers
> pass1 at isp0 bus 0 target 129 lun 1
> pass1: <HP C7200 FC Interface 009t> Fixed Storage Array SCSI-0 device
> pass1: 100.000MB/s transfers
> 
> root@backup:~# camcontrol inquiry pass1
> pass1: <HP C7200 FC Interface 009t> Fixed Storage Array SCSI-0 device
> pass1: Serial Number A00PA7
> pass1: 100.000MB/s transfers , Tagged Queueing Enabled
> 
> 
> The mtx fails on pass1, chio as well:
> 
> root@backup:~# chio -f /dev/pass1 status
> chio: /dev/pass1: CHIOGPARAMS: Inappropriate ioctl for device
> 
> It seems as if the problem is actually on the Library side as it is
> recognized as array in linux as well, is there any way to force this LUN
> to be recognized as changer device despite of it claiming to be an array?

Hmm.  That's unfortunate.  I wonder why they're doing that?  You might
check the manual for any jumper settings that will change the behavior.

If you want to get it to attach, go into src/sys/cam/scsi/scsi_ch.c.  In
chasync(), you'll see the following check:

		if (SID_TYPE(&cgd->inq_data)!= T_CHANGER)
			break;

The best way to do it would be to compare the inquiry data and not break
out of the case statement if the inquiry data matches.  The cheesy way to
do it would be:

		if ((SID_TYPE(&cgd->inq_data) != T_CHANGER)
		 && (SID_TYPE(&cgd->inq_data) != T_STORARRAY))
			break;

Recompile and reinstall your kernel, and anything that probes as an array
should have a ch(4) device attached to it.

> Does anyone have a 128T / HP2/20 working under BSD?

Ken
-- 
Kenneth Merry
ken@FreeBSD.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070129173135.GA59137>