Report on the Debianized VM
ned at bike-nomad.com
Wed Mar 31 01:33:22 UTC 2004
On Tuesday 30 March 2004 4:17 pm, Ross Boylan wrote:
> On Tue, Mar 30, 2004 at 06:46:20AM -0800, Ned Konz wrote:
> > On Tuesday 30 March 2004 12:19 am, Ross Boylan wrote:
> [stuff about how to specify options was here]
> FYI, I would have guessed the syntax for multiple specs was
> -vm sound=OSS display=X11
> or perhaps using a comma in between. Apparently -vm is necessary
> before each option.
> [stuff about there not being any sound was here]
> > But I assume that you've got your system working so that both the KDE
> > apps and the OSS apps (like sox/play/rec) work.
> I use sound so little that I can't verify that. Well, I have got
> sound from some websites via realplayer, I think...
> KDE itself routinely makes window opening and closing noises.
> > > However,
> > > there seem to be some problems with the latest ALSA OSS emulation; for
> > > example, KDE will give an error if one sets it to use OSS, and I have
> > > told it to use ALSA.
> > Have you made sure that the OSS emulation modules are loaded?
> > $ lsmod | grep snd
> > snd_intel8x0 37508 1
> > snd_ac97_codec 65924 1 snd_intel8x0
> > snd_mpu401_uart 11008 1 snd_intel8x0
> > snd_rawmidi 30368 1 snd_mpu401_uart
> > snd_seq_device 8456 1 snd_rawmidi
> > snd_pcm_oss 53924 0
> > snd_pcm 113700 2 snd_intel8x0,snd_pcm_oss
> > snd_page_alloc 12164 2 snd_intel8x0,snd_pcm
> > snd_timer 35588 1 snd_pcm
> > snd_mixer_oss 19584 1 snd_pcm_oss
> > snd 58468 11
> > snd_intel8x0,snd_ac97_codec,snd_mpu401_uart,snd_rawmidi,snd_seq_device,sn
> >d_pcm_oss,snd_pcm,snd_timer,snd_mixer_oss soundcore 12000 1
> > snd
> I think that part's OK. Here's what I get (Creative Soundblaster AWE
> snd-seq-midi 4000 0 (autoclean) (unused)
> snd-emu8000-synth 10644 0 (autoclean) (unused)
> snd-emux-synth 29116 0 (autoclean) [snd-emu8000-synth]
> snd-seq-virmidi 3256 0 (autoclean) [snd-emux-synth]
> snd-util-mem 1280 0 (autoclean) [snd-emu8000-synth
> snd-emux-synth] snd-opl3-synth 10152 0 (autoclean) (unused)
> snd-seq-instr 5232 0 (autoclean) [snd-opl3-synth]
> snd-seq-midi-emul 4944 0 (autoclean) [snd-emux-synth
> snd-opl3-synth] snd-ainstr-fm 1924 0 (autoclean)
> snd-seq-oss 28928 0 (unused)
> snd-seq-midi-event 3328 0 [snd-seq-midi snd-seq-virmidi
> snd-seq-oss] snd-seq 36400 2 [snd-seq-midi snd-emux-synth
> snd-seq-virmidi snd-opl3-synth snd-seq-instr snd-seq-midi-emul snd-seq-oss
> snd-seq-midi-event] snd-pcm-oss 37924 0
> snd-mixer-oss 13456 1 [snd-pcm-oss]
> snd-sbawe 21632 2 [snd-emu8000-synth]
> snd-pnp 3200 0 [snd-sbawe]
> snd-sb16-dsp 6416 0 [snd-sbawe]
> snd-pcm 60388 1 [snd-emu8000-synth snd-pcm-oss
> snd-sb16-dsp] snd-page-alloc 6548 0 [snd-pcm]
> snd-sb16-csp 15788 0 [snd-sbawe]
> snd-sb-common 7428 0 [snd-sbawe snd-sb16-dsp snd-sb16-csp]
> snd-opl3-lib 6820 0 [snd-opl3-synth snd-sbawe]
> snd-hwdep 5248 0 [snd-emux-synth snd-sb16-csp
> snd-opl3-lib] snd-timer 14532 0 [snd-seq snd-pcm
> snd-mpu401-uart 3440 0 [snd-sbawe]
> snd-rawmidi 13632 0 [snd-seq-midi snd-seq-virmidi
> snd-mpu401-uart] snd-seq-device 4256 0 [snd-seq-midi
> snd-emu8000-synth snd-emux-synth snd-opl3-synth snd-seq-oss snd-seq
> snd-sbawe snd-opl3-lib snd-rawmidi] snd 33508 0
> [snd-seq-midi snd-emu8000-synth snd-emux-synth snd-seq-virmidi snd-util-mem
> snd-opl3-synth snd-seq-instr snd-seq-oss snd-seq-midi-event snd-seq
> snd-pcm-oss snd-mixer-oss snd-sbawe snd-sb16-dsp snd-pcm snd-sb16-csp
> snd-sb-common snd-opl3-lib snd-hwdep snd-timer snd-mpu401-uart snd-rawmidi
> snd-seq-device] soundcore 3972 11 [snd]
> > > Sound's not that key for me, but I thought I'd let you know. And it
> > > would be nice if it worked.
> > I think ideally someone would write a Squeak ALSA sound plugin.
> For KDE, would there be a point in a plugin using aRTS?
> I'm not clear if either ALSA or OSS are capable of being shared by
> several apps at once (e.g., KDE and squeak). This business of each
> application needing to give up control (see below) is seriously
> > > P.S. My system is mostly testing, with a bit from unstable, so I
> > > suppose that's another suspect. However, I got the ALSA kernel
> > > patches from unstable.
> > I'm running a Debian unstable/testing system:
> > kde 3.1.2
> > alsa 1.0.3-1
> > arts 1.2.1-1
> Here it's
> kdebase 3.1.5-2
> alsa-base 1.0.3-1 ALSA sound driver common files
> alsa-modules-2 1.0.2c-2+rb.2 Advanced Linux Sound Architecture (drivers)
> alsa-oss 1.0.3a-1 Advanced Linux Sound Architecture (OSS compa
> arts 1.1.5-2
> Other KDE packages mostly at 3.1.5-1 or 3.1.5-2, with kde-core at
> > I tell artsd to use ALSA, and to release the sound hardware after 10
> > seconds.
> > In the KDE control panel, this would be "Auto-suspend if idle after 10
> > seconds".
> Hmm, I have autosuspend if idle for 60 seconds (the default I guess; I
> never touched it). But since I have it set to make noises when
> windows appear, it's guaranteed not to be idle just after squeak
> I reset to 10 seconds, switched to squeak, and then tried squeak sound
> after waiting. It works! Well, sort of. Even after I stopped the
> playback, my CPU was saturated in system (rather than user) activity.
> I should say that's suspiciously like the ALSA OSS emulation bug
> under KDE. On that, see my bug
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=232466 or the
> probably identical
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=238716. In other
> words, it may not be a squeak problem.
> Even when I enabled the squeak "soundStopWhenDone" option I could not
> get the CPU useage to stop, and KDE was unable to reclaim the sound
> However, when I saved the image (no exit), the CPU use stopped, and
> KDE was able to reclaim the sound.
> > I run Squeak using the aoss wrapper:
> > $ cat ~/bin/squeak
> > #!/bin/sh
> > aoss /usr/local/bin/squeak -vm display=X11 -vm sound=OSS -nomixer -xshm
> > -display :0 -swapbtn "$@" &
> > For me, sound output works either with or without the aoss wrapper,
> > though.
> With aoss, when I try to play sound in squeak the image hangs
> completely; even alt-. is no help.
Which points out:
"Unlike the real OSS, ALSA cannot use the device files more than the assigned
ones. For example, the first card cannot use /dev/dsp1 or /dev/dsp2, but
only /dev/dsp0 and /dev/adsp0."
Squeak will try to open the PCM channel, and will block as it's usually set
up. As soon as whatever's using the channel releases it, Squeak will
ned:/home/ned/Squeak# lsof /dev/s*nd/*
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
kdeinit 1457 ned 10u CHR 116,0 1248 /dev/snd/controlC0
squeak 8144 ned mem CHR 116,16 1303 /dev/snd/pcmC0D0p
squeak 8144 ned 10u CHR 116,16 1303 /dev/snd/pcmC0D0p
Have you tried telling it *not* to open in blocking mode?
# echo "squeak 0 0 non-block" > /proc/asound/card0/pcm0p/oss
At least this will keep Squeak from blocking when it tries to play sound
(though you won't hear anything unless nothing else is holding the PCM device
open). Instead, you'll see the error messages:
sound: /dev/dsp: Device or resource busy
If I were you, I'd turn off the window-opening sounds.
> Also, -xshm is not a recognized option for me, though it's documented
> on the man page. Perhaps a packaging issue?
$ squeak -help | grep shm
-xshm use X shared memory extension
-xshm only works when Squeak is running on the X server host.
$ xdpyinfo | grep -i shm
GPG key ID: BEEA7EFE
More information about the Squeak-dev