# Problem to boot HP Proliant ML350 G6

## rubenm

I've installed gentoo linux 2.6.39 r3 in HP Proliant ML350 G6 Server after reboot the system I get this message

>> Block device /dev/sda3 is not a valid root device...

>> Could not find the root block device in .

Please specify a device to boot, or "shell" for a shell..

boot() ::

This is The lspci information :

00:00.0 Host bridge: Intel Corporation 5520 I/O Hub to ESI Port (rev 13)

00:01.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 1 (rev 13)

00:02.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 2 (rev 13)

00:03.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 3 (rev 13)

00:04.0 PCI bridge: Intel Corporation 5520/X58 I/O Hub PCI Express Root Port 4 (rev 13)

00:05.0 PCI bridge: Intel Corporation 5520/X58 I/O Hub PCI Express Root Port 5 (rev 13)

00:06.0 PCI bridge: Intel Corporation 5520/X58 I/O Hub PCI Express Root Port 6 (rev 13)

00:07.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 7 (rev 13)

00:08.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 8 (rev 13)

00:09.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 9 (rev 13)

00:0a.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 10 (rev 13)

00:0d.0 Host bridge: Intel Corporation Device 343a (rev 13)

00:0d.1 Host bridge: Intel Corporation Device 343b (rev 13)

00:0d.2 Host bridge: Intel Corporation Device 343c (rev 13)

00:0d.3 Host bridge: Intel Corporation Device 343d (rev 13)

00:0d.4 Host bridge: Intel Corporation 5520/5500/X58 Physical Layer Port 0 (rev 13)

00:0d.5 Host bridge: Intel Corporation 5520/5500 Physical Layer Port 1 (rev 13)

00:0d.6 Host bridge: Intel Corporation Device 341a (rev 13)

00:0e.0 Host bridge: Intel Corporation Device 341c (rev 13)

00:0e.1 Host bridge: Intel Corporation Device 341d (rev 13)

00:0e.2 Host bridge: Intel Corporation Device 341e (rev 13)

00:0e.3 Host bridge: Intel Corporation Device 341f (rev 13)

00:0e.4 Host bridge: Intel Corporation Device 3439 (rev 13)

00:14.0 PIC: Intel Corporation 5520/5500/X58 I/O Hub System Management Registers (rev 13)

00:14.1 PIC: Intel Corporation 5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers (rev 13)

00:14.2 PIC: Intel Corporation 5520/5500/X58 I/O Hub Control Status and RAS Registers (rev 13)

00:1c.0 PCI bridge: Intel Corporation 82801JI (ICH10 Family) PCI Express Root Port 1

00:1d.0 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #1

00:1d.1 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #2

00:1d.2 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #3

00:1d.3 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #6

00:1d.7 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #1

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 90)

00:1f.0 ISA bridge: Intel Corporation 82801JIB (ICH10) LPC Interface Controller

00:1f.5 IDE interface: Intel Corporation 82801JI (ICH10 Family) 2 port SATA IDE Controller #2

01:03.0 VGA compatible controller: ATI Technologies Inc ES1000 (rev 02)

01:04.0 System peripheral: Compaq Computer Corporation Integrated Lights Out Controller (rev 03)

01:04.2 System peripheral: Compaq Computer Corporation Integrated Lights Out  Processor (rev 03)

01:04.4 USB Controller: Hewlett-Packard Company Integrated Lights-Out Standard Virtual USB Controller

01:04.6 IPMI SMIC interface: Hewlett-Packard Company Integrated Lights-Out Standard KCS Interface

02:00.0 PCI bridge: Broadcom EPB PCI-Express to PCI-X Bridge (rev b5)

03:04.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5715 Gigabit Ethernet (rev a3)

03:04.1 Ethernet controller: Broadcom Corporation NetXtreme BCM5715 Gigabit Ethernet (rev a3)

04:00.0 RAID bus controller: Hewlett-Packard Company Smart Array G6 controllers (rev 01)

3f:00.0 Host bridge: Intel Corporation Xeon 5600 Series QuickPath Architecture Generic Non-core Registers (rev 02)

3f:00.1 Host bridge: Intel Corporation Xeon 5600 Series QuickPath Architecture System Address Decoder (rev 02)

3f:02.0 Host bridge: Intel Corporation Xeon 5600 Series QPI Link 0 (rev 02)

3f:02.1 Host bridge: Intel Corporation Xeon 5600 Series QPI Physical 0 (rev 02)

3f:02.2 Host bridge: Intel Corporation Xeon 5600 Series Mirror Port Link 0 (rev 02)

3f:02.3 Host bridge: Intel Corporation Xeon 5600 Series Mirror Port Link 1 (rev 02)

3f:02.4 Host bridge: Intel Corporation Xeon 5600 Series QPI Link 1 (rev 02)

3f:02.5 Host bridge: Intel Corporation Xeon 5600 Series QPI Physical 1 (rev 02)

3f:03.0 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Registers (rev 02)

3f:03.1 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Target Address Decoder (rev 02)

3f:03.2 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller RAS Registers (rev 02)

3f:03.4 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Test Registers (rev 02)

3f:04.0 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 0 Control (rev 02)

3f:04.1 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 0 Address (rev 02)

3f:04.2 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 0 Rank (rev 02)

3f:04.3 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 0 Thermal Control (rev 02)

3f:05.0 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 1 Control (rev 02)

3f:05.1 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 1 Address (rev 02)

3f:05.2 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 1 Rank (rev 02)

3f:05.3 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 1 Thermal Control (rev 02)

3f:06.0 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 2 Control (rev 02)

3f:06.1 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 2 Address (rev 02)

3f:06.2 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 2 Rank (rev 02)

3f:06.3 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 2 Thermal Control 

(rev 02)

This is the fstab configuration :

/dev/sda1       /boot   ext2    defaults,noatime        1 2

/dev/sda2       swap    sw                              0 0

/dev/sda3       /       ext3    noatime                 0 1

This is the grub.conf configuration :

default 0

timeout 30

splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title Gentoo Linux 2.6.39-r3

root (hd0,0)

kernel /boot/kernel-genkernel-x86-2.6.39-gentoo-r3 root=/dev/ram0 init=/linuxrc rmadisk=8192 real_root=/dev/sda3

initrd /boot/initramfs-genkernel-x86-2.6.39-gentoo-r3

I know that is a controller problem buy how i can solved this problem?

Thanks for your attention.

----------

## krinn

```
lspci -k | grep -A4 RAID | grep driver
```

Should gave you the module name you need, make sure this one is build in your kernel or your initramfs

----------

## cach0rr0

i dont believe it's /dev/sd*

i had an ML350 G5 a couple years back, forgotten most of what they use, but i believe it's the case they use the same type of raid setup and disk driver as the DL380 (which, i *do* actually have one now, and is fresh on my mind)

have a gander at this:

http://en.gentoo-wiki.com/wiki/HP_ProLiant_DL380_G5

namely, it tells you to select the driver for the compaq raid array nonsense, as well points out the naming scheme (which isnt /dev/sd*)

```

Harddisks/Partitions

The driver for the RAID controller doesn't provide the usual devicenames like /dev/sda. Instead they're named like this:

/dev/cciss/c0d0 → Controller 0; Disk 0

/dev/cciss/c0d0p1 → Controller 0; Disk 0; Partition 1

/dev/cciss/c0d0p2 → Controller 0; Disk 0; Partition 2

/dev/cciss/c0d1 → Controller 0, Disk 1

```

----------

## rubenm

Thanks cach0rr0, krinn for your answer.

I've done what krinn written to me and that is what i get :

Gentoo-11 ~ # lspci -k | grep -A4 RAID | grep driver

        Kernel driver in use: hpsa

Gentoo-11 ~ #

About cach0rro0 wrote, i think that the device is not the /dev/c0d0 because when i start whith the cd live and i write :

fdisk /dev/c(tab)(tab) and i get :

card0            char/            controlD64       cpu/

cdrom            console          core             cpu_dma_latency

there's no a c0d0

if the sda was not a valid device i never could have done the partition and formatting it. This is just a my point of view, not if i'm right.

I start the cd live whith the default kernel.

I don't know what is the next step or what should i have to do.

Here are the specifications of the product :

Procesador

	Intel® Xeon® E5645 (6 núcleos, 2,40 GHz, 12 MB L3, 80W)

Número de procesadores

	1

Processor core available

	6

Memoria, estándar

	6 GB

Ranuras de memoria

	18 ranuras DIMM

Tipo de memoria

	PC3-10600R (RDIMM)

Ranuras de expansión

	Seis (6) ranuras PCI-E Gen2. El ampliador PCI-X opcional ofrece dos ranuras PCI X adicionales

Controlador de red

	(1) 2 Puertos 1 GbE NC326i

Tipo de fuente de alimentación

	(1) 750 W conexión en caliente redundante

Controlador de almacenamiento

	(1) Smart Array P410i/256 MB

Software de gestión

	N/D

Tipo de unidad óptica

	DVD-ROM SATA media altura

Administración de infraestructura

	HP Integrated Lights-Out 2 (iLO 2)

----------

## krinn

You've done the hardest part.

Now just follow the handbook on howto build your kernel (seems you handle that part already), but this time, lookout for the "hpsa" driver in the kernel and build that one as include in your kernel.

Rebuild your kernel then and once done, install that new kernel and reboot (take a bit of care it's an easy part too, but many users fail to copy/install the new kernel)

And because now your kernel have the controller driver, it will create /dev/sda and booting procedure could continue.

----------

## cach0rr0

 *rubenm wrote:*   

> 
> 
> About cach0rro0 wrote, i think that the device is not the /dev/c0d0 because when i start whith the cd live and i write :
> 
> fdisk /dev/c(tab)(tab) and i get :
> ...

 

one thing to point out: the device node wont be there unless the driver is loaded

if the driver is getting autloaded, awesome. Look at the output of 'fdisk -l' and 'ls -l /dev/disk/by-id' and you should see which is which

Either way, if it's the hspa driver, great, as krinn said the hard work is done. You just need to build that driver into the kernel, and youre good to go.

----------

## rubenm

Thanks for your answer.

I've checked the Handbook, there explain how to configure the Kernel, but isn't too clear to me.

Firts things firts : When i'm load the server whit CD-Live i excecute the command that krinn suggest me :

lspci -k | grep A4 RAID | grep driver

and then i get this :

Kernel driver in use: hpsa

In this point every thing all right, then i mount my partitions :

mount /dev/sda3 /mnt/gentoo

mount /dev/sda1 /mnt/gentoo/boot

i use the :

chroot /mnt/gentoo /bin/bash

env-update

source /etc/profile

then i wrote the command :

lscpci

and i get : 

bash: lspci: command not found

When i use the command that the handbook suggest :

find /lib/modules/2.6.39-gentoo-r3/ -type f -iname '*.o' -or -ina

me '*.ko' | less

i didn't see a hpsa module

if i use :

modprobe hpsa

i get :

FATAL: Could not load /lib/modules/3.0.0-gentoo/modules.dep: No such file or directory

in the handbook only show the way to do what i need,  but not in an specific situation or a controler driver.

I know that i have to "include" that into the kernel, it's seems to do that whith the :

genkernel --splash --no-install --no-clean --menuconfig all

But when i excecute that comand i don't know where i have to go...

Sorry, my english is not too good.

Thanks

Ruben

----------

## NeddySeagoon

rubenm,

If you must use Genkernel, you need to go into menuconfig and add the hpsa driver as built in. Thats <*>, not <M>

When genkernel stops in menuconfig press / (for search) and enter hpsa. You will see

```
 

  ┌───────────────────────── Search Results ─────────────────────────┐

  │ Symbol: SCSI_HPSA [=n]                                           │  

  │ Type  : tristate                                                 │  

  │ Prompt: HP Smart Array SCSI driver                               │  

  │   Defined at drivers/scsi/Kconfig:407                            │  

  │   Depends on: SCSI_LOWLEVEL [=n] && PCI [=y] && SCSI [=y]        │  

  │   Location:                                                      │  

  │     -> Device Drivers                                            │  

  │       -> SCSI device support                                     │  

  │         -> SCSI low-level drivers (SCSI_LOWLEVEL [=n])           │  

  │                                                                  │  

  │                                                          
```

which tels the options hpsa depends on and where the option is found in the kernel.

Inside the chroot, your lspci fails as you need to 

```
emerge pciutils
```

to get that utility.

----------

## rubenm

Thanks NeddySeagoon...

Then the command that i have to excecute to go there is :

genkernel --no-clean --menuconfig all 

I only see this :

 .config - Linux/i386 2.6.39-gentoo-r3 Kernel Configuration   q                                    General setup  --->                                             q Linux/i386 2.6.39-gentoo-r3 Kernel Configuration q┐                             Arrow keys navigate the menu.  <Enter> selects submenus --->. │                 Highlighted letters are hotkeys.  Pressing <Y> includes, <N> excludes, │        <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help, </> │        for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > │             ┌q┐ │                                                                           │        General setup  --->                                          │ │       │    [*] Enable loadable module support  --->                         │ │       │    -*- Enable the block layer  --->                                 │ │       │        Processor type and features  --->                            │ │       │        Power management and ACPI options  --->                      │ │       │        Bus options (PCI etc.)  --->                                 │ │       │        Executable file formats / Emulations  --->                   │ │       │    -*- Networking support  --->                                     │ │       │        Device Drivers  --->                                         │ │       │        Firmware Drivers  --->                                       │ │       └q┘ │↓(+)                                                                      q┤                                                                               │                  <Select>    < Exit >    < Help >                            q┘                                                                                                                                                           

Thanks.

Ruben

----------

## cach0rr0

yes, "Device Drivers" is correct. in the code NeddySeagoon pasted above, it shows you the path to get to this driver

it is beneath "Device Drivers"

----------

## NeddySeagoon

rubenm,

In your post, it says 

```
</> │ for Search. 
```

In code tags for easy reading

```
 .config - Linux/x86_64 3.0.4-gentoo Kernel Configuration

 ──────────────────────────────────────────────────────────────────────────────

  ┌──────────── Linux/x86_64 3.0.4-gentoo Kernel Configuration ─────────────┐

  │  Arrow keys navigate the menu.  <Enter> selects submenus --->.          │  

  │  Highlighted letters are hotkeys.  Pressing <Y> includes, <N> excludes, │  

  │  <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help, </> │  

  │  for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < >       │
```

Pressing the /  key gets you a search box.  Enter hpsa and you will get the help I posted above.

This tells that the promt you are looking for is 

```
HP Smart Array SCSI driver
```

and it is found under 

```
  │     -> Device Drivers                                            │ 

  │       -> SCSI device support                                     │ 

  │         -> SCSI low-level drivers (SCSI_LOWLEVEL [=n])           │
```

In my kernel I have -> SCSI low-level drivers off.  So the option id hidden for me.

Looking in the right place we see   

```
│ ┌─────────────────────────────────────────────────────────────────────┐ │  

  │ │    --- SCSI low-level drivers                                       │ │  

  │ │    < >   iSCSI Initiator over TCP/IP (NEW)                          │ │  

  │ │    < >   iSCSI Boot Sysfs Interface (NEW)                           │ │  

  │ │    < >   Chelsio T3 iSCSI support (NEW)                             │ │  

  │ │    < >   Chelsio T4 iSCSI support (NEW)                             │ │  

  │ │    < >   Broadcom NetXtreme II iSCSI support (NEW)                  │ │  

  │ │    < >   Broadcom NetXtreme II FCoE support (NEW)                   │ │  

  │ │    < >   ServerEngines' 10Gbps iSCSI - BladeEngine 2 (NEW)          │ │  

  │ │    < >   3ware 5/6/7/8xxx ATA-RAID support (NEW)                    │ │  

  │ │    < >   HP Smart Array SCSI driver (NEW) 
```

Its the last option above which needs to be 

```
<*>   HP Smart Array SCSI driver (NEW) 
```

----------

## rubenm

Thanks to everybody.

That's correct, I only configure to assign (*) to the HpSmart Array SCSI Driver and ready.

Thanks again to all of you, cach0rr0, NeddySeagoon, krinn.

Ruben.

----------

## krinn

you're welcome,

It was easy no? (specially when NeddySeagoon explain something, i'm still amaze by his patience and teacher skills)

----------

## tnt

is HPSA module safe for older (P800) controllers?

https://forums.gentoo.org/viewtopic-t-898884.html

----------

