LINUX.ORG.RU

Словил монопольный захват звука в ALSA

 ,


0

0

Работаю-работаю, запускаю разные программы, и вдруг: http://i.imgur.com/Ah4oaXP.png В других программах тоже не работает.

Первая мысль «что-то монопольно захватило звук, надо разлогиниться и залогиниться снова». Сделал - не помогло. Есть ли команда определения того, что сейчас использует звук? Например если я не могу отмонтировать раздел диска, я делаю lsof | grep sdb1.

Opensuse 11.4 Evergreen LTS x86_64, Linux 2.6.37-0.20-desktop, ALSA, PulseAudio выключен.

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 0: ALC662 rev1 Analog [ALC662 rev1 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

$ ps -A | tail -n20
22168 ?        00:00:00 knotify
22171 ?        00:00:02 xneur
22177 ?        00:00:00 sh <defunct>
22189 ?        00:00:00 kmix
22194 ?        00:00:00 sh <defunct>
22210 ?        00:00:00 dbus-launch
22214 ?        00:00:00 dbus-daemon
22223 ?        00:00:00 xfconfd
22292 ?        00:00:01 konsole
22293 pts/1    00:00:00 bash
22459 pts/1    00:00:00 su
22474 pts/1    00:00:00 bash
22629 ?        00:03:05 firefox
22642 ?        00:00:00 gconfd-2
22664 ?        00:00:00 firefox <defunct>
22853 pts/1    00:00:47 MobilePartner.b
23397 ttyUSB0  00:00:00 pppd
23909 pts/2    00:00:00 bash
26237 ?        00:00:08 kworker/0:1
27469 ?        00:00:36 plugin-containe

Полный список процессов. Меня смущают процессы 22177 и 22194. kill -9 22177 не закрывает его.

Я могу перезагрузиться, но мне очень интересно, что же может монопольно захватывать звук?

Предположил что захватили /dev/dsp. Сделал lsof | grep dsp - ничего нет. Звук по-прежнему не работает.

Я слышал что приложение может опционально захватить весь звук - слышал что mplayer так делает с DTS-звуком, чтобы ничего не влезало и не искажало.

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от Deleted
linux-athlon64x2:/home/zenitur # lsof /dev/snd/*
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/zenitur/.gvfs
      Output information may be incomplete.
COMMAND   PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
kmix    22189 zenitur   10u   CHR  116,6      0t0 4207 /dev/snd/controlC0

Ура, нужно всего лишь «прибить» kmix!

==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 56.13.100 (internal)
AUDIO: 44100 Hz, 2 ch, floatle, 0.0 kbit/0.00% (ratio: 0->352800)
Selected audio codec: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio))
==========================================================================
[AO_ALSA] alsa-lib: pcm_dmix.c:985:(snd_pcm_dmix_open) unable to create IPC semaphore
[AO_ALSA] Playback open error: Permission denied
Failed to initialize audio driver 'alsa'
Could not open/initialize audio device -> no sound.

Вредина. Похоже, придётся перезагрузиться, и тогда Линус Торвальдс никогда не исправить редко воспроизводящийся баг, который я случайно встретил...

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

Полный бред. Banshee через Gstreamer 0.10 выводит аудио! И игра Syobon Action через libSDL 1.2 тоже выводит! А VLC, mplayer и системные звуки не хотят.

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от ZenitharChampion
linux-athlon64x2:/home/zenitur # lsof /dev/snd/*
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/zenitur/.gvfs
      Output information may be incomplete.
linux-athlon64x2:/home/zenitur # lsof /dev/dsp
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/zenitur/.gvfs
      Output information may be incomplete.
COMMAND     PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
SyobonAct 13365 zenitur    5w   CHR   14,3      0t0 5438 /dev/dsp

Запустил mplayer -ao oss - заработало.

ZenitharChampion ★★★★★ ()

Если что, странная система ещё включена. Давайте команды, буду пробовать. Пока что эмуляция OSS работает для любого приложения (но только одного), а ALSA - нет. lsof | grep /dev/snd/* выдаёт пустоту.

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

что значит словил, какой линус? монопольный захват — намеренная фича для звуковых серверов и профессионального звукового софта

anonymous ()
Ответ на: комментарий от ZenitharChampion

зомби процесс — просто pid сохранйнный ядром. он не может ничего захватить

anonymous ()
Ответ на: комментарий от ZenitharChampion

запусти lsof/fuser ещё раз, может что-то перезапускается и захватывает

anonymous ()

Моё любопытство прошло. У меня всё-таки не Linux 4.0, а 2.6.37. И ALSA 1.0.23. Было бы последнее - можно было бы проводить отладку и отправлять результаты на kernel.org

ZenitharChampion ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.