ALSA виснет при выгрузке её модуля и всякий раз, когда приложения обращаются к ней.. [solved]

Да.. проблема интересная конечно. Делаю:

localhost ~ # /etc/init.d/alsasound stop
* WARNING: you are stopping a boot service.
* Storing ALSA Mixer Levels ... [ ok ]
* Killing processes using ALSA ... [ ok ]
* Unloading ALSA modules ...

..и зависло... оно не хочет реагировать на ctrl+c/z в консоли. И через kill если его убиваешь, то поднять всё равно не возможно (говорит "модуль в данное время останавливается..."). Висит - часа два точно. Далее терпения не хватает.

Позавчера всё работало. Вчера.. свет выключали. То ли совпадение...
Всё бы оно ничего, но когда приложение (amarok, kaffeine, kmplayer, mplayer) пытаются начать звучать - они тоже напрочь виснут.
Это вообще хана какая-то.

А в конце выключения компа - выгружаются модули - этот модуль опять виснет и весь процесс выключения/перезагрузки также виснет.
Вы представляете себе как каким способом я выключаю комп? :)

Что пробовал:
1. Полностью переустанавливать:
emerge -C alsa-lib alsa-driver alsa-oss alsa-utils
emerge alsa-lib alsa-driver alsa-oss alsa-utils
(даже сегодня (после очередной перезагрузки) звук заработал, попробовал выгрузить - отлично выгрузилось. Причем перезагрузки ничем не отличаются ничего не делаю. Но почему-то один раз работало. Более перезагружал - нет. Проблема остаётся.)

- Конфиги ДЕФОЛТОВЫЕ. И с ними раз даже работало. А более нет.
- Альса не из ядра, отдельно.
- В ядре у меня полностью отключена поддержка звука (выключены ветки Open Sound System и Advanced Linus Sound Architecture).

2. Проверять СМАРТ и райзерФС раздел (где хранится вся система). Ошибок никаких не выявлено. (проверял только чтением). "no corruptions found".

3. ...Может что ещё порекомендуете?

вот кстати

вот кстати аналогичная проблема была:
http://linuxforum.ru/index.php?showtopic=41240

но с другой версией альсы.. а в конце этой темы там что решение типа? только видимо под другую версию, если это и оно.

а кстати, версия у меня ПОСЛЕДНЯЯ на сегодня (x86 у меня). Карточка "SB Live! 5.1".

localhost ~ # emerge -pv alsa-lib alsa-driver alsa-oss alsa-utils

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild R ] media-libs/alsa-lib-1.0.15_rc2 USE="midi -alisp -debug -doc" ALSA_PCM_PLUGINS="adpcm alaw copy dshare dsnoop extplug file hooks ladspa lfloat linear meter mulaw multi null rate route share shm" 0 kB
[ebuild R ] media-sound/alsa-driver-1.0.15_rc2 USE="midi oss -debug" ALSA_CARDS="emu10k1 -ad1816a -ad1848 -ad1848-lib -ad1889 -adlib -ali5451 -als100 -als300 -als4000 (-aoa) (-aoa-fabric-layout) (-aoa-onyx) (-aoa-soundbus) (-aoa-soundbus-i2s) (-aoa-tas) (-aoa-toonie) (-armaaci) -asihpi (-at91-soc) (-at91-soc-eti-b1-wm8731) -atiixp -atiixp-modem (-au1x00) -au8810 -au8820 -au8830 -azt2320 -azt3328 -bt87x -ca0106 -cmi8330 -cmipci -cs4231 -cs4231-lib -cs4232 -cs4236 -cs4281 -cs46xx -cs5535audio -darla20 -darla24 -dt019x -dummy -echo3g -emu10k1x -ens1370 -ens1371 -es1688 -es18xx -es1938 -es1968 -es968 -fm801 -fm801-tea575x -gina20 -gina24 -gusclassic -gusextreme -gusmax (-harmony) -hda-intel -hdsp -hdspm -ice1712 -ice1724 -indigo -indigodj -indigoio -intel8x0 -intel8x0m -interwave -interwave-stb -korg1212 -layla20 -layla24 -loopback -maestro3 -mia -miro -mixart -mona -mpu401 -msnd-pinnacle -mtpav -mts64 -nm256 -opl3sa2 -opti92x-ad1848 -opti92x-cs4231 -opti93x -pc98-cs4232 -pcsp -pcxhr -pdaudiocf -pdplus -portman2x4 (-powermac) (-pxa2xx-i2sound) (-pxa2xx-soc) (-pxa2xx-soc-corgi) (-pxa2xx-soc-poodle) (-pxa2xx-soc-spitz) (-pxa2xx-soc-tosa) -riptide -rme32 -rme96 -rme9652 -s3c2410 -sa11xx-uda1341 -sb16 -sb8 -sbawe -seq-dummy -serial-u16550 -sgalaxy -soc -sonicvibes -sscape (-sun-amd7930) (-sun-cs4231) (-sun-dbri) -trident -usb-audio -usb-usx2y -via82xx -via82xx-modem -virmidi -vx222 -vxpocket -wavefront -ymfpci" 0 kB
[ebuild R ] media-libs/alsa-oss-1.0.14 0 kB
[ebuild R ] media-sound/alsa-utils-1.0.15_rc1 USE="midi nls" 0 kB

Total: 4 packages (4 reinstalls), Size of downloads: 0 kB

Вообще если быть точным, две карточки:
00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 02)
02:02.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 0a)

весело, но о существовании первой я узнал только сегодня :) (не использую).
Там кстати модуль intel8x0 стартует udev при загрузке системы, его можно удалить? (загрузку модуля, оно ж мне нафиг не нужно, может из-за него и виснет).

Ранее не висло на предыдущих версиях альсы. Поставил современную назыеццо.

только что

только что хотел заценить alsaoconf, получил отворот поворот (карты определило, выбрал СБЛив), но:
Running modules-update...
* Please run 'update-modules' from now on; 'modules-update' is going away
* Updating /etc/modules.conf ... [ ok ]
* Updating /etc/modprobe.conf ... [ ok ]
* Updating modules.dep ... [ ok ]
Loading driver...
* ERROR: alsasound is already stopping.
Setting default volumes...
amixer: Mixer attach default error: No such device

опять оно ошибку вывело, что остановить не может.

щас буду удалять нахрен альсу и вкомпиливать в ядро. Последний мой вариант. Он кстати, в прошлый раз у меня не работал.. посмотрим чего измениться :) И ядро наверное с 19-го на 22ое обновлю.

Альсу в ядре

Альсу в ядре собрать удалось, но не работает что-то она.
Собирал в соответствии с: http://gentoo-wiki.com/HOWTO_Compile_Kernel_with_ALSA

В итоге у меня:
localhost /usr/src/linux $ grep SND /usr/src/linux/.config | grep =m
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=m
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_RTCTIMER=m
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_EMU10K1=m

localhost /usr/src/linux $ grep SND /usr/src/linux/.config | grep =y
CONFIG_SND_OSSEMUL=y
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
CONFIG_SND_DYNAMIC_MINORS=y
CONFIG_SND_SUPPORT_OLD_API=y
CONFIG_SND_VERBOSE_PROCFS=y

localhost /usr/src/linux $ grep SOUND /usr/src/linux/.config
CONFIG_SOUND=m
CONFIG_SOUND_PRIME=m
# CONFIG_SOUND_TRIDENT is not set
# CONFIG_SOUND_MSNDCLAS is not set
# CONFIG_SOUND_MSNDPIN is not set
# CONFIG_SOUND_OSS is not set

localhost /usr/src/linux $

помоему очень похоже. Но устройство /dev/dsp не создалось.

В доке говориться, что я OSS не включил. Но где именно я не включил?? По-моему у меня конфиг такой же как и у них, но почему же тогда у них включено, а у меня нет? :) Что именно включить-то надо?
CONFIG_SOUND_PRIME - пробовал отключать.

Что-то совсем

Что-то совсем всё плохо. Прибавилось ещё вот это:
localhost ~ # kmix
kmix: error while loading shared libraries: libasound.so.2: cannot open shared object file: No such file or directory

Попробовал вкомпилить альсу (не модулями) получилось такое:
# grep SND /usr/src/linux/.config | grep =m
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_EMU10K1=m

# grep SND /usr/src/linux/.config | grep =y
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_SEQUENCER=y
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_RTCTIMER=y
CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
CONFIG_SND_DYNAMIC_MINORS=y
CONFIG_SND_SUPPORT_OLD_API=y
CONFIG_SND_VERBOSE_PROCFS=y

# grep SOUND /usr/src/linux/.config
CONFIG_SOUND=y
# CONFIG_SOUND_PRIME is not set

# ls -la /dev/dsp
lrwxrwxrwx 1 root root 9 Окт 21 2007 /dev/dsp -> sound/dsp

# ls /etc/init.d/al*
ls: cannot access /etc/init.d/al*: No such file or directory

# lsmod
Module Size Used by
snd_emu10k1 119584 2
snd_rawmidi 21120 1 snd_emu10k1
snd_ac97_codec 91808 1 snd_emu10k1
ac97_bus 6144 1 snd_ac97_codec
snd_util_mem 7424 1 snd_emu10k1
snd_hwdep 10372 1 snd_emu10k1

Чё ему не хватает-то я не пойму???
Кто-нить видит ошибку??

Тьфу ты!

Тьфу ты! Оказывается alsa-utils нужно самому устанавливать, а мне подумалось, что и этому тоже будет поддержка в ядре :)
Терь работает и зависаний выгрузки альсы нет. Альса теперь собрана модульно в ядре.

ps: клёвый монолог получился :)

\m/

Полезная штука — форум, так ведь? (-;Е

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".