Wrong geometries with a Silicon Image CMD-0680 Medley RAID

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I recently bought a Connectland PCI RAID ATA 133 controller card,
which has a Silicon Image CMD-0680 chipset and uses Silicon Image's
"Medley" software in Windows. I am having problems getting Linux to
correctly recognise a RAID 0 set attached to this card. It gets the
geometry of the physical disks completely wrong.

Here's what I've tried:

I first connected 2 identical disk to the controller, each one as the
primary disk of the card's 2 separate IDE channels. I then used these
disks to create RAID 0 set using the card's firmware utility with a
4096 byte stripe size.

I picked this stripe size because I mistook bytes for kbytes and
thought that having a stripe size equal to the block (and cluster)
size would be optimal.

I then booted a Windows 98 Second Edition Full CD-ROM and used it to
partition the RAID drive, half for windows and half for Linux. This
worked fine after I realised that although win98se fdisk doesn't
display the right sizes for big disks it will partition them properly
if you give it a percentage of space to allocate to a partition
instead of a size.

I then rebooted, formatted the first partition and then installed
win98se on it which worked fine and windows now runs without any
(unusual ;-) problems.

I then booted Linux from another hard drive connected to my
motherboard's controller and compiled and installed a new kernel with
added support for my new RAID card (tried kernel versions 2.4.19,
2.4.22 & 2.4.23).

When this new kernel starts I get a message saying the card is
properly recognised as a CMD-0680. Then the two disks are recognised,
but with different geometries and warnings about partition tables on the
second disk.

why is it even trying to get partition tables on physical disk that are
part of a RAID set?

Then I get a message saying that the kernel has found a RAID 0 set
consisting of 1 disk (obviously this should be 2). Here is the IDE and
RAID parts of the dmesg output. This is for kernel 2.4.23 and hde,
hdg, ide2 & ide3 are the devices that make up the RAID array:


Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller at PCI slot 00:07.1
PIIX4: chipset revision 1
PIIX4: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:DMA
    ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA
SiI680: IDE controller at PCI slot 00:08.0
SiI680: chipset revision 2
SiI680: not 100% native mode: will probe irqs later
SiI680: BASE CLOCK == 133 
    ide2: MMIO-DMA , BIOS settings: hde:pio, hdf:pio
    ide3: MMIO-DMA , BIOS settings: hdg:pio, hdh:pio
hda: WDC WD200EB-00BHF0, ATA DISK drive
blk: queue c031aaa0, I/O limit 4095Mb (mask 0xffffffff)
hdd: CREATIVE CD-RW RW2410E, ATAPI CD/DVD-ROM drive
hde: ST340014A, ATA DISK drive
blk: queue c031b378, I/O limit 4095Mb (mask 0xffffffff)
hdg: ST340016A, ATA DISK drive
blk: queue c031b7e4, I/O limit 4095Mb (mask 0xffffffff)
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
ide2 at 0xc4807080-0xc4807087,0xc480708a on irq 11
ide3 at 0xc48070c0-0xc48070c7,0xc48070ca on irq 11
hda: attached ide-disk driver.
hda: host protected area => 1
hda: 39102336 sectors (20020 MB) w/2048KiB Cache, CHS=2434/255/63, UDMA(33)
hde: attached ide-disk driver.
hde: host protected area => 1
hde: 78165360 sectors (40021 MB) w/2048KiB Cache, CHS=4865/255/63, UDMA(100)
hdg: attached ide-disk driver.
hdg: host protected area => 1
hdg: 78165360 sectors (40021 MB) w/2048KiB Cache, CHS=77545/16/63, UDMA(100)
Partition check:
 /dev/ide/host0/bus0/target0/lun0:<7>ldm_validate_partition_table(): Found an
MS-DOS partition table, not a dynamic disk.
 p1 p2 < p5 p6 p7 >
 /dev/ide/host2/bus0/target0/lun0:<7>ldm_validate_partition_table(): Found an
MS-DOS partition table, not a dynamic disk.
 p1 p2 < >
 /dev/ide/host2/bus1/target0/lun0:<7>ldm_validate_partition_table(): No MS-DOS
partition table found.
 unknown partition table
Guestimating sector 39101311 for superblock
Guestimating sector 78139904 for superblock
Guestimating sector 78164335 for superblock
 ataraid/d0:<7>ldm_validate_partition_table(): No MS-DOS partition table found.
 unknown partition table
Drive 1 is 38166 Mb (34 / 0) 
Raid0 array consists of 1 drives. 
Guestimating sector 39101311 for superblock
Guestimating sector 78139904 for superblock
driver for Silicon Image(tm) Medley(tm) hardware version 0.0.1
md: raid0 personality registered as nr 2
md: md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.


I then tried many different combinations of CONFIG_BLK_DEV_CMD64X,
CONFIG_BLK_DEV_CMD680 and also the ATA RAID, Medley software RAID and
software RAID options when compiling the various kernels, but the
symptoms didn't change.

As per the instructions of the ATA-RAID-HOWTO I passed kernel
parameters like ideX=IOPort,IOPort,IRQ using IO Addresses & IRQs which
I got from windows device manager. The HOWTO, which only covers the
Promise cards in any detail, says that you have to add 2 to the second
IO Port number, which didn't work for my CMD-0680 so I also tried it
without the added 2, but it still didn't work.

I also tried connecting one of the disks to my motherboard's IDE
controller and using the BIOS utility to autodetect the drive's
geometry (the RAID card's firmware is too stupid to tell you it's idea
of the geometry). I then tried passing each of the three sets of C/H/S
numbers (LBA, large & normal) as kernel parameters (eg. hde=C,H,S
hdg=C,H,S), but none of these worked either.

None of the geometries my motherboard reported matched what Linux
detected.  I also tried hdg=4865,255,63 which is what Linux thinks
the first disk is and also the same geometry of the RAID set except
that the RAID set has twice as many cylinders, which made sense to me,
but again it didn't work.

PartionMagic 8.0 Demo under windows says that the geometry of the RAID
set is 9730 cylinders, 255 heads & 63 sectors, which strangely enough
is exactly what Linux fdisk thinks that the geometry of the RAID set
is, even though it added only one disk. Perhaps this means only one of
the disks is incorrectly detected by the kernel?

I have tried searching several permutations of the card and chipset
name and have come up with many requests for help but no solutions
that I haven't already tried.

The output of the fdisk expert mode print command for both the IDE
drives and RAID set follow (the device names are a little different
because I'm using devfs):


Disk /dev/ataraid/disc0/disc: 255 heads, 63 sectors, 9730 cylinders

Nr AF  Hd Sec  Cyl  Hd Sec  Cyl    Start     Size ID
 1 00   0   0    0   0   0    0        0        0 00
 2 00   0   0    0   0   0    0        0        0 00
 3 00   0   0    0   0   0    0        0        0 00
 4 00   0   0    0   0   0    0        0        0 00


Disk /dev/hde: 255 heads, 63 sectors, 4865 cylinders

Nr AF  Hd Sec  Cyl  Hd Sec  Cyl    Start     Size ID
 1 80   1   1    0 254  63  768       63 78156162 0c
 2 00   0   1  769 254  63  513 78156225 78156225 0f
 3 00   0   0    0   0   0    0        0        0 00
 4 00   0   0    0   0   0    0        0        0 00
 5 00   0   0    0   0   0    0        0        0 00


Disk /dev/hdg: 16 heads, 63 sectors, 77545 cylinders

Nr AF  Hd Sec  Cyl  Hd Sec  Cyl    Start     Size ID
 1 00   0   0    0   0   0    0        0        0 00
 2 00   0   0    0   0   0    0        0        0 00
 3 00   0   0    0   0   0    0        0        0 00
 4 00   0   0    0   0   0    0        0        0 00


I apologise for the length of this post but it seemed better to
include all relevant detail rather than sending a "My Computer doesn't
work, please fix it" type message.

Thanks for your time,
Cian Moriarty



__________________________________
Do you Yahoo!?
New Yahoo! Photos - easier uploading and sharing.
http://photos.yahoo.com/




[Index of Archives]     [Linux RAID]     [Linux Device Mapper]     [Linux IDE]     [Linux SCSI]     [Kernel]     [Linux Books]     [Linux Admin]     [GFS]     [RPM]     [Yosemite Campgrounds]     [AMD 64]

  Powered by Linux