I am running a Linux on a P166 with 16 MB RAM + 20-30MB swap. The
kernel version is 2.0.29. I have a ProAudio Spectrum 16 soundcard
installed and the kernel is compiled to support it. I have perl
version 5.002 or 5.003 installed on my system.
I have tried to write a perl script that will play digital audio by
using the /dev/dsp device. However, when I initiate the
open (AUDIO, ">/dev/dsp") it fails and $! (the perl error variable)
contains the text "operation not permitted".
The equivalent C code works in a perfect manner, and I have valid
permissions to perform that operation. sysopen() doesn't work either
and fails from the same reason. Moreover, opening "/dev/cua3" (my
modem's serial port) was successful in perl.
At the moment I have no clue why it happens and how to overcome it. I
posted the problem to the Israeli Linux UG mailing list, but none of
its members could come with any solution. One should try this code
with a sound card other than ProAudio Spectrum 16 (like SB/Pro/16).
Also, if one has the means to debug the perl interpreter and/or the
Linux kernel it may also prove fruitfull.