You are not logged in.

#1 2009-05-27 18:45:09

Ashren
Member
From: Denmark
Registered: 2007-06-13
Posts: 1,229
Website

How to force ata_piix to load before usb modules?

Hi,

I've been having emask timeout problems the longest time ever since I bought a Samsung Tsstcorp sh-182 drive for my Dell Dimension 8300. I FINALLY found what looks like a possible to solution, but how do I apply in Arch?

See here:

escription: USB device misreads interrupts intermittently due to race condition with ATA driver.
Systems Affected: Dimension 530n.
Impact: Systems hangs during boot up.
Workaround: Force SATA driver to load before USB driver. Create a script named load_ata_piix in /usr/share/initramfs-tools/scripts/init-top/ with the following contents:

#!/bin/sh
PREREQ=""
prereqs()
{
        echo "$PREREQ"
}
case $1 in
# get pre-requisites
prereqs)
        prereqs
        exit 0
        ;;
esac
modprobe -Qb ata_piix

Execute the script:

$ sudo /usr/share/initramfs-tools/scripts/init-top/load_ata_piix

Next, rebuild the initrd so that the kernel will probe for the SATA driver before the USB driver:

$ sudo update-initramfs -u -k all

http://linux.dell.com/wiki/index.php/Ub … auses_hang

I'd really like to fix this issue once and for all. Udev hangs for 3 minutes during boot and before I had to disable the cdrom module and use ide modules.

Any suggestions are welcome.

Offline

#2 2009-05-27 22:19:33

demian
Member
From: Frankfurt, Germany
Registered: 2009-05-06
Posts: 709

Re: How to force ata_piix to load before usb modules?

Evening Ashren,

i'm sorry if I miss the problem here, but don't you just have to rebuild your initram image using mkinitcpio?
I adjusted mine to load scsi_mod sd_mod sg libata ahci and my filesystem to boot a little bit faster, but the same can be done to get any module loaded by udev before the default module autodetection is triggered.

Last edited by demian (2009-05-27 22:26:36)


no place like /home
github

Offline

#3 2009-05-28 05:02:25

Ashren
Member
From: Denmark
Registered: 2007-06-13
Posts: 1,229
Website

Re: How to force ata_piix to load before usb modules?

I'm pretty sure it has to be done with mkinitcpio and I have tried to place ata_piix in the module list in mkinitcpio.conf. This does not solve the problem though, it still hangs, but before udev instead.

Perhaps it would be a solution to place disablemodules=usb* in the kernel line in grub and run them with modprobe after boot in rc.local or something.

Last edited by Ashren (2009-05-28 05:34:29)

Offline

#4 2009-05-29 13:46:27

demian
Member
From: Frankfurt, Germany
Registered: 2009-05-06
Posts: 709

Re: How to force ata_piix to load before usb modules?

Ashren wrote:

I'm pretty sure it has to be done with mkinitcpio and I have tried to place ata_piix in the module list in mkinitcpio.conf. This does not solve the problem though, it still hangs, but before udev instead.

Have you rebuilt your initram with "mkinitcpio -p kernel26"?
If so, have you verified there is a conflict between sata and usb modules? Try booting without the usb module. I think MODULES=(!usbcore ...) in rc.conf can be used to do that.
You could further try disabling module autoloading in rc.conf and place the modules in the desired order yourself, again in MODULES=(...).

The last resort may be rebuilding your kernel with sata built in and maybe without initram at all if that is the point where you get stuck.


no place like /home
github

Offline

Board footer

Powered by FluxBB