# Problems with DMA [solved]

## CapnLoogie

Hello all,

I have a Asus P5A with a K6-2-500 in it.  Ive installed and everything has gone fine.  Now when I boot I get warnings telling me that I dont have DMA turned on.  After digging through the forums I found a few posted fixes for the problem.  Ive tried turning on the correct drivers in the Kernel.  Ive even hacked the driver as stated by Moocha.  I have the correct drivers installed in the Kernel (I think).  The machine has a ALi 1543C south bridge with a M5229 Ide controller on it.  Has any one had any luck getting UDMA/DMA  enabled on this chipset?  If so would you please list all the options you turned on in the Kernel?  This machine isnt anything critical so Ill try hacks if youve got em  :Smile:  The Kernel version is 2.6.12-r9 btw.  Also I might add that I had previously installed using genkernel, the DMA thing never came up then.  I thought I might learn how to compile a Kernel correctly, so I re-installed with a manual Kernel generation.  This is all Ive run into so far.

Thanks for your time

This is the post I was checking into:

https://forums.gentoo.org/viewtopic-t-301098-highlight-m5229+dma.htmlLast edited by CapnLoogie on Fri Sep 02, 2005 2:22 am; edited 2 times in total

----------

## Adrien

Hi!

What you could is:

1- Give us the exact error message you get at boot.

2- Give us the whole output of:

```
# zgrep "DMA" /proc/config.gz
```

cheers

----------

## CapnLoogie

Hi.

Sorry for not answering sooner.  Im not sure how to get the error from the start-up screens.  But basicly its an warning when the file systems are mounted and checked.  It tells me that I can check the file system faster if I have DMA on.  The second one is when I run hdparm on the drive, I get this:

```
/dev/hda:

 setting using_dma to 1 (on)

 HDIO_SET_DMA failed: Operation not permitted

 using_dma    =  0 (off)

```

I got a few hits when I did the search and I pointed to the most indepth one I found in the first post.  It hasnt helped me though.  I tried your command and I get this :

```
gzip: /proc/config.gz: No such file or directory

```

I nano'ed the /proc/DMA file though and all I found in it is this:

```
 4: cascade
```

----------

## Cothol

CapnLoogie I have the exact same error like you have, exact same output when trying to set the DMA manualy (Operation not permitted) and when looking at the /proc/DMA file  (4: cascade).

I hope someone can help us out here. I'm a Gentoo newbie, been running slackware for two months before but with Gentoo I run into problems I didn't have with sack, which is both fun and fustrating  :Smile: 

Oh, my filesystem is ext3 and mounted in fstab with the deafults,noatime options btw

----------

## CapnLoogie

Yeah Im a windoze convert myself.  I still run (the other os) on my main machines though for gaming.  Im trying to teach myself Linux a bit before I convert completly.  Once I can do a full install that is tweaked and stable Ill subscribe to Transgaming Cedega so I can run Microsluff games.  This one is strange though cause I thought when I compiled the kernel with the options marked (dangerous) support for the chipset it would turn DMA on.  Oh well Im sure we will figure it out, somebody out there has to know  :Smile: 

----------

## Cothol

Hey, good news I solved the problem (in my case atleast)

When configure the kernel in the Device Drivers -> ATA/ATAPI/... section, I choosed just generic dma chipset support before and did not enable "VIA82CXXX chipset support" since I have a VIA8235 chipset (ie not VIA82"C"-something. I also unchecked one "PIII DMA support"-option that I didn' know as on. And now it works, hdparm shows DMA = on.

Hope you can sort it out to! Good luck!

----------

## Adrien

Hi again!

so, to log the boot process messages (cause it'd be interesting to have a look anyway):

edit /etc/conf.d/rc and set RC_BOOTLOG to yes:

```
RC_BOOTLOG=yes
```

And then:

```
# emerge showconsole
```

And then reboot the computer. After reboot, you should see a file in /var/log that's called boot.msg. That's your bootlog file from which you can extract the DMA stuff.

Concerning the other command (zcat ....) it's because you haven't enabled access to config through /proc/config.gz in the kernel. Enable it if you want and give us the output or simply:

```
# grep "DMA" /usr/src/linux/.config
```

----------

## Adrien

 *Cothol wrote:*   

> When configure the kernel in the Device Drivers -> ATA/ATAPI/... section, I choosed just generic dma chipset support before and did not enable "VIA82CXXX chipset support"

 

Good thing you finally chose it!  :Laughing: 

That's why I'd like to check the .config from CapnLoogie. In order to check if the support for his chipset is enabled.

Happy to hear it works now, by the way!  :Wink: 

----------

## CapnLoogie

Ok here is the code from the grep command.

```
CONFIG_GENERIC_ISA_DMA=y

CONFIG_ISA_DMA_API=y

CONFIG_BLK_DEV_IDEDMA_PCI=y

# CONFIG_BLK_DEV_IDEDMA_FORCED is not set

CONFIG_IDEDMA_PCI_AUTO=y

# CONFIG_IDEDMA_ONLYDISK is not set

CONFIG_BLK_DEV_IDEDMA=y

# CONFIG_IDEDMA_IVB is not set

CONFIG_IDEDMA_AUTO=y
```

I will do the emerge and get you the boot info next.

   To be continued........

----------

## CapnLoogie

Hmmm......

Well perhaps I did something wrong.  All I got in the boot log is this:

```
 * Activating (possible) swap ...

  [ ok ]

 * Checking root filesystem ...

******************************************************

* Warning: The dma on your hard drive is turned off. *

* This may really slow down the fsck process.        *

******************************************************

Reiserfs super block in block 16 on 0x303 of format 3.6 with standard journal

Blocks (total/free): 4738352/4118589 by 4096 bytes

Filesystem is clean

Filesystem seems mounted read-only. Skipping journal replay.

Checking internal tree..finished

  [ ok ]

 * Remounting root filesystem read/write ...

  [ ok ]

 * Setting hostname to Gentoo-K6-2 ...

  [ ok ]

 * Calculating module dependencies ...

  [ ok ]

 * Using /etc/modules.autoload.d/kernel-2.6 as config:

 *   Loading module tulip ...

  [ ok ]

 * Autoloaded 1 module(s)

 * Checking all filesystems ...

/dev/hda1: clean, 37/24480 files, 6719/97744 blocks

  [ ok ]

 * Mounting local filesystems ...

  [ ok ]

 * Mounting USB device filesystem (usbfs) ...

  [ ok ]

 * Activating (possibly) more swap ...

  [ ok ]

 * Setting system clock to hardware clock [UTC] ...

  [ ok ]

```

Seems like a small output from such alot of text that goes flying by.........

I followed your directions to the letter though

----------

## CapnLoogie

Tried enabling some generic stuff in the kernel...  Heres the new config:

```
CONFIG_GENERIC_ISA_DMA=y

CONFIG_ISA_DMA_API=y

CONFIG_BLK_DEV_IDEDMA_PCI=y

CONFIG_BLK_DEV_IDEDMA_FORCED=y

CONFIG_IDEDMA_PCI_AUTO=y

CONFIG_IDEDMA_ONLYDISK=y

CONFIG_BLK_DEV_IDEDMA=y

# CONFIG_IDEDMA_IVB is not set

CONFIG_IDEDMA_AUTO=y
```

This didnt help either  :Sad: 

----------

## CapnLoogie

Ummmm....  Damn Im a noob!!!

 :Embarassed:   :Embarassed: 

I figured it out.  I didnt have /boot mounted when I copied the new kernel over.  So there was nothing to copy too.....

Yikes!!  Sorry guys.  But at least I figured out what I did wrong  :Rolling Eyes: 

----------

## Adrien

 *CapnLoogie wrote:*   

> Ummmm....  Damn Im a noob!!!
> 
>  
> 
> I figured it out.  I didnt have /boot mounted when I copied the new kernel over.  So there was nothing to copy too.....
> ...

 

Ok 'cause everything seemed right otherwise (kernel and stuff)

No problem, glad it works now!  :Smile: 

----------

