[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: I've got myself a hanky. (Was: SB 64 still not there)



On Thu, 13 May 1999, Hans van den Boogert wrote:

> Thanks all you guys for the help with the configuration of my SB AWE 64.
> I owe you all. I am some steps closer to a working solution now, but
> we're not there yet.
[...]
> # cat chiquita.au > /dev/audio
> 
> Sound error: Couldn't allocate DMA buffer
> 
> bash: dev/audio: Cannot allocate memory

 I'll bet you have more than 16MB of RAM, right?

 Okay, this is one of the annoying things about running a real operating
system like Linux on historically bent hardware like the PC. It seems that
DMA (direct memory access) on the ISA bus can only happen in the first
16MB of RAM.

 Linux likes to treat all of memory the same (because on sane hardware, it
*is*) and by default doesn't reserve any space for DMA stuff below 16MB.
This can cause problems if you want to allocate some of that memory and
it's all filled up. (The floppy drive can suffer this problem, too.)

 There are a couple of solutions. Traditionally, you'd compile sound into
the kernel, not as a module... but you and I have ISA PNP cards. I'm told
that there's an option to the sound module, "dmabuf=1", that forces it to
grab a buffer and hold it as long as the module is loaded, but this may
only be in the 2.2.x kernels.

 To make sure that this is really the problem, try two things. First, the
next time you get that message, try using the floppy drive. Second, try
booting the kernel with the option "mem=16M". (If you're using LILO, try
booting with "linux mem=16M". This will force the kernel to use only
memory below 16MB, and thus you should always have some memory free for
DMA stuff, though you'll swap more.

 Sincerely,

 Ray Ingles         (248) 377-7735      ray.ingles@fanucrobotics.com

  Modern deductive method: 1) Devise hypothesis. 2) Apply for grant.
  3) Perform experiments. 4) Revise hypothesis. 5) Backdate revised
                      hypothesis. 6) Publish.


Reply to: