# [Solved]Which driver should I use for my sata disk?

## lcx

Update for closing this thread: I finally solved the configuration

issue. Just see the last post in this thread. 

My kernel panics during booting due to  mount_block_root failure. 

It seems the disk controller chipset driver is not configured in the kernel? 

I am sure I have built the file system  support in kernel.

I have config the PCI support / SCSI subsystem support / SCSI disk support , but it still doesn't help.

What configuration am I missing? Thanks.

 lspci | grep SATA   output : 

```
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 04)

        Subsystem: Lenovo Device 3978
```

and this is my .config

http://www.pastebin.ca/2457107Last edited by lcx on Sun Sep 29, 2013 1:58 pm; edited 1 time in total

----------

## 666threesixes666

boot into a live cd, and give me lsmod instead of lspci

----------

## lcx

Hi, 666threesixes666, 

 *666threesixes666 wrote:*   

> boot into a live cd, and give me lsmod instead of lspci

 

lsmod : 

```

Module                  Size  Used by

shpchp                 29606  0 

arc4                   12391  2 

ath9k                  85595  0 

ath9k_common           12728  1 ath9k

ath9k_hw              335531  2 ath9k_common,ath9k

ath                    21099  3 ath9k_common,ath9k,ath9k_hw

mac80211              350456  1 ath9k

coretemp               12441  0 

crc32c_intel           12441  0 

ideapad_laptop         12480  0 

ghash_clmulni_intel    12567  0 

cfg80211              138085  3 ath,ath9k,mac80211

sparse_keymap          12656  1 ideapad_laptop

rfkill                 17294  2 cfg80211,ideapad_laptop

microcode              20803  0 

iTCO_wdt               16534  0 

joydev                 16536  0 

iTCO_vendor_support    12640  1 iTCO_wdt

i2c_i801               16534  0 

raid10                 32930  0 

raid456                53468  0 

async_raid6_recov      12506  1 raid456

async_pq               12535  2 raid456,async_raid6_recov

raid6_pq               82623  2 async_pq,async_raid6_recov

async_xor              12453  3 async_pq,raid456,async_raid6_recov

xor                    12426  1 async_xor

async_memcpy           12389  2 raid456,async_raid6_recov

async_tx               12625  5 async_pq,raid456,async_xor,async_memcpy,async_raid6_recov

raid1                  28847  0 

raid0                  16516  0 

multipath              12391  0 

linear                 12391  0 

usb_storage            46994  1 

nouveau               590597  0 

ttm                    54082  1 nouveau

drm_kms_helper         26398  1 nouveau

drm                   183653  3 ttm,drm_kms_helper,nouveau

i2c_algo_bit           12478  1 nouveau

i2c_core               22165  5 drm,i2c_i801,drm_kms_helper,i2c_algo_bit,nouveau

mxm_wmi                12517  1 nouveau

video                  16669  1 nouveau

wmi                    16838  2 mxm_wmi,nouveau

```

----------

## creaker

Seems you have a driver enabled.

I think you should set CONFIG_DEVTMPFS_MOUNT=y

----------

## lcx

 *creaker wrote:*   

> Seems you have a driver enabled.
> 
> I think you should set CONFIG_DEVTMPFS_MOUNT=y

 

I've configured this, and I found the bootCD use ahci dirver, so I also configured it in kernel.

```

------------[ cut here ]------------

 [    4.825423] WARNING: at /c/wfg/linux/arch/x86/kernel/smp.c:123 native_smp_send_reschedule+0x46/0x50()

 [    4.826881] Modules linked in:

 [    4.826881] CPU: 1 PID: 1 Comm: swapper/0 Tainted: 6   I 3.10.7-gentoo #7

 [    4.826881] Hardware name: LENOVO20216/VIQY0Y1, BIOS 74CN34WW(v2.04) 07/04/2013

 [    4.826881] 0000000000000009 ffff88026f243db8 ffffffff817147ba ffff88026f243df0

 [    4.826881] ffffffff81039c0c 0000000000000000 ffff88026f252b00 00000000fffb7199

 [    4.826881] ffff88026f212b00 0000000000000001 ffff88026f243e00 ffffffff81039ce5

 [    4.828116] Call Trace:

 [    4.828585]  [<79071187>] dump_stack+0x19/0x1b

 [    4.828585]  [<79071187>] warn_slowpath_common+0x5c/0x80

 [    4.828585]  [<793accee>] warn_slowpath_null+0x15/0x20

 [    4.828585]  [<7904e0b7>] native_smp_send_reschedule+0x52/0x60

 [    4.828585]  [<79071130>] trigger_load_balance+0x163/0x200

 [    4.828585]  [<7904ed45>] scheduler_tick+0xf9/0x130

 [    4.828585]  [<7905a5a7>] update_process_times+0x61/0x70

 [    4.828585]  [<7901f9a4>] tick_sched_handle.isra.15+0x31/0x40

 [    4.828585]  [<79882401>] tick_sched_timer+0x3c/0x60

 [    4.828585]  [<7905007b>] __run_hrtimer+0x7b/0x1c0

 [    4.828585]  [<793a00e0>] ? tick_sched_handle.isra.15+0x40/0x40

 [    4.828585]  [<7988171f>] hrtimer_interrupt+0xef/0x230

 [    4.828585]  [<7905307f>] smp_apic_timer_interrupt+0x64/0xa0

 [    4.828585]  [<79053038>] apic_timer_interrupt+0x6a/0x70

 [    4.828585]  <EOI> [<7988021a>] ? panic+0x183/0x1bc

 [    4.828585]  [<79045529>] ? panic+0xf2/0x1bc

 [    4.828585]  [<793accee>] mount_block_root+0x18f/0x223

 [    4.828585]  [<7988061e>] mount_root+0x102/0x10b

 [    4.828585]  [<7904552e>] prepare_namespace+0x13c/0x174

 [    4.828585]  [<79056ed9>] kernel_init_freeable+0x1cc/0x1da

 [    4.828585]  [<79045380>] ? do_early_param+0x88/0x88

 [    4.828585]  [<79049ff8>] ? rest_init+0x80/0x80

 [    4.828585]  [<79880000>] kernel_init+0x9/0x180

 [    4.828585]  [<79049f80>] ? ret_from_fork+0x7C/0xb0

 [    4.828585]  [<79882e86>] ? rest_init+0x80/0x80

 [    4.828585] ---[ end trace ae11d0bb45464df2 ]---

```

----------

## marmoras

Isn't smp the multiprocessor? Do you have it as a module? I built it in the kernel, it might not be your hdd

----------

## lcx

Hi, all

I've solved my problem.

If you have same SATA disk as mine

```

00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 04) 

   Subsystem: Lenovo Device 3978 

   Kernel driver in use: ahci 

```

Just make sure you compile in the high level driver sd for SATA disk, and

low level driver ahci for SATA Controller.

config like below should suffice.

```

# 

# SCSI device support 

# 

CONFIG_SCSI_MOD=y 

# CONFIG_RAID_ATTRS is not set 

CONFIG_SCSI=y 

CONFIG_SCSI_DMA=y 

# CONFIG_SCSI_TGT is not set 

# CONFIG_SCSI_NETLINK is not set 

CONFIG_SCSI_PROC_FS=y 

# 

# SCSI support type (disk, tape, CD-ROM) 

# 

CONFIG_BLK_DEV_SD=y 

# CONFIG_CHR_DEV_ST is not set 

# CONFIG_CHR_DEV_OSST is not set 

CONFIG_BLK_DEV_SR=y 

CONFIG_BLK_DEV_SR_VENDOR=y 

CONFIG_CHR_DEV_SG=y 

# CONFIG_CHR_DEV_SCH is not set 

# CONFIG_SCSI_MULTI_LUN is not set 

CONFIG_SCSI_CONSTANTS=y 

# CONFIG_SCSI_LOGGING is not set 

# CONFIG_SCSI_SCAN_ASYNC is not set 

# 

# SCSI Transports 

# 

CONFIG_SCSI_SPI_ATTRS=y 

# CONFIG_SCSI_FC_ATTRS is not set 

# CONFIG_SCSI_ISCSI_ATTRS is not set 

CONFIG_SCSI_SAS_ATTRS=y 

CONFIG_SCSI_SAS_LIBSAS=y 

# CONFIG_SCSI_SAS_ATA is not set 

CONFIG_SCSI_SAS_HOST_SMP=y 

# CONFIG_SCSI_SRP_ATTRS is not set 

# CONFIG_SCSI_LOWLEVEL is not set 

# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 

# CONFIG_SCSI_DH is not set 

# CONFIG_SCSI_OSD_INITIATOR is not set 

CONFIG_ATA=y 

# CONFIG_ATA_NONSTANDARD is not set 

CONFIG_ATA_VERBOSE_ERROR=y 

CONFIG_ATA_ACPI=y 

# CONFIG_SATA_ZPODD is not set 

CONFIG_SATA_PMP=y 

# 

# Controllers with non-SFF native interface 

# 

CONFIG_SATA_AHCI=y 

CONFIG_SATA_AHCI_PLATFORM=y 

# CONFIG_SATA_INIC162X is not set 

CONFIG_SATA_ACARD_AHCI=y 

# CONFIG_SATA_SIL24 is not set 

CONFIG_ATA_SFF=y 

# 

# SFF controllers with custom DMA interface 

# 

# CONFIG_PDC_ADMA is not set 

# CONFIG_SATA_QSTOR is not set 

# CONFIG_SATA_SX4 is not set 

CONFIG_ATA_BMDMA=y 

# 

# SATA SFF controllers with BMDMA 

# 

CONFIG_ATA_PIIX=y 

# CONFIG_SATA_HIGHBANK is not set 

# CONFIG_SATA_MV is not set 

# CONFIG_SATA_NV is not set 

# CONFIG_SATA_PROMISE is not set 

# CONFIG_SATA_SIL is not set 

# CONFIG_SATA_SIS is not set 

# CONFIG_SATA_SVW is not set 

# CONFIG_SATA_ULI is not set 

# CONFIG_SATA_VIA is not set 

# CONFIG_SATA_VITESSE is not set 

```

**********

Generally,  one could find driver for his/her specific hardware by following the 

compilation wiki here: https://forums.gentoo.org/viewtopic-t-539024.html

and see the section Creating a kernel configuration from scratch .

And beyond that, Linux kernel core maintainer Greg Kroah-Hartman has written an 

excellent book called Linux kernel in a nutshell, which is a good reference for 

compilation issues.

----------

