neutro Posted February 24, 2004 Report Share Posted February 24, 2004 Here's the problem: I have an Asus A7V-266 with two IDE ATA-100 controlers: one by VIA and the other by Promise, each of which have two channels (i.e. a total of 8 possible devices). When using Mandrake kernels, my hard drive is detected on ide0, as /dev/hda. hdb, hdc and hdd are empty. On my second controler, I have my CD recoreder and DVD drive on ide2 (hde and hdf), hdg and hdh being empty. I'm currently trying to compile another kernel (2.6.3) from the kernel.org source and a friend's .config. When I boot without anything special in the append= LILO line, the two controllers seem inverted: my HD is detected on ide2 at /dev/hde, and my drives on ide0 at hda and hdb. Of course since lilo.conf specify root=/dev/hda1, I get a kernel panic. Now I'd like not changing my fstab so that I could boot on any kernel without messing around in it or fearing that LILO won't find the boot partition. So I tried giving an append= option of the form ide0= and ide2=. So what to put there? I have two conflicting informations from /var/log/dmesg when I boot a Mandrake kernel. First I have: PDC20265: (U)DMA Burst Bit ENABLED Primary PCI Mode Secondary PCI Mode. ide0: BM-DMA at 0xb000-0xb007, BIOS settings: hda:DMA, hdb:DMA ide1: BM-DMA at 0xb008-0xb00f, BIOS settings: hdc:pio, hdd:pio (...) VP_IDE: VIA vt8233 (rev 00) IDE UDMA100 controller on pci00:11.1 ide2: BM-DMA at 0x9800-0x9807, BIOS settings: hde:DMA, hdf:DMA ide3: BM-DMA at 0x9808-0x980f, BIOS settings: hdg:pio, hdh:pio But putting ide0=0xb00 ide1=0xb008 ide2=0x9800 ide3=0x9808 didn't work: the kernel was probing ide4 and ide5 for hdi, hdj, hdk, hdl... Later in dmesg I get: ide0 at 0xd400-0xd407,0xd002 on irq 5ide2 at 0x1f0-0x1f7,0x3f6 on irq 14 which as I said before contradicts the previous information. However, putting ide0=0xd400,0xd002 ide1=0x1f0,0x3f6 seems to work. The only problem is that I also have usb and eth0 on irq5, and it seems that doing this prevents the network interface to be brought up: it says that adress 127.0.0.1 is already taken by another host! So: anyone know a better way of performing the ide controler switch? Quote Link to comment Share on other sites More sharing options...
Steve Scrimpshire Posted February 25, 2004 Report Share Posted February 25, 2004 I could be totally wrong, but it is my understanding that the new 2.6.* kernels handle plug'n'play now and you should be able to re-enable Plug'n'Play OS in the BIOS and then add the ide0= lines in lilo and have them work properly. Once again, I could be wrong and I would wait for verification (although it shouldn't hurt to try it). You could also try compiling the 2.6.3 kernel using an MDK .config file and making any necessary changes to more resemble your friend's config? Quote Link to comment Share on other sites More sharing options...
neutro Posted February 25, 2004 Author Report Share Posted February 25, 2004 That was a good idea, thanks -- but alas, it didn't work. As for the config file, if there is in fact an option for this, I must know it! But just browsing it is tiresome. Maybe later... Quote Link to comment Share on other sites More sharing options...
Steve Scrimpshire Posted February 25, 2004 Report Share Posted February 25, 2004 (edited) Oh, wait. I think I know the answer. After booting to the MDK kernel, look in /proc/ioports for the first two times you see each ide: <<snip>> 0170-0177 : ide1 01f0-01f7 : ide0 0376-0376 : ide1 <<snip>> 03f6-03f6 : ide0 <<snip>> Then look in /proc/interrupts: 14: 290795 XT-PIC ide0 15: 87030 XT-PIC ide1 My append line, for example, would be: ide0=1x1f0,0x3f6,14 ide1=1x170,0x376,15 in other words ide0=1x[first number of first ioport reference of ide0],0x[first number of second ioport reference of ide0],[interrupt number of ide0] Make sense? Hopefully, this works correctly. Edited February 25, 2004 by Steve Scrimpshire Quote Link to comment Share on other sites More sharing options...
neutro Posted February 25, 2004 Author Report Share Posted February 25, 2004 Well it works, in the sense that my previous line also works ;) I mean by that : the ide controllers are switched correctly, and even if I don't specify the irq in the append line, they are found correctly and set the same way as with the Mandrake kernel. I can access my HD on hda and my drives on hde and hdf alright. The problem is that in my Mandrake kernel, it seems that eth0 and usb is on the same interrupt as ide0: 0: 1117892 XT-PIC timer 1: 45798 XT-PIC keyboard 2: 0 XT-PIC cascade 5: 457191 XT-PIC ide0, usb-uhci, usb-uhci, usb-uhci, eth0 8: 1 XT-PIC rtc 9: 0 XT-PIC CMI8738-MC6 11: 1034790 XT-PIC EMU10K1, nvidia 14: 149 XT-PIC ide2 When I boot with the append line specifying ide0=... and ide2=..., my USB mouse is lost (though the usbmouse driver is loaded, but I can see that uhci couldn't be set up in /var/log/dmesg), and incidentally, the network interface is also not brought up. So I guess there's an IRQ conflict of some sort here. I tried all compinations of acpi=off and noapic without success. If I don't include the ide0=... ide2=... parameters, I get a kernel panic since my disk is now on hde and I have root=/dev/hda1. If I place root=/dev/hde1, lilo complains that this is impossible since when running lilo, hde doesn't exist (my disk is on hda then). Also, I don't understand the information in /proc/ioports... Lines pertaining to ide configuration are: 01f0-01f7 : ide2(...) 03f6-03f6 : ide2 (...) 9800-980f : VIA Technologies, Inc. VT82C586B PIPC Bus Master IDE 9800-9807 : ide2 9808-980f : ide3 (...) b000-b03f : Promise Technology, Inc. 20265 b000-b007 : ide0 b008-b00f : ide1 (...) d000-d003 : Promise Technology, Inc. 20265 d002-d002 : ide0 d400-d407 : Promise Technology, Inc. 20265 d400-d407 : ide0 Thus I get sort of conflicting information... the adresses that work are: ide0=0xd400,0xd002 ide2=0x1f0,0x3f6 and as I said before it doesn't matter if I specify IRQ's or not. Thank you again for your input, but it seems that for now I'll just have to enjoy my Mandrake kernel ;) BTW I was able to boot in 2.6.3, just without mouse and network. I didn't do much but I managed to freeze Firefox just using the arrows for scrolling ;) FYI I have a bug with the nvidia driver and I was just seeing if it would just go away by using a non-MDK kernel. It doesn't seem so. So at least I have my answer. Quote Link to comment Share on other sites More sharing options...
Sarissi Posted February 26, 2004 Report Share Posted February 26, 2004 The LAST mobo I had where the mobo IDE controller and the PCI Promise Ultra100 controller were CORRECTLY listed in Mandrake INSTALL, was a GigaByte GA-7IXEH. Since then, the ASRock (made by Asus) and this Chaintech, ALWAYS swapped the controllers, not only for Mandrake Install, but also for Mandrake BOOT. This makes for alot of wasted space in this Full Tower Case. For some reason Mandrake does not place nice with the extra IDE controller. Oh, and that was with Mandrake 8.2 and the GA-7IXEH. Never did try it with the 9.x, since I gave the mobo, cpu and PSU to a friend (who is now using it, and the ultra100 controller). Mandrake 9.x is not being nice, at least with certain mobo makes. My last 2 mobos have ata133 controllers. Quote Link to comment Share on other sites More sharing options...
neutro Posted February 29, 2004 Author Report Share Posted February 29, 2004 Steve: thanks again for the BIOS idea: I had to compile this feature (PnP OS) in the kernel, and it in fact did help: not for the ide channels swap (my append line seems to do the trick), but it did make USB work :) Now the only thing that doesn't work in 2.6.3 is network. I can modprobe the via-rhine driver for my ethernet card, but still, nothing... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.