Re: opening files in kernel space?

Adam Heath (adam.heath@usa.net)
Fri, 13 Feb 1998 11:03:11 -0500 (EST)


On Fri, 13 Feb 1998, Trevor Johnson wrote:

> > The lastest sfxload doesn't recognize -I or -i. I ran it like sfxload -x -l,
> > and it ran fine, but it didn't lock the font. Once awe_wave was removed, and
> > reinserted, the font was lost.
>
> It sounds (no pun) as though you're using kerneld or kmod. Check out the
> keep and delay options to kerneld.

(This is not meant to sound(no pun) mean to Trevor.)

NO! NO! NO! NO! NO! NO! NO!

This discussion started out with me modifying the 2.1.86 kernel sound code.
Here is the steps taken.

Run "drvmidi terminat.mid":
Kernel request sound.o
Open starts for /dev/sequencer
Sound.o requests adlib_card, then awe_wave.
Kerneld load adlib_card fine(and opl3), then awe_wave.
Post-install for awe_wave runs sfxload.
Sfxload attempts to open /dev/sequencer also, but since there is already a
pending open in progress, sfxload stalls, kerneld stalls, the first open
stalls, and drvmidi stalls. Killing sfxload lets everything continue, but
then, there is obviously no midi sound.

Running sfxload by itself:
Kernel request sound.o
Open starts for /dev/sequencer
Sound.o requests adlib_card, then awe_wave.
Kerneld load adlib_card fine(and opl3), then awe_wave.
Post-install for awe_wave runs sfxload.
Sfxload attempts to open /dev/sequencer also, but since there is already a
pending open in progress, sfxload stalls, kerneld stalls, the first open
stalls, and the first sfxload stalls. Killing the second sfxload lets
everything continue, and the font is loaded by the first sfxload. However,
when kerneld then unloads awe_wave everything is lost.

Sb.o works fine in this instance, as I am not attempting to set mixer volumes
in conf.modules.

I want to state again. I do not want to have awe_wave remain inserted
starting at boot. My current plans on ways to alleviate this problem are,
either add a new function call to the kernel to work with the awe sound fonts,
or modify awe_wave to not reset the memory bank on loading/unloading. I don't
know the awe that well, so the first might be more feasible for me.

I have already added a new do-nothing call(for testing), and it is listed in
/proc/ksyms. How do you then get user programs to use it? I can never do the
final linking, as the function is not in any library.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu