I picked up some IBM ServeRAID M1015 cards from ebay (HT odditory), and they came with software version 4.11.00 (Aug 6, 2009) firmware version 20.1.1-0049. I decided to update them to the latest firmware available from LSI for the 9240-8i card. In case it is useful to anyone, here are my notes from the process.
Quick background. I am building a linux server in a Norco RPC-4224 case with a Supermicro X8DTH-F motherboard. So far I have 12 Samsung HD204UI drives. When I plugged in three M1015 cards (each connected to 4 HDDs) and booted into linux (Archlinux, kernel 2.6.36), the boot process stopped for a couple minutes at the Udev event probing stage. This eventually timed out and continued booting, but there were other problems as well, and fdisk -l could not see the HDDs. I found that if I took out all but one of the M1015 cards then I could boot normally and fdisk -l saw 8 HDDs when I connected two mini-SAS cables to the single M1015 card. I tried a couple linux live USB distros (Knoppix, Ubuntu daily with kernel 2.6.37), and they had the same problems. Next, I tried Solaris snv_151a, and although it did not come with LSI drivers like the linux distros did, I was able to install the LSI Solaris drivers and plug in two M1015 cards and see all the drives connected to both cards with the format command.
Since I want to run linux on this server, not Solaris (nor Windows), I needed to either get these cards working, or switch to another type of card. I decided to try flashing the firmware on the cards to the latest from LSI.
I downloaded the latest firmware file for the LSI 9240-8i, which was version 20.10-1-0020 (Dec 2010). The LSI firmware updates for their RAID cards use the MegaCLI software (as opposed to SAS2FLSH). I decided to use the DOS MEGACLI.EXE program to do the flash.
I used a FreeDOS bootable USB flash drive (previously created with UNetbootin), copied MEGACLI.EXE and the imr_fw.rom file over to the USB drive, and booted into FreeDOS with only one of the M1015 cards plugged in (I wanted to do the flash one at a time, and I do not know if you can do more than one at a time).
FreeDOS mounts the USB drive as C, so I typed 'C:' to switch to the C drive, and then, since the files I copied were in the root directory, I simply ran the megacli program to do the flash (as specified in the text file that came with the firmware file):
and after about 2 minutes, the flash process completed successfully and I rebooted.
Upon reboot, the boot process paused for about a minute after displaying
and then it displayed
for about 20 seconds. Then the boot process continued normally, with the LSI BIOS displaying the info about JBODs and so on. I was concerned that the boot process was taking a long time with the new firmware, but upon another reboot, I found that it was just a one time thing after the firmware flash. Further boots were as quick as they were before the firmware flash.
I flashed two more of the M1015 cards (one at a time), then I plugged in all 3 cards, and connected 4 HDDs to each card, and booted into Archlinux. The boot process was normal, and I was able to see all 12 drives individually when I ran fdisk -l. Success!
Well, mostly. I did notice in the bootup log that there was an error message that I don't follow. Further testing will be needed. In case anyone is interested, here is an excerpt from dmesg:
Quick background. I am building a linux server in a Norco RPC-4224 case with a Supermicro X8DTH-F motherboard. So far I have 12 Samsung HD204UI drives. When I plugged in three M1015 cards (each connected to 4 HDDs) and booted into linux (Archlinux, kernel 2.6.36), the boot process stopped for a couple minutes at the Udev event probing stage. This eventually timed out and continued booting, but there were other problems as well, and fdisk -l could not see the HDDs. I found that if I took out all but one of the M1015 cards then I could boot normally and fdisk -l saw 8 HDDs when I connected two mini-SAS cables to the single M1015 card. I tried a couple linux live USB distros (Knoppix, Ubuntu daily with kernel 2.6.37), and they had the same problems. Next, I tried Solaris snv_151a, and although it did not come with LSI drivers like the linux distros did, I was able to install the LSI Solaris drivers and plug in two M1015 cards and see all the drives connected to both cards with the format command.
Since I want to run linux on this server, not Solaris (nor Windows), I needed to either get these cards working, or switch to another type of card. I decided to try flashing the firmware on the cards to the latest from LSI.
I downloaded the latest firmware file for the LSI 9240-8i, which was version 20.10-1-0020 (Dec 2010). The LSI firmware updates for their RAID cards use the MegaCLI software (as opposed to SAS2FLSH). I decided to use the DOS MEGACLI.EXE program to do the flash.
I used a FreeDOS bootable USB flash drive (previously created with UNetbootin), copied MEGACLI.EXE and the imr_fw.rom file over to the USB drive, and booted into FreeDOS with only one of the M1015 cards plugged in (I wanted to do the flash one at a time, and I do not know if you can do more than one at a time).
FreeDOS mounts the USB drive as C, so I typed 'C:' to switch to the C drive, and then, since the files I copied were in the root directory, I simply ran the megacli program to do the flash (as specified in the text file that came with the firmware file):
Code:
> megacli -adpfwflash -f imr_fw.rom -a0
Upon reboot, the boot process paused for about a minute after displaying
Code:
LSI MegaRAID SAS-MFI BIOS
Version 4.20.00 (Build November 19, 2010)
Copyright(c) 2010 LSI Corporation
Code:
F/W Initializing Devices 0%
I flashed two more of the M1015 cards (one at a time), then I plugged in all 3 cards, and connected 4 HDDs to each card, and booted into Archlinux. The boot process was normal, and I was able to see all 12 drives individually when I ran fdisk -l. Success!
Well, mostly. I did notice in the bootup log that there was an error message that I don't follow. Further testing will be needed. In case anyone is interested, here is an excerpt from dmesg:
Code:
megasas: 00.00.04.17.1-rc1 Thu. Oct. 29, 11:41:51 PST 2009
megasas: 0x1000:0x0073:0x1014:0x03b1: bus 3:slot 0:func 0
megaraid_sas 0000:03:00.0: PCI INT A -> GSI 26 (level, low) -> IRQ 26
megaraid_sas 0000:03:00.0: setting latency timer to 64
megasas: FW now in Ready state
GHES: Generic hardware error source: 0 notified via NMI is not supported!
scsi6 : LSI SAS based MegaRAID driver
GHES: Generic hardware error source: 1 notified via POLL is not supported!
scsi 6:0:9:0: Direct-Access ATA SAMSUNG HD204UI 0001 PQ: 0 ANSI: 5
sd 6:0:9:0: Attached scsi generic sg1 type 0
sd 6:0:9:0: [sdb] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
scsi 6:0:10:0: Direct-Access ATA SAMSUNG HD204UI 0001 PQ: 0 ANSI: 5
sd 6:0:10:0: Attached scsi generic sg2 type 0
sd 6:0:10:0: [sdc] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
scsi 6:0:11:0: Direct-Access ATA SAMSUNG HD204UI 0001 PQ: 0 ANSI: 5
sd 6:0:11:0: Attached scsi generic sg3 type 0
sd 6:0:9:0: [sdb] Write Protect is off
sd 6:0:9:0: [sdb] Mode Sense: 73 00 00 08
sd 6:0:11:0: [sdd] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
scsi 6:0:12:0: Direct-Access ATA SAMSUNG HD204UI 0001 PQ: 0 ANSI: 5
sd 6:0:12:0: Attached scsi generic sg4 type 0
sd 6:0:9:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 6:0:10:0: [sdc] Write Protect is off
sd 6:0:10:0: [sdc] Mode Sense: 73 00 00 08
sd 6:0:12:0: [sde] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
sd 6:0:10:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
megasas: 0x1000:0x0073:0x1014:0x03b1: bus 132:slot 0:func 0
megaraid_sas 0000:84:00.0: PCI INT A -> GSI 50 (level, low) -> IRQ 50
megaraid_sas 0000:84:00.0: setting latency timer to 64
megasas: FW now in Ready state
sdb: unknown partition table
sdc: unknown partition table
scsi7 : LSI SAS based MegaRAID driver
scsi 7:0:9:0: Direct-Access ATA SAMSUNG HD204UI 0001 PQ: 0 ANSI: 5
sd 7:0:9:0: Attached scsi generic sg5 type 0
sd 7:0:9:0: [sdf] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
scsi 7:0:10:0: Direct-Access ATA SAMSUNG HD204UI 0001 PQ: 0 ANSI: 5
sd 7:0:10:0: Attached scsi generic sg6 type 0
sd 7:0:10:0: [sdg] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
scsi 7:0:11:0: Direct-Access ATA SAMSUNG HD204UI 0001 PQ: 0 ANSI: 5
sd 7:0:11:0: Attached scsi generic sg7 type 0
sd 7:0:11:0: [sdh] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
scsi 7:0:12:0: Direct-Access ATA SAMSUNG HD204UI 0001 PQ: 0 ANSI: 5
sd 7:0:12:0: Attached scsi generic sg8 type 0
sd 7:0:10:0: [sdg] Write Protect is off
sd 7:0:10:0: [sdg] Mode Sense: 73 00 00 08
sd 7:0:12:0: [sdi] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
sd 7:0:10:0: [sdg] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 6:0:9:0: [sdb] Attached SCSI disk
megasas: 0x1000:0x0073:0x1014:0x03b1: bus 134:slot 0:func 0
megaraid_sas 0000:86:00.0: PCI INT A -> GSI 56 (level, low) -> IRQ 56
megaraid_sas 0000:86:00.0: setting latency timer to 64
megasas: FW now in Ready state
sd 7:0:12:0: [sdi] Write Protect is off
sd 7:0:12:0: [sdi] Mode Sense: 73 00 00 08
sd 6:0:10:0: [sdc] Attached SCSI disk
sd 7:0:12:0: [sdi] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sdg: unknown partition table
scsi8 : LSI SAS based MegaRAID driver
scsi 8:0:14:0: Direct-Access ATA SAMSUNG HD204UI 0001 PQ: 0 ANSI: 5
sd 8:0:14:0: Attached scsi generic sg9 type 0
sd 8:0:14:0: [sdj] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
scsi 8:0:15:0: Direct-Access ATA SAMSUNG HD204UI 0001 PQ: 0 ANSI: 5
sd 8:0:15:0: Attached scsi generic sg10 type 0
sd 8:0:15:0: [sdk] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
sdi: unknown partition table
scsi 8:0:16:0: Direct-Access ATA SAMSUNG HD204UI 0001 PQ: 0 ANSI: 5
sd 8:0:16:0: Attached scsi generic sg11 type 0
sd 8:0:14:0: [sdj] Write Protect is off
sd 8:0:14:0: [sdj] Mode Sense: 73 00 00 08
sd 8:0:16:0: [sdl] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
scsi 8:0:17:0: Direct-Access ATA SAMSUNG HD204UI 0001 PQ: 0 ANSI: 5
sd 8:0:17:0: Attached scsi generic sg12 type 0
sd 8:0:14:0: [sdj] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 8:0:17:0: [sdm] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
sd 8:0:16:0: [sdl] Write Protect is off
sd 8:0:16:0: [sdl] Mode Sense: 73 00 00 08
sd 8:0:16:0: [sdl] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 8:0:17:0: [sdm] Write Protect is off
sd 8:0:17:0: [sdm] Mode Sense: 73 00 00 08
sd 6:0:11:0: [sdd] Write Protect is off
sd 6:0:11:0: [sdd] Mode Sense: 73 00 00 08
sd 7:0:10:0: [sdg] Attached SCSI disk
sd 8:0:17:0: [sdm] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sdj: unknown partition table
sd 6:0:11:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 6:0:12:0: [sde] Write Protect is off
sd 6:0:12:0: [sde] Mode Sense: 73 00 00 08
sd 6:0:12:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 7:0:12:0: [sdi] Attached SCSI disk
sdl: unknown partition table
sdm: unknown partition table
sd 8:0:14:0: [sdj] Attached SCSI disk
sd 8:0:16:0: [sdl] Attached SCSI disk
sd 8:0:17:0: [sdm] Attached SCSI disk
sd 7:0:9:0: [sdf] Write Protect is off
sd 7:0:9:0: [sdf] Mode Sense: 73 00 00 08
sd 7:0:9:0: [sdf] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 7:0:11:0: [sdh] Write Protect is off
sd 7:0:11:0: [sdh] Mode Sense: 73 00 00 08
sd 7:0:11:0: [sdh] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 8:0:15:0: [sdk] Write Protect is off
sd 8:0:15:0: [sdk] Mode Sense: 73 00 00 08
sd 8:0:15:0: [sdk] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sdd: unknown partition table
sde: unknown partition table
sdf: sdf1
sdf1: <solaris: [s0] sdf5 [s2] sdf6 [s8] sdf7 >
sdh: unknown partition table
sdk: unknown partition table
sd 6:0:11:0: [sdd] Attached SCSI disk
sd 6:0:12:0: [sde] Attached SCSI disk
sd 7:0:9:0: [sdf] Attached SCSI disk
sd 7:0:11:0: [sdh] Attached SCSI disk
sd 8:0:15:0: [sdk] Attached SCSI disk
Last edited: