Enable/Install AHCI Driver

I have installed OpenSUSE 11.1 onto a computer and it seemed to work quite well until I installed the NVIDIA driver. Once I did that, the normal opensuse entry in GRUB wouldn’t boot and I had to use one that was made after the install called trace. This works fine when SATA is configured as IDE in the BIOS. But when I change it to AHCI it does boot. It gives me a black and white screen that at the end says could not find /dev/disk…etc. (Ask if you want the whole error message.) This didn’t happen before I installed the NVIDIA driver. I don’t want to reinstall the operating system, and I was wondering if there was a way to reinstall the AHCI driver, I have already tried to repair the system using the DVD. I would really like to be able to boot with AHCI because I am running OS X on it as well which needs it enabled. Any insight to this problem would be appreciated. Thanks! If you have any questions feel free to ask.

arcticemerald wrote:

> I have installed OpenSUSE 11.1 onto a computer and it seemed to work
> quite well until I installed the NVIDIA driver. Once I did that, the
> normal opensuse entry in GRUB wouldn’t boot and I had to use one that
> was made after the install called trace. This works fine when SATA is
> configured as IDE in the BIOS. But when I change it to AHCI it does
> boot. It gives me a black and white screen that at the end says could
> not find /dev/disk…etc. (Ask if you want the whole error message.)
> This didn’t happen before I installed the NVIDIA driver. I don’t want to
> reinstall the operating system, and I was wondering if there was a way
> to reinstall the AHCI driver, I have already tried to repair the system
> using the DVD. I would really like to be able to boot with AHCI because
> I am running OS X on it as well which needs it enabled. Any insight to
> this problem would be appreciated. Thanks! If you have any questions
> feel free to ask.

Dunno if nvidia driver issue is related to the change you made in your bios
about sata mode from “ide” to “ahci”.

The way to add ahci once the system is installed is by
editing /etc/sysconfig/kernel and adding “ahci” module in order to load,
keeping the rest of the modules that were previously there, of course:


INITRD_MODULES=“ahci …”


Then, run “mkinitrd”.

I know the steps involved but never did that before, so be cautious (better,
make first a backup of /boot) or wait until someone to confirm :-).

Greetings,


Camaleón

Thanks for the quick reply. I am a opensuse noob so would you mind going into a little more detail about adding it into the kernel file? It may have already been entered though… Here is what the file looks like before I did any editing:

Path: System/Kernel

Description:

Type: string

Command: /sbin/mkinitrd

This variable contains the list of modules to be added to the initial

ramdisk by calling the script “mkinitrd”

(like drivers for scsi-controllers, for lvm or reiserfs)

INITRD_MODULES=“pata_marvell ahci ata_generic ide_pci_generic jbd ext3 edd”

Type: string

Command: /sbin/mkinitrd

This variable contains the list of modules to be added to the initial

ramdisk that is created for unprivilegd Xen domains (domU); you may need

drivers for virtual block and network devices in addition to filesystem

and device-mapper modules.

DOMU_INITRD_MODULES=“xennet xenblk”

Type: string

ServiceRestart: boot.loadmodules

This variable contains the list of modules to be loaded

once the main filesystem is active

You will find a few default modules for hardware which

can not be detected automatically.

MODULES_LOADED_ON_BOOT=“”

Type: string

Default: “”

The file name of a binary ACPI Differentiated System Description Table

(DSDT). This table is appended to the initial ram disk (initrd) that

the mkinitrd script creates. If the kernel finds that its initrd

contains a DSDT, this table replaces the DSDT of the bios. If the file

specified in ACPI_DSDT is not found or ACPI_DSDT is empty/not specified,

no DSDT will be appended to the initrd.

Example path /etc/acpi/DSDT.aml

You can also override Secondary System Description Tables (SSDTs).

Add DSDT and SSDT files separated by spaces, e.g. “DSDT.aml SSDT1.aml”

The files must be named DSDT.aml and/or SSDT[1-9]*.aml.

For compatiblity reasons, if only one file is added it is assumed it is

the DSDT and will be used as such, in future the above naming scheme

will be enforce.

Be aware that overriding these tables can harm your system.

Only do this if you know what you are doing and file a bug on

bugzilla.kernel.org so that the root cause of the issue will get fixed.

ACPI_DSDT=“”

Type: string(yes)

Default: “”

Skip doing a minimal preparation of the /usr/src/linux source tree so

that most header files can be directly included. If set, /usr/src/linux

will not be touched.

SKIP_RUNNING_KERNEL=“”

Do you see any problems? There is already a line in there as you can see with AHCI in it:
INITRD_MODULES=“pata_marvell ahci ata_generic ide_pci_generic jbd ext3 edd”

Is there something else I’m missing? Thanks. Also, I could boot in AHCI before I installed the NVIDIA driver.

arcticemerald wrote:

> Thanks for the quick reply. I am a opensuse noob so would you mind
> going into a little more detail about adding it into the kernel file? It
> may have already been entered though… Here is what the file looks like
> before I did any editing:

(…)

> Do you see any problems? There is already a line in there as you can
> see with AHCI in it:
> INITRD_MODULES=“pata_marvell ahci ata_generic ide_pci_generic jbd ext3
> edd”

If you installed opensuse with achi enabled in bios, that should be enough.

If you manually removed the module later, you are still missing one step
(running mkinitrd).

> Is there something else I’m missing? Thanks. Also, I could boot in AHCI
> before I installed the NVIDIA driver.

Then, maybe a bad entry or wrong option in /etc/fstab or /boot/grub/menu.lst
is preventing you to boot normally. Check the content of both files
(copy/paste here so we can take a look).

Also, put the result of “fdisk -l” and “ls -l /dev/disk/by-id/*”.

Greetings,


Camaleón

If I remember correctly I did install it with AHCI enabled… Here is my fstab entry:

/dev/disk/by-id/ata-ST3750330AS_9QK24STK-part7 swap swap defaults 0 0
/dev/disk/by-id/ata-ST3750330AS_9QK24STK-part9 / ext3 acl,user_xattr 1 1
/dev/disk/by-id/ata-ST3750330AS_9QK24STK-part13 /boot ext3 acl,user_xattr 1 2
/dev/disk/by-id/ata-ST3750330AS_9QK24STK-part8 /home ext3 acl,user_xattr 1 2
proc /proc proc defaults 0 0
sysfs /sys sysfs noauto 0 0
debugfs /sys/kernel/debug debugfs noauto 0 0
usbfs /proc/bus/usb usbfs noauto 0 0
devpts /dev/pts devpts mode=0620,gid=5 0 0

and here is menu.lst:

Modified by YaST2. Last modification on Tue Jul 14 23:12:02 AKDT 2009

default 0
timeout 8
gfxmenu (hd1,12)/message

###Don’t change this comment - YaST2 identifier: Original name: linux###
title OpenSUSE 11.1
root (hd1,12)
kernel /vmlinuz-2.6.27.23-0.1-trace root=/dev/disk/by-id/ata-ST3750330AS_9QK24STK-part9
resume=/dev/disk/by-id/ata-ST3750330AS_9QK24STK-part7 splash=silent showopts vga=0x317
initrd /initrd-2.6.27.23-0.1-trace

###Don’t change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe – openSUSE 11.1 - 2.6.27.7-9
root (hd1,12)
kernel /vmlinuz-2.6.27.7-9-default root=/dev/disk/by-id/ata-ST3750330AS_9QK24STK-part9 showopts ide=nodma apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 x11failsafe vga=0x317
initrd /initrd-2.6.27.7-9-default

###Don’t change this comment - YaST2 identifier: Original name: Ubuntu 8.04.1, kernel 2.6.24-19-generic (/dev/sdc5)###
title Ubuntu SE
root (hd1,4)
configfile /boot/grub/menu.lst

###Don’t change this comment - YaST2 identifier: Original name: Linux other 1 (/dev/sdc12)###
title Fedora 11
rootnoverify (hd1,11)
chainloader +1

###Don’t change this comment - YaST2 identifier: Original name: windows 1###
title Windows 7
rootnoverify (hd0,0)
chainloader +1

###Don’t change this comment - YaST2 identifier: Original name: windows 3###
title Windows XP
map (hd1) (hd0)
map (hd0) (hd1)
rootnoverify (hd1,0)
makeactive
chainloader +1

###Don’t change this comment - YaST2 identifier: Original name: Mac OS X###
title Mac OS X
rootnoverify (hd1,0)
kernel /boot/boot_v9
boot

fdisk -l:
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x114b7509

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 102400 7 HPFS/NTFS
Partition 1 does not end on cylinder boundary.
/dev/sda2 13 19458 156185600 7 HPFS/NTFS

Disk /dev/sdb: 750.1 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xe04fe04f

Device Boot Start End Blocks Id System
/dev/sdb1 * 1 9791 78643200 7 HPFS/NTFS
/dev/sdb2 9792 71101 492472575 f W95 Ext’d (LBA)
/dev/sdb5 9792 10787 8000338+ 83 Linux
/dev/sdb6 10788 14522 30001356 83 Linux
/dev/sdb7 14523 15767 10000431 82 Linux swap / Solaris
/dev/sdb8 15768 19683 31455238+ 83 Linux
/dev/sdb9 19684 20727 8385898+ 83 Linux
/dev/sdb10 20728 24643 31455238+ 83 Linux
/dev/sdb11 24644 25687 8385898+ 83 Linux
/dev/sdb12 25688 25818 1048576 83 Linux
/dev/sdb13 25819 25949 1052226 83 Linux
/dev/sdb14 25950 71101 362683408+ b W95 FAT32

ls -l /dev/disk/by-id/*:

lrwxrwxrwx 1 root root 9 Jul 16 02:30 /dev/disk/by-id/ata-ST3160815AS_5RX9BMG9 → …/…/sda
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/ata-ST3160815AS_5RX9BMG9-part1 → …/…/sda1
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/ata-ST3160815AS_5RX9BMG9-part2 → …/…/sda2
lrwxrwxrwx 1 root root 9 Jul 16 02:30 /dev/disk/by-id/ata-ST3750330AS_9QK24STK → …/…/sdb
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/ata-ST3750330AS_9QK24STK-part1 → …/…/sdb1
lrwxrwxrwx 1 root root 11 Jul 16 02:30 /dev/disk/by-id/ata-ST3750330AS_9QK24STK-part10 → …/…/sdb10
lrwxrwxrwx 1 root root 11 Jul 16 02:30 /dev/disk/by-id/ata-ST3750330AS_9QK24STK-part11 → …/…/sdb11
lrwxrwxrwx 1 root root 11 Jul 16 02:30 /dev/disk/by-id/ata-ST3750330AS_9QK24STK-part12 → …/…/sdb12
lrwxrwxrwx 1 root root 11 Jul 16 02:30 /dev/disk/by-id/ata-ST3750330AS_9QK24STK-part13 → …/…/sdb13
lrwxrwxrwx 1 root root 11 Jul 16 02:30 /dev/disk/by-id/ata-ST3750330AS_9QK24STK-part14 → …/…/sdb14
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/ata-ST3750330AS_9QK24STK-part2 → …/…/sdb2
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/ata-ST3750330AS_9QK24STK-part5 → …/…/sdb5
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/ata-ST3750330AS_9QK24STK-part6 → …/…/sdb6
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/ata-ST3750330AS_9QK24STK-part7 → …/…/sdb7
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/ata-ST3750330AS_9QK24STK-part8 → …/…/sdb8
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/ata-ST3750330AS_9QK24STK-part9 → …/…/sdb9
lrwxrwxrwx 1 root root 9 Jul 16 02:30 /dev/disk/by-id/edd-int13_dev80 → …/…/sda
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/edd-int13_dev80-part1 → …/…/sda1
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/edd-int13_dev80-part2 → …/…/sda2
lrwxrwxrwx 1 root root 9 Jul 16 02:30 /dev/disk/by-id/edd-int13_dev81 → …/…/sdb
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/edd-int13_dev81-part1 → …/…/sdb1
lrwxrwxrwx 1 root root 11 Jul 16 02:30 /dev/disk/by-id/edd-int13_dev81-part10 → …/…/sdb10
lrwxrwxrwx 1 root root 11 Jul 16 02:30 /dev/disk/by-id/edd-int13_dev81-part11 → …/…/sdb11
lrwxrwxrwx 1 root root 11 Jul 16 02:30 /dev/disk/by-id/edd-int13_dev81-part12 → …/…/sdb12
lrwxrwxrwx 1 root root 11 Jul 16 02:30 /dev/disk/by-id/edd-int13_dev81-part13 → …/…/sdb13
lrwxrwxrwx 1 root root 11 Jul 16 02:30 /dev/disk/by-id/edd-int13_dev81-part14 → …/…/sdb14
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/edd-int13_dev81-part2 → …/…/sdb2
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/edd-int13_dev81-part5 → …/…/sdb5
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/edd-int13_dev81-part6 → …/…/sdb6
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/edd-int13_dev81-part7 → …/…/sdb7
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/edd-int13_dev81-part8 → …/…/sdb8
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/edd-int13_dev81-part9 → …/…/sdb9
lrwxrwxrwx 1 root root 9 Jul 16 02:30 /dev/disk/by-id/scsi-SATA_ST3160815AS_5RX9BMG9 → …/…/sda
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/scsi-SATA_ST3160815AS_5RX9BMG9-part1 → …/…/sda1
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/scsi-SATA_ST3160815AS_5RX9BMG9-part2 → …/…/sda2
lrwxrwxrwx 1 root root 9 Jul 16 02:30 /dev/disk/by-id/scsi-SATA_ST3750330AS_9QK24STK → …/…/sdb
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/scsi-SATA_ST3750330AS_9QK24STK-part1 → …/…/sdb1
lrwxrwxrwx 1 root root 11 Jul 16 02:30 /dev/disk/by-id/scsi-SATA_ST3750330AS_9QK24STK-part10 → …/…/sdb10
lrwxrwxrwx 1 root root 11 Jul 16 02:30 /dev/disk/by-id/scsi-SATA_ST3750330AS_9QK24STK-part11 → …/…/sdb11
lrwxrwxrwx 1 root root 11 Jul 16 02:30 /dev/disk/by-id/scsi-SATA_ST3750330AS_9QK24STK-part12 → …/…/sdb12
lrwxrwxrwx 1 root root 11 Jul 16 02:30 /dev/disk/by-id/scsi-SATA_ST3750330AS_9QK24STK-part13 → …/…/sdb13
lrwxrwxrwx 1 root root 11 Jul 16 02:30 /dev/disk/by-id/scsi-SATA_ST3750330AS_9QK24STK-part14 → …/…/sdb14
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/scsi-SATA_ST3750330AS_9QK24STK-part2 → …/…/sdb2
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/scsi-SATA_ST3750330AS_9QK24STK-part5 → …/…/sdb5
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/scsi-SATA_ST3750330AS_9QK24STK-part6 → …/…/sdb6
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/scsi-SATA_ST3750330AS_9QK24STK-part7 → …/…/sdb7
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/scsi-SATA_ST3750330AS_9QK24STK-part8 → …/…/sdb8
lrwxrwxrwx 1 root root 10 Jul 16 02:30 /dev/disk/by-id/scsi-SATA_ST3750330AS_9QK24STK-part9 → …/…/sdb9

Thanks again.

Ok, I have figured out what the problem is, but I don’t know how to fix it. When I installed the NVIDIA driver it activated another kernel I think. The Trace kernel. So I had three boot options in GRUB, trace, failsafe, and default. Trace and failsafe can only boot in IDE, at least on mine. Default can boot in both. The problem with default however, is there is no GUI. After I installed the NVIDIA driver, the X-server doesn’t start I don’t think. When I start it I get a black and white terminal looking screen. I have tried the Control-Alt-1,2,3…7. It works like normal until I get to 7, which is the GUI. On that screen there is just a blinking dash in the upper left hand corner. I have start the starx command, and when I do I get:
xauth: creating new authority file /root/.serverauth.4447

X.Org X Server 1.5.2
Release Date: 10 October 2008
X Protocol Version 11, Revision 0
Build Operating System: openSUSE SUSE LINUX
Current Operating System: Linux linux-lr8s 2.6.27.7-9-default #1 SMP 2008-12-04 18:10:04 +0100 x86_64
Build Date: 03 December 2008 02:40:38PM

    Before reporting problems, check [X.Org Wiki - Home](http://wiki.x.org)
    to make sure that you have the latest version.

Module Loader present
Markers: (–) probed, (**) from config file, (==) default settings, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) log file : “/var/log/Xorg.0.log”, Time: Thu Jul 16 13:37:06 2009
(==) Using config file: “/etc/X11/xorg.conf”
FATAL: Module nvidia not found.
(EE) NVIDIA: Failed to load NVIDIA kernel module. Please check your system’s kernel log for additional error messages.
(EE) Failed to load module "nvidia (module-specific error, 0)
(EE) No drivers available.

Fatal server error:
no screens found
giving up.
xinit: Connection refused (errno 111): unable to connect to X server
xinit: No such process (errno 3): Server error.

Hope this helps some.

arcticemerald wrote:

> Ok, I have figured out what the problem is, but I don’t know how to fix
> it. When I installed the NVIDIA driver it activated another kernel I
> think. The Trace kernel. So I had three boot options in GRUB, trace,
> failsafe, and default. Trace and failsafe can only boot in IDE, at least
> on mine.

From your “menu.lst” I only can see 2 suse boot entries:


title OpenSUSE 11.1
2.6.27.23-0.1-trace

title Failsafe
2.6.27.7-9-default


> Default can boot in both.

Where is the “default” boot entry to boot opensuse with default kernel in
standard mode (not in failsafe)? :-?

> The problem with default however, is
> there is no GUI. After I installed the NVIDIA driver, the X-server
> doesn’t start I don’t think. When I start it I get a black and white
> terminal looking screen. I have tried the Control-Alt-1,2,3…7. It
> works like normal until I get to 7, which is the GUI. On that screen
> there is just a blinking dash in the upper left hand corner. I have
> start the starx command, and when I do I get:
> xauth: creating new authority file /root/.serverauth.4447

O.k. that’s another different issue, not related with “ahci”.

  • If you installed nvidia driver from nvidia site you have to recompile the
    driver after any kernel update.

  • If you installed nvidia driver using nvidia repository, you need nvidia
    rpm that matches your kernel version.

You can find detailed information on both options here:

http://www.suse.de/~sndirsch/nvidia-installer-HOWTO.html

So, how did you install nvidia driver?

> FATAL: Module nvidia not found.
> (EE) NVIDIA: Failed to load NVIDIA kernel module. Please check your
> system’s kernel log for additional error messages.
> (EE) Failed to load module "nvidia (module-specific error, 0)
> (EE) No drivers available.

That seems normal if you “altered” you kernel version :slight_smile:

Review you /var/log/warn and /var/log/messages to get additional information
on that error.

Greetings,


Camaleón

From your “menu.lst” I only can see 2 suse boot entries:


title OpenSUSE 11.1
2.6.27.23-0.1-trace

title Failsafe
2.6.27.7-9-default


Where is the “default” boot entry to boot opensuse with default kernel in
standard mode (not in failsafe)? :-?

Sorry. I put it in again after I posted the contents. Here it is:

###Don’t change this comment - YaST2 identifier: Original name: linux###
title openSUSE 11.1 - 2.6.27.7-9
root (hd1,12)
kernel /boot/vmlinuz-2.6.27.7-9-default root=/dev/disk/by-id/ata-ST3750330AS_9QK24STK-part9 resume=/dev/disk/by-id/ata-ST3750330AS_9QK24STK-part7 splash=silent showopts vga=0x317
initrd /boot/initrd-2.6.27.7-9-default

O.k. that’s another different issue, not related with “ahci”.

  • If you installed nvidia driver from nvidia site you have to recompile the
    driver after any kernel update.

  • If you installed nvidia driver using nvidia repository, you need nvidia
    rpm that matches your kernel version.

You can find detailed information on both options here:

Nvidia Installer HOWTO for SUSE LINUX users

So, how did you install nvidia driver?

I have tried both the one click and the first part of the guide on the site you posted.

That seems normal if you “altered” you kernel version :slight_smile:

I don’t get that on the trace kernel. Only on the default.

Review you /var/log/warn and /var/log/messages to get additional information
on that error.

I will review and post this information. Thanks.

I have experienced the same problem. Trying to install the NVIDIA driver in exactly the way described on the openSUSE site, [link:= NVIDIA/The hard way - openSUSE ], and the driver install script rebuilt the kernel WITHOUT ahci support! How can I rebuild the kernel with the NVIDIA driver AND ahci driver?

Thanks in advance for any help.

P.S. the openSUSE version is 11.2 RC1

london_coder:\

For your info: the NVIDIA driver does NOT rebuild the kernel; it builds a kernel module.

How did you get to the trace kernel?

@london-coder: check next post

@london coder: which kernel? kernel-desktop or kernel-default?

If kernel-desktop, change to kernel-default. It will most likely solve matters, since it’s less “tuned”.