LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (http://www.linuxquestions.org/questions/slackware-14/)
-   -   DMA not working slackware 12.1 Generic Stock SMP kernel (http://www.linuxquestions.org/questions/slackware-14/dma-not-working-slackware-12-1-generic-stock-smp-kernel-670574/)

duryodhan 09-17-2008 12:24 PM

DMA not working slackware 12.1 Generic Stock SMP kernel
 
Hi

On my machine , the harddisk doesn't have its DMA enabled.

Quote:

bash-3.1# whoami
root
bash-3.1# hdparm -d 1 /dev/hda

/dev/hda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
using_dma = 0 (off)


bash-3.1# lspci | grep ide -i
00:1f.2 IDE interface: Intel Corporation 82801H (ICH8 Family) 4 port SATA IDE Controller (rev 02)
00:1f.5 IDE interface: Intel Corporation 82801H (ICH8 Family) 2 port SATA IDE Controller (rev 02)
When I searched the forum for older thread - they said I should compile the kernel with the required IDE module that can be found with the help of above lspci command. The IDE interface is Intel , so I am pretty sure it should work by default. Anyways, I am using the generic-smp kernel that came with Slackware 12.1 , so it should be present as a module too.

They also talked about how the initrd could load the generic-ide module which is causing problems (even though I have never heard of this before) .. I did a find /boot/initrd-tree | grep -i ide , but that returned zero results.

Any ideas / helps/comments ?!

Trust me .. without DMA a computer sucks ..


its a 1.86 Ghz Core 2 Duo , so its not really old or something.

keefaz 09-17-2008 12:57 PM

Could you post the output with: dmesg | grep -i ide

Alien Bob 09-17-2008 04:26 PM

You will have to force your drive to the SATA driver. It will make a change from /dev/hda to become /dev/sda which is why this is not a trivial excercise.
The IDE driver which your hard disk is using now, prohibits it from using DMA.
The solution is simple - you need to pass LILO the argument
Code:

append = "hda=noprobe"
. This is easiest when you append this to the boot prompt right away during installation, but since you already installed you may not want to re-install.
I made several posts about this on LQ, these are the ones I could find during a quick search (http://www.google.com/search?hl=en&q...%22+eric+alien):
http://www.linuxquestions.org/questi...88#post3152888

http://www.linuxquestions.org/questi...20#post3205020

And the most detail:
http://www.linuxquestions.org/questi...43#post3169143

Good luck, Eric

duryodhan 09-18-2008 01:58 AM

I only have remote access to the comp right now, so I can't test the lilo thing right now. But a quick question to check it I get it right -

I need to make the drive use the SATA driver , but doing this will make the hda to sda. So a simple hda=noprobe at lilo, won't work cos then it won't be able to find the root partition (as it will search for hda and not sda)

but won't "hda=noprobe root=/dev/sda2" work ?


Quote:

bash:~# dmesg | grep -i ide
BIOS-provided physical RAM map:
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ9 used by override.
CPU: After generic identify, caps: bfebfbff 20100000 00000000 00000000 0000e3bd 00000000 00000001 00000000
Boot video device is 0000:00:02.0
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
Probing IDE interface ide0...
Probing IDE interface ide1...
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
ide-floppy driver 0.99.newide

Alien Bob 09-18-2008 04:53 AM

Quote:

Originally Posted by duryodhan (Post 3284081)
So a simple hda=noprobe at lilo, won't work cos then it won't be able to find the root partition (as it will search for hda and not sda)

but won't "hda=noprobe root=/dev/sda2" work ?

Your first conclusion is right. But since /etc/fstab also has references to hda instead of the new sda, your Slackware will still refuse to boot.

Eric

duryodhan 09-18-2008 08:48 AM

So if fstab is the only problem - I can edit fstab and then reboot and it will work ?

(I know the installer is a safer alternative .. but this is more cool , if you are not sure then tell me .. I will try it out for the heck of it :) )


And , I don't know but when I booted the installer (I had grub so just copied over the initrd and hugesmp.s into the older /boot), it didn't tell me that dma is off. I was thinking maybe it is a nice thing for the installer to check if DMA is off and confirm with user - additionally ask them to read the Change_AND_Hints when it detects such a problem ?

cos the changes and hints said to mostly think about Thinkpads or laptops .. this is a desktop, I never thought that this would be the case here .. :)

Alien Bob 09-18-2008 10:01 AM

The task of the installer is to do what the user wants. Unlike other distros the Slackware installer tries not to make assumptions or educate the user.
You should read CHANGES_AND_HINTS.TXT before installing Slackware...

Eric

duryodhan 09-18-2008 10:18 AM

I agree , and thats what I love about it.

My point was - noting that DMA is not working should be done. I am not saying catch everything that the CHANGES_HINTS document talks about. But comeon .. DMA not working is going to change the install time from minutes to hours ... DMA is pretty fundamental

imho, my 2c

duryodhan 09-18-2008 12:54 PM

Hey it worked

I edited fstab , restarted and in lilo added root=/dev/sda2 hda=noprobe
and restarted it worked fine, then I edited lilo.conf , made an initrd again and reran lilo

after a restart it is all working fine.

Ofcourse, this is not for someone who doesn't trust himself to recover if something goes wrong (cos there is a high chance it will ... see Eric's links for a safe and nice way to do this)


All times are GMT -5. The time now is 05:32 PM.