en de fr es ja it pt

30 марта 2010 г.

FreeBSD, Lenovo Y510 и звук

Я недавно писал о изменениях в драйвере snd_hda и о возникших из-за этого проблемах. Сегодня решение было найдено (спасибо форуму FreeBSD).


Что я хотел:
стерео на 5.1 "колонках", т.е. чтобы звук просто дублировался в остальные каналы; работающий автоматический mute при подключении наушников
Что для этого нужно сделать на Lenovo Y510 + FreeBSD 8-STABLE:

1. В /usr/src/sys/dev/sound/pci/hda/hdac.c
заменить в функции hdac_stream_setup():
Это:
uint16_t chmap[2][5] = {{ 0x0010, 0x0001, 0x0201, 0x0231, 0x0231 }, /* 5.1 */

На это:
uint16_t chmap[2][5] = {{ 0x0010, 0x0111, 0x0201, 0x0231, 0x0231 }, /* 5.1 */


2. Пересобрать модуль snd_hda (если вы используете его как модуль ядра!):
# cd /usr/src/sys/modules/sound/driver/hda
# make && make install


3. В /boot/loader.conf добавить:
hint.hdac.0.cad0.nid20.config="as=1 seq=0"
hint.hdac.0.cad0.nid21.config="as=1 seq=1"
hint.hdac.0.cad0.nid22.config="as=1 seq=4"


4. Перезагрузиться

2 комментария:

  1. вопрос такои.
    FreeBSD 8.1, kde 4.5.1

    если я из-под иксов вручную гружу:
    kldload snd_hda
    то звук есть

    А если добавлю в /boot/loader.conf:
    snd_hda_load="YES"
    то после старта машины звука нет....

    ОтветитьУдалить
  2. Посмотрите `kldstat` после загрузки (когда нет звука) - там есть snd_hda?

    ОтветитьУдалить