LINUX.ORG.RU

Звук частично сломался в Debian Squeeze


0

1

Друзья, помогите восстановить звук. Я не особенно соображаю в Линуксе, виндовсом пользовался много лет. Сейчас звук в системе есть через Alsa, но не работает OSS и Pulseaudio. Если установить pulseaudio, то звука нет вообще. Если снести, то Alsa работает, но в программах, которым нужен OSS, звука нет или зависают при запуске. В gstreamer-properties тестируется только alsa и только с device:default. Если выбрать девайсом одну из трёх позиций ca0106, то ползунок бегает, но звука нет. Если выбрать ESD, пишет «ESD - Enlightenment Sound Daemon: Could not establish connection to sound server». Если OSS, пишет «OSS - Open Sound System: Could not open audio device for playback. Device is being used by another application». root@debian:/home/serge# alsactl init alsactl: parse:1655: Unable to open file '/usr/share/alsa/init/ca0106': No such file or directory Звуковая карта Sound Blaster Audigy В системе есть ещё звуковая в видеокарте - Nvidia HDMI, HDA Intel. Переустановка всего связанного со звуком ничего не дала. Что бы сделать? Не хочу всё ставить заново.

Ответ на: комментарий от Homura_Akemi

Установлено и то, и другое. У меня ещё есть нетбук с установленным дебианом, там в gstremer-properties и OSS, и ESD нормально тестируются, pulseaudio устанавливается и работает. А alsactl init говорит что-то про guess method. Мне кажется, что это я что-то намутил (по гайдам), когда пытался заставить tvtime работать со звуком. Но теперь не могу вспомнить, что делал.

Sergei_Alekseev ()

Если снести, то Alsa работает, но в программах, которым нужен OSS, звука нет или зависают при запуске.

Запускайте их через aoss или настройте эмуляцию OSS: http://alsa.opensrc.org/OSS_emulation http://www.alsa-project.org/~tiwai/OSS-Emulation.html (обратите внимание на раздел PCM Mode, там рассказано про полный доступ OSS-приложения к звуковой карте).

А alsactl init говорит что-то про guess method.

После этого звук через ALSA должен заработать.

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

Через aoss запускается с чудовищными хрипами. Вы, наверно, не поняли. У меня раньше OSS работал отлично, пока что-то где-то не «сломалось», может я сломал) Мне хотелось бы каким-нибудь образом понять что именно сломалось. Про guess method говорит на нетбуке, там нет проблем со звуком. На десктопе alsactl init говорит что ca0106 не найдено. Мне представляется что у меня где-то какая-то проблема с именами устройств. Можно в каких-нибудь логах посмотреть, что и как? Или запустить программу, которая выявит ошибку? Я пока плохо соображаю в Debian'e, не понимаю что делать нужно в таких случаях.

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

Или запустить программу, которая выявит ошибку?

Текущее состояние звуковой подсистемы покажет скрипт alsa-info.sh.

Какие файлы находятся в /usr/share/alsa/init/?

Попробуйте выполнить CMD=default alsactl init (попробуйте возможные варианты из CMD=help alsactl init).

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

Вот например в .xsession-errors читаем после попытки потестить OSS и ESD в gstreamer-properties:

gstreamer-properties-Message: Error running pipeline 'ESD - Enlightenment Sound Daemon': Could not establish connection to sound server [esdsink.c(253): gst_esdsink_open (): /GstPipeline:pipeline1/GstEsdSink:esdsink1: can't open connection to esound server] gstreamer-properties-Message: Error running pipeline 'OSS - Open Sound System': Could not open audio device for playback. Device is being used by another application. [gstosssink.c(399): gst_oss_sink_open (): /GstPipeline:pipeline2/GstOssSink:osssink1]

После запуска игры Return to Castle Wolfenstein: ------- sound initialization ------- /dev/dsp: Device or resource busy Could not open /dev/dsp ------------------------------------

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

Вам не нужен ESD. Его всё равно никто не использует (а те программы, которым он может понадобиться, могут работать через OSS).

pipeline 'OSS - Open Sound System': Could not open audio device for playback. Device is being used by another application. [gstosssink.c(399): gst_oss_sink_open (): /GstPipeline:pipeline2/GstOssSink:osssink1]
После запуска игры Return to Castle Wolfenstein: ------- sound initialization ------- /dev/dsp: Device or resource busy Could not open /dev/dsp

lsof /dev/dsp

P.S.
hint: прямо под полем для ввода текста:

Внимание: прочитайте описание разметки LORCODE

обратите внимание на тег [code]

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

В /usr/share/alsa/init
00main
default
hda
help
info
test

root@debian:/home/serge# CMD=test alsactl init

Default CTL:
  CTL{numid}="0"
  CTL{iface}="CARD"
  CTL{device}="0"
  CTL{subdevice}="0"
  CTL{name}=""
  CTL{index}="0"
After CTL{reset}="mixer":
  CTL{numid}="0"
  CTL{iface}="MIXER"
  CTL{device}="0"
  CTL{subdevice}="0"
  CTL{name}=""
  CTL{index}="0"
After test sequence:
  CTL{numid}="987"
  CTL{iface}="SEQUENCER"
  CTL{device}="10"
  CTL{subdevice}="20"
  CTL{name}="Just Test"
  CTL{index}="999"
Ignore following error:
  /usr/share/alsa/init/test:38: unknown buildin command '__just_test'
CTL{do_count} test:
  *Switch* count result: 7
__ctl_search test:
alsactl: parse_line:1395: 2 untrusted character(s) replaced
  *Switch 0* search result: _Switch_
    CTL{numid}="35"
    CTL{iface}="MIXER"
    CTL{device}="0"
    CTL{subdevice}="0"
    CTL{name}="Master Playback Switch"
    CTL{index}="0"
alsactl: parse_line:1395: 2 untrusted character(s) replaced
  *Switch 1* search result: _Switch_
    CTL{numid}="35"
    CTL{iface}="MIXER"
    CTL{device}="0"
    CTL{subdevice}="0"
    CTL{name}="Master Playback Switch"
    CTL{index}="0"
First ten elements:
/usr/share/alsa/init/test:63: invalid rule
root@debian:/home/serge# 

http://autogrom.ru/files/alsa-info.txt

CMD=default alsactl init ничего не пишет, никаких положительных эффектов не наблюдается.

Sergei_Alekseev ()
Ответ на: комментарий от AITap

lsof /dev/dsp - тишина. Или так должно быть? По прежнему

------- sound initialization -------
/dev/dsp: Device or resource busy
Could not open /dev/dsp
------------------------------------
в Wolfenstein'e.

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

ALSA выглядит абсолютно исправной.

!!Soundcards recognised by ALSA
!!-----------------------------

0 [CA0106 ]: CA0106 - CA0106
Audigy SE [SB0570] at 0xdc00 irq 17
1 [NVidia ]: HDA-Intel - HDA NVidia
HDA NVidia at 0xfebfc000 irq 19

Выводить звук хотите через дискретную звуковую карту (Audigy SE), да?

По прежнему

------- sound initialization -------
/dev/dsp: Device or resource busy
Could not open /dev/dsp
------------------------------------

в Wolfenstein'e.

Попробуйте разрешить wolfenstein'у полный доступ, как описано на http://www.alsa-project.org/~tiwai/OSS-Emulation.html в разделе «PCM Mode»:
echo «имя_исполняемого_файла 0 0 direct» > /proc/asound/card0/pcm0p/oss
См. также http://www.google.ru/search?q=wolfenstein echo /proc/asound/card0/pcm0p/oss

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

Так я и говорил, что alsa работает. Перестал работать OSS.
Звук, да, через Sound Blaster, по HDMI у меня ничего не подключено.
Про Wolfenstein я это всё читал и делал. Раньше эта игра нормально работала
со звуком, запускал я её с помощью скрипта wolfsp-sdl-sound.
Теперь с жуткими хрипами и заикающимся эхом её можно запустить
aoss ./wolfsp.x86
При этом в терминале можно увидеть следующее:

------- sound initialization -------
------------------------------------
----- Sound Info -----
sound system is muted
    1 stereo
16384 samples
   16 samplebits
    1 submission_chunk
44100 speed
0xaf18ff0 dma buffer
No background file.
----------------------
Mupen64plus, например, раньше запускался со звуком
без всяких танцев с бубнами, теперь звук есть только так:
#!/bin/sh
export SDL_AUDIODRIVER="alsa"
 /usr/games/mupen64plus
Никак не могу вспомнить, что я намутил, когда пытался подружить
tvtime и OSS. Помню только что мне удалось лишь регулировать
master громкость из tvtime. Tvtime сейчас запускаю скриптом
#!/bin/sh
amixer -c CA0106 set 'CAPTURE feedback' 100% unmute
 tvtime;
 amixer -c CA0106 set 'CAPTURE feedback' 0% mute

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

Раньше эта игра нормально работала со звуком, запускал я её с помощью скрипта wolfsp-sdl-sound.

Что в этом скрипте? Пробовали ли метод с /proc/asound/card0/pcm0p/oss?

Никак не могу вспомнить, что я намутил, когда пытался подружить tvtime и OSS.

/etc/asoundrc и/или ~/.asoundrc правили?

AITap ★★★★★ ()
Последнее исправление: AITap (всего исправлений: 1 )
Ответ на: комментарий от AITap

Что в этом скрипте?


#!/bin/bash
# et-sdl-sound - SDL sound system for Enemy Territory, RTCW and Q3
# Copyright (C) 2007-2008  Pyry Haulos
# Please fill in following variables or let this script
# guess correct values.
# You can set this in GAME_PATH environment variable

GAME_PATH="/home/serge/.rtcw"

# libSDL.so
# You can set this in LIBSDL environment variable
# LIBSDL=""
# Temporary directory

TMP_DIR="/tmp"

# Use 'find' if can't locate the game or libSDL otherwise

USE_FIND="yes"

# SDL audio driver

SDL_AUDIODRIVER="alsa"

# Just extract et-sdl-sound.so

ONLY_EXTRACT="no"

# Do not touch anything below this line!
SCRIPT_NAME='wolfsp-sdl-sound'
GAME_BIN='wolfsp.x86'
GAME_DIR='RTCW'
ET_SDL_SOUND_LIB=''\
'\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03'\
63\x45\x45\x35\x63\x6c\x6f\x73\x65\x45'\-----
(Слишком большое сообщение)
------'\x76\x40\x40\x47\x4c\x49\x42\x43\x58\x58\x5f\x33\x2e\x34\x00\x5f\x5a\x32\x30'\
'\x53\x4e\x44\x44\x4d\x41\x5f\x42\x65\x67\x69\x6e\x50\x61\x69\x6e\x74\x69\x6e'\
'\x67\x76\x00\x5f\x69\x6e\x69\x74\x00'

TRIED_LIBSDL="" # for debugging info

# info "message"

info () {
	echo -e "\033[34m[${SCRIPT_NAME}] \033[32minfo\033[0m   : $1"
}

# error "message"

error () {
	echo -e "\033[34m[${SCRIPT_NAME}] \033[31merror\033[0m  : $1"
}

# eend "message"

eend () {
	error "$1"
	exit 1
}

# testgamepath "path"

testgamepath () {
	# TODO test some .pk3 files?
	if [ -x "$1/$GAME_BIN" -a "$GAME_PATH" = "" ]; then
		info "$GAME_BIN is installed to $1"
		GAME_PATH=$1
	fi
}

# testlibsdl "path"

testlibsdl () {
	TRIED_LIBSDL="$TRIED_LIBSDL $1"
	
	READLINK=`readlink -f "$1"`
	if [ "$LIBSDL" = "" -a "$READLINK" != "$1" ]; then
		#info "$1 is a symbolic link to $READLINK"
		testlibsdl "$READLINK"
	fi
	
	if [ "$LIBSDL" = "" -a -f "$1" ]; then
		if [ "`file -b "$1" | grep "ELF 32-bit LSB shared object"`" != "" ]; then
			info "32-bit libSDL.so is installed to $1"
			LIBSDL="$1"
		fi
	fi
}

if [ "$ONLY_EXTRACT" = "yes" ]; then
	echo -ne "$ET_SDL_SOUND_LIB" > "./et-sdl-sound.so" || eend "can't write ./et-sdl-sound.so"
	info "library is written to ./et-sdl-sound.so"
	exit 0
fi

[ "$GAME_PATH" = "" ] && testgamepath "/usr/local/games/$GAME_DIR"
[ "$GAME_PATH" = "" ] && testgamepath "/opt/$GAME_DIR"
[ "$GAME_PATH" = "" ] && testgamepath "/usr/games/$GAME_DIR"
[ "$GAME_PATH" = "" ] && testgamepath "~/$GAME_DIR"
if [ "$GAME_PATH" = "" ]; then
	LOCATE_GAME=`locate "$GAME_BIN" 2> /dev/null`
	for i in $LOCATE_GAME; do
		i=`dirname "$i"`
		testgamepath $i
		[ "$GAME_PATH" != "" ] && break
	done
fi
if [ "$GAME_PATH" = "" -a "$USE_FIND" = "yes" ]; then
	FIND_GAME=`find /opt/ /usr/ -type f -name "$GAME_BIN"`
	for i in $FIND_GAME; do
		i=`dirname "$i"`
		testgamepath $i
		[ "$GAME_PATH" != "" ] && break
	done
fi
[ "$GAME_PATH" = "" ] && eend "can't locate $GAME_BIN"

[ "$LIBSDL" = "" ] && testlibsdl "/usr/lib/libSDL.so"
[ "$LIBSDL" = "" ] && testlibsdl "/usr/lib/libSDL-1.2.so.0"
[ "$LIBSDL" = "" ] && testlibsdl "/usr/lib32/libSDL.so"
[ "$LIBSDL" = "" ] && testlibsdl "/usr/lib32/libSDL-1.2.so.0"
if [ "$LIBSDL" = "" ]; then
	LOCATE_LIBSDL=`locate -r libSDL[^_]*so[^_]* 2> /dev/null`
	for i in $LOCATE_LIBSDL; do
		testlibsdl $i
		[ "$LIBSDL" != "" ] && break
	done
fi
if [ "$LIBSDL" = "" -a "$USE_FIND" = "yes" ]; then
	FIND_LIBSDL=`find /usr/lib/ /usr/lib32/ -type f -name libSDL[^_]*so[^_]*`
	for i in $FIND_LIBSDL; do
		testlibsdl $i
		[ "$LIBSDL" != "" ] && break
	done
fi
if [ "$LIBSDL" = "" ]; then
	error "can't locate libSDL.so"
	info "tried following files"
	for i in $TRIED_LIBSDL; do
		FILE_INFO=`file -b "$i"`
		info "$i"
		info "   $FILE_INFO"
	done
	exit 1
fi

echo -ne "$ET_SDL_SOUND_LIB" > "$TMP_DIR/et-sdl-sound.so" || eend "can't write $TMP_DIR/et-sdl-sound.so"
info "library is written to $TMP_DIR/et-sdl-sound.so"

info "launching the game..."
cd "$GAME_PATH"

export ETSDL_SDL_LIB="$LIBSDL"
export SDL_AUDIODRIVER="$SDL_AUDIODRIVER"
LD_PRELOAD="${LD_PRELOAD}:${TMP_DIR}/et-sdl-sound.so" ./$GAME_BIN $*

rm "$TMP_DIR/et-sdl-sound.so" || error "can't remove $TMP_DIR/et-sdl-sound.so"

info "done"

Метод пробовал, звука нет.
/etc/asoundrc и ~/.asoundrc отсутствуют.

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

Метод пробовал, звука нет.

С тем же сообщением об ошибке? Если закрыть все программы, которые могли воспроизводить звук, Wolfenstein тоже не начинает играть?

/etc/asoundrc и ~/.asoundrc отсутствуют.

Что ещё можно было изменить? Другие версии пакетов? Попробуйте apt-get --purge --reinstall install alsa-base alsa-oss alsa-tools alsa-utils.
Также можно попробовать прогнать по системе debsums, чтобы узнать, нет ли ещё в системе изменённых относительно пакетов файлов.

AITap ★★★★★ ()
Последнее исправление: AITap (всего исправлений: 1 )
Ответ на: комментарий от AITap

Я создавал такой файл. У меня иногда пропадал звук
после перезагрузки, мне посоветовали создать asound.conf:

defaults.ctl.card 0
defaults.pcm.card 0
defaults.timer.card 0
Может здесь нужно что-то добавить для OSS?

Sergei_Alekseev ()
Ответ на: комментарий от AITap

Вот что удалось обнаружить с помощью debsums
Я добавил что изменил/добавил:

root@debian:/home/serge# debsums -e -c

/etc/modprobe.d/alsa-base.conf
options snd_hda_codec_nvhdmi index=-2
options snd_hda_intel index=-2

/etc/esound/esd.conf
[esd]
default_options=-as 1

/etc/gdm3/daemon.conf
[daemon]
TimedLoginEnable=false
AutomaticLoginEnable=true
TimedLogin=serge
AutomaticLogin=serge
TimedLoginDelay=30


/etc/default/bootlogd
BOOTLOGD_ENABLE=Yes


/etc/security/limits.conf
  @audio          -       rtprio          100
  @audio          -       nice            -10


/etc/lirc/hardware.conf
LIRCD_ARGS=""
LOAD_MODULES=true
DRIVER=""
DEVICE=""
MODULES=""
LIRCD_CONF=""
LIRCMD_CONF=""

/etc/ntp.conf
driftfile /var/lib/ntp/ntp.drift
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1

debsums: missing file /etc/security/limits.d/audio.conf (from jackd1 package)
debsums: missing file /etc/pulse/client.conf (from libpulse0 package)

root@debian:/home/serge# debsums -c
/var/lib/aspell/ru.compat
/var/lib/aspell/ru.rws
debsums: no md5sums for binutils
debsums: no md5sums for bogofilter
debsums: no md5sums for dbview
debsums: no md5sums for doc-debian
debsums: no md5sums for emacsen-common
debsums: no md5sums for g++
debsums: no md5sums for gcc-multilib
debsums: no md5sums for gcj-4.4-jre
debsums: no md5sums for gcj-jre
debsums: no md5sums for gcj-jre-headless
debsums: no md5sums for git
debsums: missing file /usr/share/pixmaps/backgrounds/gnome/nature/Aqua.jpg (from gnome-backgrounds package)
debsums: missing file /usr/share/pixmaps/backgrounds/gnome/nature/Blinds.jpg (from gnome-backgrounds package)
debsums: missing file /usr/share/pixmaps/backgrounds/gnome/nature/Dune.jpg (from gnome-backgrounds package)
debsums: missing file /usr/share/pixmaps/backgrounds/gnome/nature/FreshFlower.jpg (from gnome-backgrounds package)
debsums: missing file /usr/share/pixmaps/backgrounds/gnome/nature/Garden.jpg (from gnome-backgrounds package)
debsums: missing file /usr/share/pixmaps/backgrounds/gnome/nature/GreenMeadow.jpg (from gnome-backgrounds package)
debsums: missing file /usr/share/pixmaps/backgrounds/gnome/nature/LadyBird.jpg (from gnome-backgrounds package)
debsums: missing file /usr/share/pixmaps/backgrounds/gnome/nature/RainDrops.jpg (from gnome-backgrounds package)
debsums: missing file /usr/share/pixmaps/backgrounds/gnome/nature/Storm.jpg (from gnome-backgrounds package)
debsums: missing file /usr/share/pixmaps/backgrounds/gnome/nature/TwoWings.jpg (from gnome-backgrounds package)
debsums: missing file /usr/share/pixmaps/backgrounds/gnome/nature/Wood.jpg (from gnome-backgrounds package)
debsums: missing file /usr/share/pixmaps/backgrounds/gnome/nature/YellowFlower.jpg (from gnome-backgrounds package)
debsums: no md5sums for libaudio2
debsums: no md5sums for mawk
debsums: no md5sums for mrim-prpl
debsums: no md5sums for netbase
/usr/share/applications/puddletag.desktop
debsums: no md5sums for xloadimage

apt-get --purge --reinstall install alsa-base alsa-oss alsa-tools alsa-utils выполнил, ничего не изменилось.
Вспомнил что делал chmod 666 /dev/mixer и chmod 666 /dev/dsp
А также вспомнил с чего вроде бы всё началось - у меня раньше стояло pulseaudio,
всё работало нормально, потом начали зависать программы,
в которых установлен в настройках pulseaudio плагин.
Я переустановил pulseaudio и у меня пропал звук совсем.
Удалил pulse, но звук не появился.
Переустановил альсу, звука нет.
Тогда я по совету установил alsa так:
apt-get install build-essential module-assistant
m-a prepare
m-a a-i alsa
После этого звук появился. Я после пробовал ещё два раза ставить pulse,
но после установки оной звук пропадает вообще, alsa тоже перестаёт работать.
Когда именно пропала эмуляция OSS, не помню, возможно я не пользовался
программами, которые её требуют.

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

У меня иногда пропадал звук
после перезагрузки, мне посоветовали создать asound.conf:

defaults.ctl.card 0
defaults.pcm.card 0
defaults.timer.card 0

По идее, эту проблему должны решить опции

options snd_hda_codec_nvhdmi index=-2
options snd_hda_intel index=-2

в /etc/modprobe.d/alsa-base.conf.

Может здесь нужно что-то добавить для OSS?

Нет. Кроме того, OSS как таковой в системе нет (если не поставить oss4-dkms), есть только её эмуляция средствами ALSA для рассчитанных на OSS программ.


А также вспомнил с чего вроде бы всё началось - у меня раньше стояло pulseaudio,
всё работало нормально, потом начали зависать программы,
в которых установлен в настройках pulseaudio плагин.
Я переустановил pulseaudio и у меня пропал звук совсем.
Удалил pulse, но звук не появился.
Переустановил альсу, звука нет.

Попробуйте поднять Pulseaudio обратно, обращая внимание на его логи.

Тогда я по совету установил alsa так:

apt-get install build-essential module-assistant
m-a prepare
m-a a-i alsa

Какие пакеты собрал m-a? Попробуйте поставить обратно дистрибутивные.

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