LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   How to enable DMA? (https://www.linuxquestions.org/questions/linux-hardware-18/how-to-enable-dma-72469/)

Piero 07-13-2003 10:39 PM

How to enable DMA?
 
My OS is Red hat 7.3. I found my hard disk is very slow and knew "using dma = 0".
So I tried the following command, " hdparm -d1 /dev/hda".
But the Pc told me,"HDIO_SET_DMA failed: Operation not permitted
using dma = 0 (off)"
I log in as root. I eager to know how I can gain the permission to set the DMA mode.

Thanks!

LoungeLizard 07-13-2003 10:45 PM

were you loged in a root or did you just su

and if you su...and you did not use su- then you would not get the correct path there for getting Operation not permitted

Piero 07-13-2003 10:53 PM

I logged in as root.
But I haven't the right to change the permission to set the DMA mode yet.

Half_Elf 07-14-2003 12:21 AM

maybe something you forgot in your kernel? Make sure you have enabled the DMA mode for disk in your kernel (somewhere in IDE-ATA options). Make sure you MB can handle DMA too :)

Piero 07-14-2003 02:21 AM

I viewed the /var/log/messages, found that,
"Jul 14 11:05:07 ies-031377 kernel: ide0: Speed warnings UDMA 3/4/5 is not functional.
Jul 14 11:05:15 ies-031377 kernel: ide0: unexpected interrupt, status=0x58, count=1
Jul 14 11:05:32 ies-031377 kernel: ide0: unexpected interrupt, status=0x58, count=2
Jul 14 11:05:37 ies-031377 kernel: ide0: Speed warnings UDMA 3/4/5 is not functional.
Jul 14 11:05:55 ies-031377 kernel: ide0: unexpected interrupt, status=0x58, count=3
Jul 14 11:06:34 ies-031377 kernel: ide0: Speed warnings UDMA 3/4/5 is not functional.
Jul 14 11:06:50 ies-031377 kernel: ide0: unexpected interrupt, status=0x58, count=4
......
Jul 14 11:19:26 beatles kernel: Uniform Multi-Platform E-IDE driver Revision: 6.31
Jul 14 11:19:26 beatles kernel: ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
Jul 14 11:19:26 beatles kernel: PCI_IDE: unknown IDE controller on PCI bus 00 device f9, VID=8086, DID=24cb
Jul 14 11:19:26 beatles kernel: PCI: Device 00:1f.1 not available because of resource collisions
Jul 14 11:19:26 beatles keytable: Loading system font: succeeded
Jul 14 11:19:26 beatles kernel: PCI_IDE: (ide_setup_pci_device:) Could not enable device.
Jul 14 11:19:26 beatles kernel: hda: ST380011A, ATA DISK drive
......"
How to deal with it?
Any good idea is appreciated!

Half_Elf 07-14-2003 09:36 AM

hum... what's your hard drive? a very old one?
if it's recent, the problem is probably about your MotherBoard chipset... I never heard of a non-DMA mobo, but... Find the chipset used by your kernel in dmesg and just be sure it's the real chipset your mobo use.

Piero 07-14-2003 07:45 PM

I tried the command "dmesg" and found the following errors.
"......
Unknown bridge resource 0: assuming transparent
Unknown bridge resource 0: assuming transparent
Unknown bridge resource 1: assuming transparent
......
PCI_IDE: unknown IDE controller on PCI bus 00 device f9, VID=8086, DID=24cb
PCI: Device 00:1f.1 not available because of resource collisions
PCI_IDE: (ide_setup_pci_device:) Could not enable device.
hda: ST380011A, ATA DISK drive
......"
I think the motherboard or the hard disk is too new for the kernel(2.4.18-3) to recognize. I have an important software running on this version of kernal, so I don't want to update the kernel to a newer one.
Can I use some drivers to make the kernel recognize the motherboard(GIGA BYTE 845PE) and the hard disk(ST380011A).
Then what shall I do?

sthemage 07-14-2003 08:28 PM

I'm not sure if I have the same issue as you, but it probably is. It has to do with the kernel IDE drivers. I don't think there's much you can set in the linux kernel ".config" file that would help. The IDE drivers just don't recognize your IDE controller. Try upgrading to the 2.4.22-pre5 kernel and see if it works. It didn't for me. If not, email the kernel IDE maintainer with a bug report.

Here's my thread on the subject, fwiw:

http://www.linuxquestions.org/questi...threadid=72226

Steve

Piero 07-14-2003 09:06 PM

Then what you mean is that if I don't update the kernel, I can't enable the DMA Channel.
Is that true?

sthemage 07-14-2003 10:44 PM

Yeah, pretty much.

This happens a lot with new hardware. When they make the linux kernel releases, they're all based on the current hardware at the time (or actually they're a little behind in general). It will take them a while to catch up to new hardware and create patches in the kernel for them. At least, that's my understanding.

Submitting a bug report to the IDE maintainer might help. See the MAINTAINERS file at the top of /usr/src/linux. That will tell you who to email and what to include in the email.

Steve

Piero 07-14-2003 11:57 PM

Thanks, although I feel disappointed.

Bruce Hill 07-15-2003 02:17 AM

Re: How to enable DMA?
 
Quote:

Originally posted by Piero
My OS is Red hat 7.3. I found my hard disk is very slow and knew "using dma = 0".
So I tried the following command, " hdparm -d1 /dev/hda".
But the Pc told me,"HDIO_SET_DMA failed: Operation not permitted
using dma = 0 (off)"
I log in as root. I eager to know how I can gain the permission to set the DMA mode.


You were on the right track, but didn't get it all done correctly. And yes, you must be root to do this.

This may help more than the other information. It worked fine for me in RedHat 9, though the performance increase was minimal. It did, however, enable DMA and set the I/O to 32-bit.
http://linux-newbie.sunsite.dk/lnag_...html#32_bit_hd

Piero 07-15-2003 07:24 PM

Thanks for your help!
I'll try.

sthemage 07-15-2003 08:46 PM

Piero, for what it's worth, I solved my DMA problem with the ASUS P4P800 motherboard. Go back to that thread I linked to above. I wasn't setting something I had to set in my kernel .config file. But it wasn't obvious. Maybe you need to do something similar, and it probably won't be obvious either. That is if your motherboard's chipset is supported.

Good luck.

Steve

OAnimal 07-21-2003 06:05 AM

I solved this issue by setting
ide0=ata66
in the /etc/lilo.conf file, in the append sections. Then you have to run /sbin/lilo to make sure the changes are applied on the next reboot. If you use grub, then edit /etc/grub.conf, however I don't know if you have to run something after that (similar to lilo).


All times are GMT -5. The time now is 04:32 AM.