LINUX.ORG.RU

Не работает звуковая карта

 


0

2

Добрый день. Не могу заставить работать звуковую карту.

Система:
uname -a
Linux gentoo 4.1.12-gentoo #1 SMP Thu Dec 3 04:06:02 MSK 2015 x86_64 Intel(R) Core(TM)2 CPU U7600 @ 1.20GHz GenuineIntel GNU/Linux

Железо:
lspci |grep Audio
00:1b.0 Audio device: Intel Corporation NM10/ICH7 Family High Definition Audio Controller (rev 01)

inxi -F
Audio: Card Intel NM10/ICH7 Family High Definition Audio Controller driver: snd_hda_intel Sound: Advanced Linux Sound Architecture v: k4.1.12-gentoo

dmesg |grep codec
[ 0.506698] hdaudio hdaudioC0D0: Unable to bind the codec

cat /usr/src/linux/.config |grep CODEC
CONFIG_SND_HDA_CODEC_REALTEK=m
CONFIG_SND_HDA_CODEC_ANALOG=m
CONFIG_SND_HDA_CODEC_SIGMATEL=m
CONFIG_SND_HDA_CODEC_VIA=m
CONFIG_SND_HDA_CODEC_HDMI=m
CONFIG_SND_HDA_CODEC_CIRRUS=m
CONFIG_SND_HDA_CODEC_CONEXANT=m
CONFIG_SND_HDA_CODEC_CA0110=m
CONFIG_SND_HDA_CODEC_CA0132=m
# CONFIG_SND_HDA_CODEC_CA0132_DSP is not set
CONFIG_SND_HDA_CODEC_CMEDIA=m
CONFIG_SND_HDA_CODEC_SI3054=m

modinfo snd_hda_intel
modinfo: ERROR: Module snd_hda_intel not found.
modinfo snd_hda_codec
modinfo: ERROR: Module snd_hda_codec not found.

Как победить звук? Заранее спасибо.

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

grep -i hda_intel /usr/src/linux/.config
CONFIG_SND_HDA_INTEL=y

Все сделано по wiki, все опции по ссылке включены.

ice-berg
() автор топика
Ответ на: комментарий от zaz

cat /proc/asound/card*/codec* | grep 'Vendor Id'
Vendor Id: 0x83847690

cat /proc/asound/card*/codec* | head -n 9
Codec: SigmaTel ID 7690
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x83847690
Subsystem Id: 0x10280201
Revision Id: 0x102201
No Modem Function Group found
Default PCM:
rates [0x7e0]: 44100 48000 88200 96000 176400 192000

ice-berg
() автор топика
Ответ на: комментарий от ice-berg

Кодек явно не забиндился, хотя все ID для драйвера известны. Есть подозрение что сам драйвер собран статически - а вот кодеки модулями. По идее это не проблема - но обычно собирают все модулями (или все статически) и могут быть проблемы из за этого (если сам HDA драйвер пытается стартануть до того как модули с кодеками станут доступны на файловой системе).

Интерисует загружен ли модуль для сигмателовский кодека (да и вобще какие модули алзи загружены).

lsmod | grep snd

Также интересно виден ли сигмателовский модуль

modinfo snd-hda-codec-idt

Если snd-hda-codec-idt есть и находится но не загружен - попробуйте загрузить его руками

modprobe snd-hda-codec-idt
И посмотреть что изменится (aplay -l; ls /dev/snd/; /proc/asound/card*/codec*; dmesg)

Да и возможно поможет полный выхлоп dmesg

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

Провел небольшой тест - если модуль с кодеком загружать после инициализации алзы - кодек не биндится.

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

Модуль не грузится:
lsmod
Module Size Used by
iwl4965 90373 0
iwlegacy 46297 1 iwl4965

и он не доступен:
modinfo snd-hda-codec-idt
modinfo: ERROR: Module snd-hda-codec-idt not found.

На загрузку руками не отвечает:
modprobe snd-hda-codec-idt

Полный выхлоп dmesg:
http://pastebin.ru/hnquvST3

Как мне загружать кодек до алсы?

ice-berg
() автор топика
Ответ на: комментарий от ice-berg

У вас какаято полная каша с модулями похоже.

cat /usr/src/linux/.config |grep SND | grep -v '^#'
find /lib/modules | grep snd
uname -a

И как вы собирали/конфигурировали ядро ? (genkernel? make menuconfig ?)

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

cat /usr/src/linux/.config |grep SND | grep -v '^#'
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_HWDEP=y
CONFIG_SND_SEQUENCER=y
CONFIG_SND_SEQ_DUMMY=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_HRTIMER=y
CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
CONFIG_SND_SUPPORT_OLD_API=y
CONFIG_SND_VERBOSE_PROCFS=y
CONFIG_SND_VMASTER=y
CONFIG_SND_KCTL_JACK=y
CONFIG_SND_DMA_SGBUF=y
CONFIG_SND_DRIVERS=y
CONFIG_SND_PCI=y
CONFIG_SND_HDA=y
CONFIG_SND_HDA_INTEL=y
CONFIG_SND_HDA_PREALLOC_SIZE=64
CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_CODEC_REALTEK=y
CONFIG_SND_HDA_CODEC_ANALOG=y
CONFIG_SND_HDA_CODEC_SIGMATEL=y
CONFIG_SND_HDA_CODEC_VIA=y
CONFIG_SND_HDA_CODEC_HDMI=y
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_CODEC_CIRRUS=y
CONFIG_SND_HDA_CODEC_CONEXANT=y
CONFIG_SND_HDA_CODEC_CA0110=y
CONFIG_SND_HDA_CODEC_CA0132=y
CONFIG_SND_HDA_CODEC_CMEDIA=y
CONFIG_SND_HDA_CODEC_SI3054=y
CONFIG_SND_HDA_GENERIC=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
CONFIG_SND_HDA_CORE=y
CONFIG_SND_USB=y
CONFIG_SND_PCMCIA=y

По команде find /lib/modules | grep snd ответа не было.

uname -a
Linux gentoo 4.1.12-gentoo #1 SMP Thu Dec 3 04:06:02 MSK 2015 x86_64 Intel(R) Core(TM)2 CPU U7600 @ 1.20GHz GenuineIntel GNU/Linux

ice-berg
() автор топика
Ответ на: комментарий от ice-berg

Попробуйте пересобрать все что относится к звуку модулями, есть подозрение что в альзе есть баг который ей не позволяет нормально биндить HDA кодеки при компиляции внутри ядра (причем там может быть жуткий рандом - у кого работает, у кого нет).

Вот мой конфиг (для примера):

CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_HWDEP=m
CONFIG_SND_JACK=y
CONFIG_SND_SEQUENCER=m
CONFIG_SND_SEQ_DUMMY=m
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_HRTIMER=m
CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
CONFIG_SND_SUPPORT_OLD_API=y
CONFIG_SND_PROC_FS=y
CONFIG_SND_VERBOSE_PROCFS=y
CONFIG_SND_VMASTER=y
CONFIG_SND_DMA_SGBUF=y
CONFIG_SND_PCI=y
CONFIG_SND_HDA=m                                                                                                                                                                             
CONFIG_SND_HDA_INTEL=m                                                                                                                                                                       
CONFIG_SND_HDA_HWDEP=y                                                                                                                                                                       
CONFIG_SND_HDA_CODEC_REALTEK=m                                                                                                                                                               
CONFIG_SND_HDA_CODEC_HDMI=m                                                                                                                                                                  
CONFIG_SND_HDA_GENERIC=m                                                                                                                                                                     
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0                                                                                                                                                          
CONFIG_SND_HDA_CORE=m                                                                                                                                                                        
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_PREALLOC_SIZE=64
Вам соотвецтвенно CONFIG_SND_HDA_CODEC_REALTEK не нужен а нужен CONFIG_SND_HDA_CODEC_SIGMATEL

Попробуйте если не поможет - постараюсь еще в исходниках алзы покопаться.

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

Пересобрал ядро. Теперь после modprobe snd-hda-codec-idt , получатеся следующее:
lsmod
Module Size Used by
snd_hda_codec_idt 45330 0
snd_hda_codec_generic 54023 1 snd_hda_codec_idt

Но, при загрузке в dmesg |grep snd до сих пор выходит
[ 0.495444] hdaudio hdaudioC0D0: Unable to bind the codec
Прописал в /etc/modprobe.d/snd-hda.conf строку snd-hda-codec-idt, но все равно модуль не грузится.

ice-berg
() автор топика
Ответ на: комментарий от ice-berg

У другие части алзы тоже модулями собраны модулями ?

$ lsmod  | grep snd
snd_hda_codec_hdmi     35985  1
snd_hda_codec_realtek    56860  1
snd_hda_codec_generic    52097  1 snd_hda_codec_realtek
snd_hda_intel          21621  6
snd_hda_codec          79019  4 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_intel
snd_hwdep               5930  1 snd_hda_codec
snd_hda_core           35324  5 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel
snd_pcm                76739  5 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_hda_core
snd_timer              18057  2 snd_pcm
snd                    55149  17 snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel
soundcore               5231  1 snd

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

Пересобрал все модулями. По cat /usr/src/linux/.config |grep SND перечислены те же модули, что и у Вас, но теперь при modprobe snd-hda-intel
modprobe: ERROR: could not insert 'snd_hda_intel': Exec format error
Хотя, modinfo snd-hda-intel
filename: /lib/modules/4.1.12-gentoo/kernel/sound/pci/hda/snd-hda-intel.ko
description: Intel HDA driver
license: GPL
...
И тоже самое по modprobe snd-hda-codec-idt
filename: /lib/modules/4.1.12-gentoo/kernel/sound/pci/hda/snd-hda-codec-idt.ko
description: IDT/Sigmatel HD-audio codec
license: GPL
alias: snd-hda-codec-id:111d*
alias: snd-hda-codec-id:8384*
depends: snd-hda-core,snd-hda-codec-generic,snd-hda-codec,snd
intree: Y
vermagic: 4.1.12-gentoo SMP mod_unload

Повторюсь, alsa пересобрана модулями

ice-berg
() автор топика
Ответ на: комментарий от ice-berg

Возможно ядро и модули собрано с различным конфигом ядра. Попробуйте все пересобрать

cd /usr/src/linux-4.1.12-gentoo
make clean
make bzImage && make modules
make install && make modules_install

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

Не помогло. Ошибки остались те же самые.

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