# looking for sata / libata / raid status? see here

## taskara

While looking for info on what kernel libata drivers support hotswap on SATA controllers, I found these pages (dated April 15th 2005).

very handy for anyone cosidering SATA for a server (or other  :Wink: )

SATA controller status

What features libata supports (not much yet  :Confused: )

RAID and SATA controllers

hope this is helpful  :Smile:  I know I have been looking for this sort of info for ages, and could probably put an end to a lot of Software/Hardware RAID controller flame wars  :Wink: 

-c

----------

## moby dick

Thank you! That site I was looking for.  :Cool: 

Can't await ATAPI running on SATA... :Razz: 

----------

## mjbjr

What I can't find out is, which kernel config option will give you a 'libata' module?

Has it been rolled into each specific controller module? (such as 'sata_promise')

Please be specific.

Thank you

----------

## taskara

 *mjbjr wrote:*   

> What I can't find out is, which kernel config option will give you a 'libata' module?
> 
> Has it been rolled into each specific controller module? (such as 'sata_promise')
> 
> Please be specific.
> ...

 

I'll try and be as specific as I can.

Any 2.6 kernel includes the new libata driver.

It is under SCSI low level devices in menuconfig.

Then there is a submenu whereby you select your chipset.

You need SCSI disk support build statically into the kernel if you wish to boot to a SATA device, just like any other SCSI device (/dev/sdx).

----------

## mjbjr

 *taskara wrote:*   

>  *mjbjr wrote:*   What I can't find out is, which kernel config option will give you a 'libata' module?
> 
> Has it been rolled into each specific controller module? (such as 'sata_promise')
> 
> Please be specific.
> ...

 

Thank you for your help, really, but I'm crying over hear...   :Sad: ((

Which kernel config option, _specifically_, will give you a 'libata' module?

----------

## taskara

 *mjbjr wrote:*   

> Thank you for your help, really, but I'm crying over hear...  ((
> 
> Which kernel config option, _specifically_, will give you a 'libata' module?

 

have you ever compiled a kernel? it is exactly as I said.

Device Drivers --> SCSI device support --> SCSI low-level drivers --> Serial ATA (SATA) support --> your chipset

do you need to know how to get to menuconfig?

----------

## mjbjr

 *taskara wrote:*   

>  *mjbjr wrote:*   Thank you for your help, really, but I'm crying over hear...  ((
> 
> Which kernel config option, _specifically_, will give you a 'libata' module? 
> 
> have you ever compiled a kernel? it is exactly as I said.
> ...

 

Yes, I've compiled tons of kernels.

What you have shown above isn't what I'd call a kernel config option.

What I'm looking for is something like:  CONFIG_SCSI_SATA

Additionally, your "--> your chipset" would seem to indicate something like CONFIG_SCSI_SATA_PROMISE

Of course something like CONFIG_SCSI_SATA_PROMISE doesn't give you a 'libata' (libata.ko) module to install,

it gives you a 'sata_promise' module.

So...

Which kernel config option will give you a 'libata' module?

Or, are you saying that...

It has been rolled into each specific controller module? (such as 'sata_promise')"

Or something else?

Thank you for your help.

Here's some info from my system:

# grep ATA /usr/src/linux/.config

CONFIG_X86_MCE_NONFATAL=y

# CONFIG_ATA_OVER_ETH is not set

# ATA/ATAPI/MFM/RLL support

# CONFIG_BLK_DEV_IDE_SATA is not set

CONFIG_SCSI_SATA=y

# CONFIG_SCSI_SATA_AHCI is not set

# CONFIG_SCSI_SATA_SVW is not set

CONFIG_SCSI_ATA_PIIX=y

# CONFIG_SCSI_SATA_NV is not set

# CONFIG_SCSI_PATA_PDC2027X is not set

CONFIG_SCSI_SATA_PROMISE=m

# CONFIG_SCSI_SATA_QSTOR is not set

CONFIG_SCSI_SATA_SX4=m

CONFIG_SCSI_SATA_SIL=m

# CONFIG_SCSI_SATA_SIS is not set

# CONFIG_SCSI_SATA_ULI is not set

# CONFIG_SCSI_SATA_VIA is not set

# CONFIG_SCSI_SATA_VITESSE is not set

# CONFIG_SCSI_EATA is not set

# CONFIG_SCSI_EATA_PIO is not set

# CONFIG_ATALK is not set

# CONFIG_USB_STORAGE_DATAFAB is not set

----------

## taskara

afaik the libata driver will only be compiled if you select a chipset to go along with it..

you could say:

CONFIG_SCSI_SATA=y

but if you don't select a chipset, then libata is not compiled..

the libata driver is only used on sata devices, but will include ide ata devices later on.

if you select a chipset then the module will sit under /lib/modules/2.6.x/kernel/drivers/scsi/libata.ko

what good is libata if you don't have a chipset driver to go with it?

----------

## mjbjr

 *taskara wrote:*   

> afaik the libata driver will only be compiled if you select a chipset to go along with it..
> 
> you could say:
> 
> CONFIG_SCSI_SATA=y
> ...

 

You can see I do have a chipset driver for the onboard Promise SATA controller, and it's loaded,

but no 'libata' module:

# ls /lib/modules/2.6.11-gentoo-r6y/kernel/drivers/scsi

sata_promise.ko  sata_sil.ko  sata_sx4.ko  sd_mod.ko  sg.ko  sr_mod.ko  st.ko

The promise, sd, sg, and sr modules are all loaded.

Also, I have this

CONFIG_SCSI_SATA=y

Additionally, in the module source directory: 

   /lib/modules/2.6.11-gentoo-r6y/build/drivers/scsi

I have, among others, these two that don't have modules created, AFAICT:

libata-core.c  - which I assume would become the 'libata' module

libata-scsi.c - though maybe this is it, instead

Still no 'libata' anywhere to be seen.

Also, buried in the output of

grep -i -R libata /lib/modules/2.6.11-gentoo-r6y/build/drivers/

I see

/lib/modules/2.6.11-gentoo-r6y/build/drivers/scsi/Makefile:obj-$(CONFIG_SCSI_SATA_PROMISE)      += libata.o sata_promise.o

/lib/modules/2.6.11-gentoo-r6y/build/drivers/scsi/Makefile:libata-objs  := libata-core.o libata-scsi.o

Additionally, 

grep libata -B 10 -A 10 /lib/modules/2.6.11-gentoo-r6y/build/drivers/ide/Kconfig

returns, in part

config BLK_DEV_IDE_SATA

        bool "Support for SATA (deprecated; conflicts with libata SATA driver)"

        default n

        ---help---

          There are two drivers for Serial ATA controllers.

          The main driver, "libata", exists inside the SCSI subsystem

          and supports most modern SATA controllers.

          The IDE driver (which you are currently configuring) supports

          a few first-generation SATA controllers.

          In order to eliminate conflicts between the two subsystems,

          this config option enables the IDE driver's SATA support.

          Normally this is disabled, as it is preferred that libata

          supports SATA controllers, and this (IDE) driver supports

          PATA controllers.

          If unsure, say N.

So.... where am I screwing up?

.

.

----------

## taskara

good question.. I'm not sure.. did u sort it?

----------

## dsd

nothing.. there is no such thing as libata.ko - libata isnt a kernel module (it couldnt be, modules live on disk, how would a booting system load a module from disk which is the module which enables read access to disk in the first place?), its a core part of the code.

just choose your drivers under the CONFIG_SCSI_SATA section, and live under the knowledge that libata is being used.

----------

## mjbjr

 *dsd wrote:*   

> nothing.. there is no such thing as libata.ko - libata isnt a kernel module (it couldnt be, modules live on disk, how would a booting system load a module from disk which is the module which enables read access to disk in the first place?), its a core part of the code.
> 
> just choose your drivers under the CONFIG_SCSI_SATA section, and live under the knowledge that libata is being used.

 

Thanks for the info, I appreciate it.

----------

