Find the answer to your Linux question:
Results 1 to 9 of 9
Alright, I've been working with debian for a couple years now, and recently it's started doing a very odd thing. It can't decide what order the drives go in. I ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    Just Joined!
    Join Date
    Jun 2006
    Posts
    50

    Question kernel insanity


    Alright, I've been working with debian for a couple years now, and recently it's started doing a very odd thing. It can't decide what order the drives go in.

    I have an older motherboard and a very large new harddrive and DVD±RW so I've got a PCI IDE controller card.

    I keep the onboard IDE active for a DVD-ROM that doesn't like being on the UATA card and also since I need to boot from CDROM once in a while. Because of this I go ahead and keep my windows HDD on that controller too.

    So I've got:
    OBIDE0,0 - HDD (80h boot) WD 20G
    OBIDE1,0 - DVD
    PCIIDE0,0 - HDD (81h boot) Seagate 160G
    PCIIDE1,0 - DVD

    Now most of the time the debian installer looks at this and puts the 160 as /dev/hda and 20G as /dev/hde. Fine, I'm in Linux more than Windows anyway so this works. I use grub so I just edit menu.lst to sort out the (hd0,0) and (hd1,0) references because the installer puts them the wrong way around.

    After awhile though, with or without updating the kernel in anyway (it's etch so it starts out 2.6.15, and I sometimes let it look on sid sources and grab 2.6.16) it starts doing things backward. Sometimes it can't make up its mind, other times it firmly becomes convinced PCI IDE = /dev/hde -> h and I can jolly well live with it. This is using even ide=reverse, this is with the onboard contoller completely turned off. I'd alter GRUB and fstab to hde, that's not a problem what is though, is that if I don't turn off the OBIDE I get a kernel panic where it is during the scripts just after drive detection while loading the kernel about trying to access /dev/hda2 beyond the end of the drive (PCI 0's 2nd partition is a swap partition OB's 2nd is an extended partititon). I hoped it was just that fstab had hda2 as the swap so I've edited it, and got ready to do things backward... it's still doing it.

    I don't get it. What is up that could cause this? And what can I do to fix it? It seems to be debian specific, because I can use knoppix repeatedly w/o ever seeing it do this. I would just compile a kernel that has the "Offboard IDE controllers first" = y but I can't, it always errors out trying to compile the NIC drivers, if they weren't chipsets I use I'd just tell it to not have them. Besides, I'd like to think that the config that I'm using on the same kernel version I'm using, from the same distro should compile for me as well as the maintainers.

  2. #2
    Linux Guru antidrugue's Avatar
    Join Date
    Oct 2005
    Location
    Montreal, Canada
    Posts
    3,211
    I'm sure you can fix this with some simple GRUB boot parameters.

    You could try with some "hdX=noprobe" parameters, or even "irqpoll".
    Maybe you'll need to anualy specify which devices address should be assign to which physical device.

    Also make sure you are using the proper IDE driver for your PCI card (make sure it is not being taken care by the generic IDE driver). For that you may want to modify your "initrd" file, to make sure the right IDE driver gets loaded before the generic one takes control of your devices.

    Post again if you need more details.
    "To express yourself in freedom, you must die to everything of yesterday. From the 'old', you derive security; from the 'new', you gain the flow."

    -Bruce Lee

  3. #3
    Just Joined!
    Join Date
    Jun 2006
    Posts
    50
    Quote Originally Posted by antidrugue
    I'm sure you can fix this with some simple GRUB boot parameters.

    You could try with some "hdX=noprobe" parameters, or even "irqpoll".
    Maybe you'll need to anualy specify which devices address should be assign to which physical device.

    Also make sure you are using the proper IDE driver for your PCI card (make sure it is not being taken care by the generic IDE driver). For that you may want to modify your "initrd" file, to make sure the right IDE driver gets loaded before the generic one takes control of your devices.

    Post again if you need more details.
    irqpoll only was usefull last night when all of a sudden it couldn't remember what to do with IRQ12 (the PCI IDE card). It didn't change how anything was looked at, and I'm not sure it really helped the spontaneous failure (which has actually never happend before). The error suggested using it. So far as I can tell, it made no difference. I didn't get the IRQ not detected or whatever the error was again. Though, that might not mean much since that was the only time that'd ever happened.

    It's a Belkin UltraATA/133 card using Silicon Image chipset on a PCI v2.1 compliant ASUS P5A with BIOS rev 1010 beta001 which was installed by ASUS once when I had to send my motherboard in for warrenty due to the original frying. So far as I can tell the silicon image driver is the module that udev is loading for it.

    what does the hd<x>=noprobe do?
    The specifying the device addressing sounds promising... how do I do that?

    I'm open to anything. By all means... please.. detail away.

  4. $spacer_open
    $spacer_close
  5. #4
    Linux Guru antidrugue's Avatar
    Join Date
    Oct 2005
    Location
    Montreal, Canada
    Posts
    3,211
    The simplest solution in your case would probably be to just rebuild the initrd files with modules in the right order. Of course make a backup of the actual one first. To know if it is necessary, please post the output of those 3 commands:

    Code:
    lspci
    Code:
    cat /etc/modules
    Code:
    lsmod | grep ide
    "To express yourself in freedom, you must die to everything of yesterday. From the 'old', you derive security; from the 'new', you gain the flow."

    -Bruce Lee

  6. #5
    Linux Guru antidrugue's Avatar
    Join Date
    Oct 2005
    Location
    Montreal, Canada
    Posts
    3,211
    If you'd like to solve it with Grub instead, I thing here is your solution:
    http://www.gnu.org/software/grub/man...tml#Device-map
    http://www.gnu.org/software/grub/man...#Device-syntax
    "To express yourself in freedom, you must die to everything of yesterday. From the 'old', you derive security; from the 'new', you gain the flow."

    -Bruce Lee

  7. #6
    Just Joined!
    Join Date
    Jun 2006
    Posts
    50
    Quote Originally Posted by antidrugue
    The simplest solution in your case would probably be to just rebuild the initrd files with modules in the right order. Of course make a backup of the actual one first. To know if it is necessary, please post the output of those 3 commands:
    Alright here we are:
    Code:
    lspci
    Code:
    0000:00:00.0 Host bridge: ALi Corporation M1541 (rev 04)
    0000:00:01.0 PCI bridge: ALi Corporation M1541 PCI to AGP Controller (rev 04)
    0000:00:02.0 USB Controller: ALi Corporation USB 1.1 Controller (rev 03)
    0000:00:03.0 Bridge: ALi Corporation M7101 Power Management Controller [PMU]
    0000:00:07.0 ISA bridge: ALi Corporation M1533 PCI to ISA Bridge [Aladdin IV] (rev c3)
    0000:00:09.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 05)
    0000:00:09.1 Input device controller: Creative Labs SB Live! MIDI/Game Port (rev 05)
    0000:00:0a.0 RAID bus controller: Silicon Image, Inc. PCI0680 Ultra ATA-133 Host Controller (rev 02)
    0000:00:0b.0 Ethernet controller: Linksys NC100 Network Everywhere Fast Ethernet 10/100 (rev 11)
    0000:00:0f.0 IDE interface: ALi Corporation M5229 IDE (rev c1)
    0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R100 QD [Radeon 7200]
    Code:
    cat /etc/modules
    Code:
    # /etc/modules: kernel modules to load at boot time.
    #
    # This file contains the names of kernel modules that should be loaded
    # at boot time, one per line. Lines beginning with "#" are ignored.
    
    ide-cd
    ide-disk
    ide-generic
    psmouse
    Code:
    lsmod | grep ide
    Code:
    ide_generic             1408  0 [permanent]
    ide_cd                 36612  0 
    cdrom                  33568  1 ide_cd
    ide_disk               16128  6 
    ide_core              112544  6 ide_generic,ide_cd,ide_disk,generic,siimage,alim15x3

  8. #7
    Linux Guru antidrugue's Avatar
    Join Date
    Oct 2005
    Location
    Montreal, Canada
    Posts
    3,211
    Ok, then I guest you can try this.

    Make sure you do a backup of your actual initrd file.
    Code:
    cp /boot/initrd.img-$(uname -r) ~/backup
    ~/backup being your backup directory (like /home/yourself/backup)

    Then modify your /etc/modules so it looks like that:
    Code:
    # /etc/modules: kernel modules to load at boot time.
    #
    # This file contains the names of kernel modules that should be loaded
    # at boot time, one per line. Lines beginning with "#" are ignored.
    
    siimage
    alim15x3
    ide-cd
    ide-disk
    ide-generic
    psmouse
    Then regenerate a new initrd file that loads the module in proper order, so ide_generic doesn't take control of your devices.

    Code:
    su
    mkinitramfs -o /boot/initrd.img-$(uname -r)
    And then reboot.

    There is a possibility that your machine won't boot using that initrd file (however remote), so have a Grub Boot Disk around. Or any Live CD will allow you to recopy the backed up initrd file.
    "To express yourself in freedom, you must die to everything of yesterday. From the 'old', you derive security; from the 'new', you gain the flow."

    -Bruce Lee

  9. #8
    Just Joined!
    Join Date
    Jun 2006
    Posts
    50
    done, done, done.

    Time to reboot. ~crosses fingers, toe, eyes and whispers prays~ I hope this works because... well... I really don't care if linux is hda or hdz, just so long as I don't get kernel panics when it's not the only detectable drive. If this accomplishes that. I may set / as ro and never change a bleedin' thing ever again (or at least for 20 min... shiny things and buttons are my bane).

  10. #9
    Just Joined!
    Join Date
    Jun 2006
    Posts
    50
    No good. It boots the initrd.img but it no helped I finally remembered to take a sec and write down the error though:
    Code:
    Begin: Running /scripts/local-premount ...
    Attempting manual resume
    attempt to access beyond end of device
    hda2: rw=16, want=8, limit=2
    Kernel panic - not syncing: I/O error reading memory image
    This is what happens when I attempt to boot with the onboard IDE active at all, even if I tell the bios that there are no drives attached to it. This also, as I've said before, happened rather spontaneously.
    The first time it seemed associated with my boot order (something I'd never seen or heard of before... but still). If I had it set to CDROM,A,C for the installation, and set it back to C Only, it did this and didn't if I set it back. Now it does it regardless. And I reboot several times after installing w/o it happening until approx 24 - 48 hrs later.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •