Re: [maillist] Cannot allocate DMA Buffer

Frank Schneider (SPATZ1@t-online.de)
Wed, 13 Oct 1999 18:44:28 +0200

Hallo...

Klaus Schäfer wrote:
>
> Das ist mein kleines Problem.
>
> meine /var/log /messages enthält eine ganze Menge solcher Zeilen.
> Und "last message repeapt XX times".
> Ist wohl ein Soundkartenproblem.
> Die Meldungen habe ich zuerst gar nicht beachtet, ich hatte andere
> Probleme.
>
> Nun wollte ich der Kurzweil wegen mal in Hopkins FBI reinschauen,
> und ... kein Ton, dafür wieder diese Meldungen in der /var/log
> /messages.
>
> Nun sollte man ja vielleicht keinen KDE- Sound für den Programmstart
> verwenden,
> wenn das Programm selber krach machen will. Hab ich aber auch nicht.

Hat damit nix zu tun, geht trotzdem.
Bloß zwei MPG-Player z.b. gleichzeitig gehen nicht...

> Meine SB (Vibra) 16 PnP habe ich mit DLDAdmin einderichtet und geht
> sonst ganz gut.
> Alle KDE-Soundfiles werden korrekt wiedergegeben.
> Nicht aber alles, was ich sonst noch so runliegen habe, sondern nur
> einiges.
> aKtion gibt auch MPG´s die Ton enthalten, Stellenweise ohne wieder.

Manche .WAV-Files lassen sich nicht abspielen, die Erfahrung hatte ich
auch schon.
Bei MPGs muß der Player die Bitrate "können", nicht jeder Player kann
192kbit/sec Files oder speziell gecodete wie 8-Bit oder so.
Kann also auch am File liegen.

> Das KDE-Kontrollzentrum/Informationen hat folgende Informationen
> für die Soundkarte parat
>
> IRQ = 5
> I/O =0220-022f
> DMA = 0 (8)
> DMA = 5 (16)
> Driver loaded as an Module
> Sound Blaster 16 (4.13) Duplex
>
> Soweit so gut. rc.log hat nichts zu melden. lsmod sagt:
>
> Module Used by
> sb 2 autoclean
> uart 401 2 autoclean [sb]
> sound 0 autoclean [sb uart401]
> soundlow 0 autoclean [sound]
> soundcore 5 autoclean [sb sound]
> ...sonstiger SchnickSchnak
>
> Also für mich ist hier alles in Ordnung. Aber irgendetwas scheint ja
> nicht zu stimmen,
> mit dem DMA-Buffer, oder ? Kann man irgendwo rauskriegen wo der
> DMA-Buffer ist
> und wie ich da rankomme ? (Im PC-Gehäuse wird er ja wohl noch sein.)
>
> Irgendeine Idee

Ja.

Das Problem ging schonmal durch die Liste.

Dir wird auffallen, das nach einem Reboot der Sound wieder geht.
Das liegt daran, das der DMA-Buffer für die Soundkarte nicht dauerhaft
belegt wird, sondern bei jedem Sound-Abspielen neu versucht wird zu
belegen.

Bei sehr gut genutztem Hauptspeicher kann es aber sein, das das nicht
geht, das der Speicher unter 16MB einfach voll ist.
DMA-Buffer können aber nur dort angelegt werden (Jubelschreiben bitte an
die Erfinder des IBM-PC-XT), sodaß wenn der dortige Speicher voll ist,
nix mehr geht.

Abhilfe ist simpel:
Man belegt den DMA-Buffer beim Systemstart (genauer: Beim Laden des
Sound-Moduls) und gibt ihn eben nicht mehr her...

Damit das gemacht wird, muß man dem Modul "sound.o", das normalerweise
vom Kerneldämon automatisch geladen wird, wenn das Haupt-Soundmodul (bei
SoundBlaster z.b. "sb.o", bei einem Windows-Sound-System "ad1848.o") in
den Kernel geladen wird, den Parameter "dmabuf=1" übergeben.

Also soll folgendes funktieren:

Im File /etc/conf.modules eintragen:

--------/etc/conf.modules---------
alias net-pf-3 off
alias net-pf-4 off
alias net-pf-5 off
alias block-major-22 off
alias scsi_hostadapter aic7xxx
alias eth0 eepro100
alias sound sb
options sound dmabuf=1 <----------die Zeile
options sb io=0x0220 irq=5 dma=0
------------------------------------

Nach einem Reboot soll es dann gehen.

Wenns nicht geht, und sich keiner mit einer andren Lösung meldet, bitte
PM an mich, dann schick ich dir meinen "Horrible Hack", mit dem es bei
mir funzt, aber das ist dann etwas undurchsichtig, halt nen
Midnighthack.....

> PS. Ich hoffe doch das das ein Delix-Problem ist, sonst wäre es ja OT,
> und ich müste mich
> diesbezüglich nach einer anderen Informationsquelle umsehen. |-)

Ist IMHO kein Delix-Problem...macht aber nix.

Solong..
mfg Frank.

--
Frank Schneider, <SPATZ1@T-ONLINE.DE>.                           
-Linux: Discover the chances Windows NT never will have !  
... -.-