KDE + ALSA revisited...

Joseph E. Sacco, Ph.D. joseph_sacco at comcast.net
Tue Dec 28 12:39:30 MST 2004


I still cannot get the KDE sound stuff to work with ALSA or with the
ALSA emulations of OSS. The sound test run from the KDE control panel
generates recognizable sound embedded in a sea of white noise. 
Applications like XMMS and Xine, which appear to bypass the KDE sound
system, work just fine with ALSA.

I see this behavior with the YDL kernels as well as with other kernels I
have built so I don't believe that it is a kernel configuration issue
[maybe...].

I have looked into the log files and have not seen anything revealing. I
was wondering if I was missing any interesting messages that were being
dumped to the console while KDE started up so I ran

	% startx > /tmp/startx.out 2>&1

to collect whatever messages were being dumped to the console.

I found the following:

                        ...

startkde: Starting up...
mkdir: Owner of /tmp/.ICE-unix should be set to root
kbuildsycoca running...
SetClientVersion: 0 8
ALSA lib pcm_hw.c:549:(snd_pcm_hw_start) SNDRV_PCM_IOCTL_START failed:
Broken pipe
ALSA lib pcm_hw.c:549:(snd_pcm_hw_start) SNDRV_PCM_IOCTL_START failed:
Broken pipe
ALSA lib pcm_hw.c:549:(snd_pcm_hw_start) SNDRV_PCM_IOCTL_START failed:
Broken pipe
_IceTransmkdir: Owner of /tmp/.ICE-unix should be set to root
X Error: BadValue (integer parameter out of range for operation) 2
  Major opcode:  102
  Minor opcode:  0
  Resource id:  0x0
Klipper is already running!

                     ...


Does this mean anything to anyone? For what it's worth, pcm_hw.c is a
file in the ALSA library.  In particular, the error message is raised by
an ioctl failure:


        static int snd_pcm_hw_start(snd_pcm_t *pcm)
        {
                snd_pcm_hw_t *hw = pcm->private_data;
                int err;
        #if 0
                assert(pcm->stream != SND_PCM_STREAM_PLAYBACK ||
                       snd_pcm_mmap_playback_hw_avail(pcm) > 0);
        #endif
                if (ioctl(hw->fd, SNDRV_PCM_IOCTL_START) < 0) {
                        err = -errno;
                        SYSERR("SNDRV_PCM_IOCTL_START failed");
        #if 0
                        if (err == -EBADFD)
                                SNDERR("PCM state = %s",
        snd_pcm_state_name(snd_pcm_hw_state(pcm)));
        #endif
                        return err;
                }
                return 0;
        }



-Joseph


-- 
joseph_sacco[at]comcast[dot]net



More information about the yellowdog-general mailing list