Report on the Debianized VM

Ned Konz 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
> card):
>
> 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-opl3-synth]
> 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-opl3-lib]
> 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
> kludgey.
>
> > > 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
> 3.1.2.
>
> > 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
> starts.
>
> 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
> system.

Try setting:
	automaticPlatformSettings false
	soundQuickStart false
	soundStopWhenDone true


> 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.

See http://www.alsa-project.org/~iwai/OSS-Emulation.html

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 
continue.

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
    MIT-SHM

-- 
Ned Konz
http://bike-nomad.com
GPG key ID: BEEA7EFE



More information about the Squeak-dev mailing list