Help answer threads with 0 replies.
Go Back > Forums > Linux Forums > Linux - Distributions > Fedora
User Name
Fedora This forum is for the discussion of the Fedora Project.


  Search this Thread
Old 01-17-2009, 04:34 PM   #1
LQ Newbie
Registered: Jan 2009
Posts: 7

Rep: Reputation: 0
How to force SATA link to 1.5Gbps

How do I force my SATA link to 1.5Gbps, not 3Gbps?

I tried forcing libata to use 1.5Gbps rather than 3Gbps, so I created a file /etc/modprobe.d/local containing:
options libata force=1.5Gbps
However my SATA drive still gets loaded at 3Gbps. I'm not sure whether I've got the syntax right, or whether this option is actually being applied, and I can't see any way to check what options were applied to a loaded module.

I'm wondering if this file even gets consulted before loading the libata module. It seems like there might be a cyclic dependency here: since I'm using SATA drives, presumably the kernel has to load the libata module before it can look up modprobe.d in the filesystem, hence it may be too late to apply the force=1.5Gbps option by the time the filesystem is loaded.

Some other things I've tried or considered trying:
* I can't set libata.force=1.5Gbps as a kernel argument because on Fedora kernels is built as a module rather than built into the kernel.
* I can't run "modprobe libata force=1.5Gbps" by hand because I've got SATA drives, so the libata module is automatically loaded before I get shell access.
* I could build a kernel by hand and then build libata into the kernel rather than as a module, but this is certainly less convenient than using a Fedora-packaged kernel.
* I can't jumper my Samsung hard drive to force it to 1.5Gbps because the Samsung hard drive does not seem to have a jumper setting for that (!).
* I can't set this in my BIOS because my Dell XPS 420 BIOS does not have any option to force 1.5Gbps.

I want to force down to 1.5Gbps because I've been experiencing some SATA errors that I believe may go away at 1.5Gbps. (I have a second drive on this system that also experienced similar SATA errors, and where jumpering it down to 1.5Gbps made the problems go away.)

Any suggestions?
Old 01-17-2009, 06:48 PM   #2
LQ Guru
Registered: Aug 2001
Location: Fargo, ND
Distribution: SuSE AMD64
Posts: 15,733

Rep: Reputation: 682Reputation: 682Reputation: 682Reputation: 682Reputation: 682Reputation: 682
You could use add your options to modprobe.conf. You will probably need to run "depmod -a" and "mkinitrd" afterwords. The module is probably loaded while the kernel is still running in ram (initrd). You might want to extract the filesystem in initrd and check if the module is in there.
       options modulename option...
              This command allows you to add options to the module  modulename
              (which  might  be  an  alias) every time it is inserted into the
              kernel: whether directly (using modprobe modulename, or  because
              the module being inserted depends on this module.

              All options are added together: they can come from an option for
              the module itself, for an alias, and on the command line.
Also read the kernel source documenation for the kernel options. I think if a module isn't built in, the option is passed on to modprobe. I believe that it is possible to include kernel boot options for loadable kernel modules. However, using modprobe.conf or a file in /etc/modprobe.d/ is how it should be done.

Note, here is how you can examine your initrd file from your home directory:
mkdir initrd
cd initrd
cpio -vid < <(zcat /boot/initrd)

Last edited by jschiwal; 01-17-2009 at 06:53 PM.
Old 01-17-2009, 11:42 PM   #3
LQ Newbie
Registered: Jan 2009
Posts: 7

Original Poster
Rep: Reputation: 0
Thanks! That looks very helpful. I'll give that a try. I appreciate the help.

For others who have to try this, I thought I'd jot down how to use mkinitrd (as I understand it):

1) Create a file /etc/modprobe.conf. Copy any module options (in my case, options for the libata module) to /etc/modprobe.conf. This is to work around a bug in mkinitrd that causes mkinitrd to ignore module options in /etc/modprobe.d. (

2) Run something like "mkinitrd initrd-". Then rename the old initrd file in /boot and copy the new one you just created into /boot.

I hope I got that right.


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
"SATA link down" on non-existing sata channel johan162 Linux - Hardware 4 01-05-2009 04:17 AM
dmesg says "SATA link down" newbiesforever Linux - General 11 12-18-2008 04:23 AM
SATA link up 1.5 Gbps with Seagate ST3320620AS + Asus P5LD2 Deluxe, should be 3.0? [GOD]Anck Slackware 8 08-30-2007 10:06 PM
skge: eth0: Link is up... Link is down... Link is up.... sugar2 Linux - Hardware 5 07-03-2007 03:52 PM
SATA drive/PCI adapter link keslinpd Linux - Hardware 0 09-22-2004 02:42 PM > Forums > Linux Forums > Linux - Distributions > Fedora

All times are GMT -5. The time now is 01:25 PM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration