# [SOLVED] Kernel 2.6.23.1 no SATA /dev/sda with Intel ICH7

## captwiggum

SUMMARY:  

SATA drivers and /dev/sda loaded fine with 2.6.21.5 kernel, but disappears with 2.6.23.1 kernel, and is replaced with parallel PATA drives and /dev/hda

DETAIL:

-I have a Dell Latitude D620 Laptop with the Intel ICH7 chipset. 

-I use the vanilla kernel from kernel.org

-This solution applies equally to using gentoo-sources 2.6.23. 

Other articles that contributed to the solution:

- gentoo-sources 2.6.23: no sda [SOLVED] https://forums.gentoo.org/viewtopic-t-599834.html

- Desktop Lags under Heavy IO https://forums.gentoo.org/viewtopic-p-4278662.html

Problem: 2.6.23 kernel now tries/loads PATA devices first, which by-passes SATA detection.

Solution: Disable IDE, use the PIIX driver and libsata for both SATA and PATA.

```
# make menuconfig

Main Menu (dots imply menu depth)

Device Drivers  --->

..<*> ATA/ATAPI/MFM/RLL support  ---> (CONFIG_IDE)

....Note: Disable all others in this menu except below:

....<*>   Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support (CONFIG_BLK_DEV_IDE)

....[*]     PCI IDE chipset support (CONFIG_BLK_DEV_IDEPCI)

....[*]     Generic PCI bus-master DMA support  (CONFIG_BLK_DEV_IDEDMA_PCI)

....<*>       Intel PIIXn chipsets support (CONFIG_BLK_DEV_PIIX)

..SCSI device support  ---> 

....<*> SCSI disk support (CONFIG_BLK_DEV_SD)

....<*> SCSI CDROM support (CONFIG_BLK_DEV_SR)

....<*> SCSI generic support (CONFIG_CHR_DEV_SG)

..<*> Serial ATA (prod) and Parallel ATA (experimental) drivers  ---> (CONFIG_ATA)

....<*>   AHCI SATA support (CONFIG_SATA_AHCI)

....<*>   Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support (CONFIG_ATA_PIIX)

....<*>   Intel PATA MPIIX support (CONFIG_PATA_MPIIX)

```

It took quite a few kernel compiles and article reading to get here. Its working fantastic. Hope this helps someone else!

----------

## drmaj

I love you...

----------

## majorbloodnok

I solved this problem on a number of motherboards by adding 'ide0=noprobe ide1=noprobe' to the kernel cmdline and changing hda3 to sda3 also on the kernel cmdline. This means that you do not have to recompile your kernel. One side-effect is that my disk performance (from hdparm -tT /dev/{sh}da ) went from very low when the disk was called hda to reasonable when it was recognised as sda. This was particularly marked on a PICO motherboard using a Compact flash adapter - as hda measured perf was 2Mb/s - as sda it became 22 Mb/s. Note that the gentoo kernel requires that the IDE modules are compiled into the kernel (and not as modules) for older motherboards as the initramfs does not use udev and blindly loads all PATA/SATA modules from the initramfs when booting but does not load any IDE modules.

This suggests an idea - when you know which drivers are required edit /usr/share/genkernel/x86/modules_load - change the entries for MODULES_SATA and/or MODULES_PATA to only include your required drivers - rebuild initramfs by executing 'genkernel initramfs'. This should be much quicker than recompiling the whole kernel.

----------

