Вы здесь

Gentoo x64 и звук Intel HDA

Не могу настроить звук в gentoo x64, в ядре включил все в ветке Intel HDA. Сейчас стоит alsa и pulseaudio. Изначально была только alsa, но тоже не работал звук.

вот вывод lspci -v
Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
Subsystem: ASUSTeK Computer Inc. Device 8415
Flags: bus master, fast devsel, latency 0, IRQ 43
Memory at f7100000 (64-bit, non-prefetchable) [=16K]
Capabilities: [50] Power Management version 2
Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
Capabilities: [100] Virtual Channel
Capabilities: [130] Root Complex Link
Kernel driver in use: snd_hda_intel

и proc/asound: Codec: VIA VT1708S. На материнке точно такая же микросхема запаяна.

Загрузился с Ubuntu Live, звук работает. Практически те же выводы команд:
Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
Subsystem: ASUSTeK Computer Inc. Device 8415
Flags: bus master, fast devsel, latency 0, IRQ 45
Memory at f7100000 (64-bit, non-prefetchable) [=16K]
Capabilities: [50] Power Management version 2
Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
Capabilities: [100] Virtual Channel
Capabilities: [130] Root Complex Link
Kernel driver in use: snd_hda_intel

Codec: VIA VT1708S

Подскажите в чем может быть проблема и как решается.

А кодеки-то в ядре для snd_hda_intel активированы? alsamixer запускали? Каналы там активировали?

—

Чем больше юзерфрендли, тем сложнее юзать.

Кодеки в ядре включены, звук появился в smplayer после удаления пульсов. В системе звука нет. В smplayer звук настроил вручную.

А где логи dmesg, выхлоп при воспроизведении из консоли? Где зацепки?!

—

OS: Gentoo KDE4
Kernel: x86_64 Linux 4.0.5-gentoo
CPU: Pentium Dual-Core CPU E6500 @ 2.933GHz
GPU: GeForce GT 630/PCIe/SSE2
RAM: 3956MB
Since 2011

скажите что нужно я выложу)

dmesg | grep PCH
[ 0.299113] input: HDA Intel PCH Front Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input7
[ 0.299639] input: HDA Intel PCH Line Out as /devices/pci0000:00/0000:00:1b.0/sound/card0/input6
[ 0.300135] input: HDA Intel PCH Line as /devices/pci0000:00/0000:00:1b.0/sound/card0/input5
[ 0.300642] input: HDA Intel PCH Front Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input4
[ 0.301136] input: HDA Intel PCH Rear Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input3

Подозреваю, что alsa по умолчанию использует другую карту. Звуковых карточек наверняка 2. Одна для HDMI, другая для системы. Проверить можно воспользовавшись

aplay -l

У меня выдаёт

**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 0: ALC662 rev3 Analog [ALC662 rev3 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0

То есть по умолчанию звук идёт на HDMI (card 0). Чтобы направить звук на card 1 я создал /etc/asound.conf

ctl.!default {
type hw
card 1
}

Хотя, это у меня так :)

—

Чем больше юзерфрендли, тем сложнее юзать.

Нет, у меня первая как раз моя, HDMI вторая.

**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: VT1708S Analog [VT1708S Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 2: VT1708S Alt Analog [VT1708S Alt Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 7: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0

Прописал жестко в .asoundrc следующее:

pcm.!default {
type hw
card 0
device 2
}

ctl.!default {
type hw
card 0
device 2
}

звук заработал везде кроме хрома, а потом опять частично пропал. Копаю в чем дело.

В phonon кстати первое устройство тоже выставлено hw:0,2. Сейчас пересоберу все, мне кажется что сам накосячил в пакетах когда экспериментировал

Может стоит конфигурацию в /etc/asound.conf унести? На случай, если какой-то проге совсем не очевидно какой пользователь её пользует? Впрочем, это уже из разряда "попинать колесо". Хотя нынешнее состояние софта позволяет предполагать всё что угодно. На моём компе всё по минимуму и в этой конфигурации вроде бы всё работает. Попытки поставить что-нибудь из разряда "desktop environment" тащат за собой море глюков. Лишь бы все эти DE не стали обязательным элементом линукса, а то придётся какую-то ещё операционку искать :)

—

Чем больше юзерфрендли, тем сложнее юзать.

asound.conf это же как я понимаю более глобальный вариант .asoundrc. Да самое то странное в том, что я довел систему до той точки, когда звук работает во всех приложениях, кроме google-chrome, amarok. Есть еще некоторые косяки в работе других медиаплееров. К примеру, в opere flashplayer работает, в smplayer все слышно, до банального, kopete раз на раз пищит сообщениями, а все остальное - нет. Все потому что к примеру amarok работает через phonon, а в нем в свою очередь вроде звук и подтягивается из .asoundrc - но при проверке устройства hw:0,2 - которое первое в списке и которое указано в smplayer - проверка не работает. Попробую прописать устройство глобально в asound.conf, посмотрим.

Я вроде выявил закономерность, звук валится тогда, когда его кто-то использует. В Audacious если больше нигде не включено воспроизведение все работает, а как только включаешь где-то еще, например в firefox, не играет пока не закрою Audacious, а когда закрою и заново открою, пишет

SDL error: Failed to open audio stream: No available audio device.

А, это явление известное. Если не ошибаюсь, на уровне Alsa по умолчанию только
одно приложение может пользовать звуковую карточку. То есть, если идёт
воспроизведение музыки, то какой-нибудь pigeon уже звук не сможет записать.
Проблему должно решать использование всякой дряни типа pulseaudio, но
порывшись в инете я нашёл, что Alsa тоже предлагает плагин на этот случай. Вот
полный asound.conf который я взял из сети и слегка подправил под себя

ctl.!default {
       type hw
       card 1
}

pcm.dmixed {
type asym
playback.pcm {
# See plugin:dmix at http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html
type dmix

# Don't block other users, e.g. the Timidity midi-player daemon
# http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html
ipc_key_add_uid true

ipc_key 5678293
ipc_perm 0660
ipc_gid audio

# Don't put the rate here! Otherwise it resets the rate & channels set below, as shown by: cat /proc/asound/card0/pcm0p/sub0/hw_params
slave {
# 2 for stereo, 6 for surround51, 8 for surround71
channels 6
pcm {
# mplayer chooses S32_LE, but others usually S16_LE
#format S32_LE
format S16_LE

# 44100 or 48000
# 44100 for music, 48000 is compatible with most h/w
#rate 44100
rate 48000

# http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html
# Maybe helps
nonblock true

type hw
card 1
device 0
subdevice 0
}

# mplayer2 chooses 1024
# period_size 512 with buffer_size 16384 stops crackling in xmame
# 320 breaks flash - https://bbs.archlinux.org/viewtopic.php?id=129458
#period_size 512
period_size 1024
#period_size 512

# 4096 might make sound crackle
# mplayer2 chooses 8192. Half-Life 2 chooses 16384.
# If too large, use CONFIG_SND_HDA_PREALLOC_SIZE=2048
buffer_size 16384
}
}
capture.pcm "hw:1"
}

# Check that e.g. ut2004 still works, if default is redefined.
# Flash, etc. use this "default" entry.
pcm.!default {
type plug
# Would need to always output to all 6 channels, so the dmixer actually works if e.g. 6-channel is attempted to be started, while 2-channel is playing.
slave.pcm "dmixed"
}

С этим конфигом у меня все программы одновременно могут "говорить". На всякий случай вот здесь
http://alsa.opensrc.org/Hardware_mixing,_software_mixing даётся описание
слегка иного подхода.

—

Чем больше юзерфрендли, тем сложнее юзать.

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

—

творю непотребства и потом жалуюсь на форуме, ибо gentoo позволяет, since 2009

Пошарился ещё в сети и нарвался на эту http://alsa.opensrc.org/DmixPlugin страницу. Там заявляется, что если карточка не поддерживает многопоточность, то Alsa по умолчанию использует плагин dmix. Только вот в моём случае нифига он не использовался. Пока руками его не активировал, звук шёл только от одной программы. Остальные вываливались с сообщением, что нет устройства для вывода звука. Может проблема с тем, с какого канала у меня звук берётся. Там упоминается, что для цифрового вывода этот плагин не активирован. В общем факт остаётся фактом, мне пришлось этот плагин руками активировать.

—

Чем больше юзерфрендли, тем сложнее юзать.

спасибо, буду пробовать плагин.

Если не решил еще вопрос со звуком, вот http://my-files.ru/w0x60v драйвера для всех Realtek AC97, HD audio (ALC xxx) . Скачал с сайта Realtek и перевыложил.