Интегрированный звук на платах с чипом nForce4, ArchLinux, ALSA и 5.1 звук
Короткое интро
А так же 4.0 звук. Это скорее не руководство, не how-to, а просто записка чтобы не зыбыть, а потом может кому и пригодится.
На платах с чипом nForce4 есть интегрированный 5.1 звук. Про качество звучания ничего говорить не будем - каждому свое. lshwd -cc
на моей машине говорит про неё следующее:
nVidia Corp.|CK804 AC'97 Audio Controller
и рекомендует использовать модуль ядра snd-intel8x0
. Сама nVidia прекратила поддрежку своего OSS драйвера nvsound
и рекомендует использовать данный.
Кратко про конфигурацию
Кратко про конфигурацию: запустить alsaconf
, ответить на все вопросы, в /etc/modprobe.conf
, по желанию добавить следующее:
# ALSA
install snd_intel8x0 /sbin/modprobe --ignore-install snd_intel8x0 ; sleep 1; /usr/sbin/alsactl restore >/dev/null 2>&1 || :
remove snd_intel8x0 { /usr/sbin/alsactl store >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd_intel8x0
# OSS Compatibility
install snd-pcm modprobe -i snd-pcm ; modprobe snd-pcm-oss ; true
install snd-seq modprobe -i snd-seq ; modprobe snd-seq-oss ; true
Все, считаем что звук у вас работает и все играется. Теперь нужно что бы звук был более чем стерео.
Делаем звук многоканальным
Итак, для этого достаточно сделать у вас в домашнем каталоге файл .asoundrc
со следующим содержимым:
pcm.CK804 {
type hw
card 0
}
ctl.CK804 {
type hw
card 0
}
pcm.!default {
type route;
slave.pcm "surround51";
slave.channels 6;
ttable.0.0 1;
ttable.1.1 1;
ttable.0.2 1;
ttable.1.3 1;
ttable.0.4 1;
ttable.1.5 1;
}
Это даст нам 5.1 звук. Регуляторы при этом станут: ^ Колонки ^ Регулятор ^ | Front | Master | | Rear | Surround | | Center | Center | | LFE | LFE |
Общего регулятора нет. Плохо. Пока не решил проблему использую метод о котором ниже.
pcm.CK804 {
type hw
card 0
}
ctl.CK804 {
type hw
card 0
}
pcm.!default {
type route;
slave.pcm "surround40";
slave.channels 4;
ttable.0.0 1;
ttable.1.1 1;
ttable.0.2 1;
ttable.1.3 1;
}
Это нам даст 4.0 звук (квадрофонический). Пока использую по причине наличия двух стерео-колонок и отсутствия 5.1 системы. Регуляторы при этом станут: ^ Колонки ^ Регулятор ^ | Front | Master | | Rear | Surround |
Общего регулятора опять таки нет.
Регулирование громкости
Для данного действия написал скрипт что устанавливает громкость по всем указанным каналам.
#!/bin/bash
DIFF=5%
Front="Master"
Rear="Surround"
Center="Center"
LFE="LFE"
Side=""
case "$1" in
"+"|"-")
if [ ! -z "$2" ]; then
DIFF=$2%
fi
amixer sset "$Front" $DIFF$1
amixer sset "$Rear" $DIFF$1
amixer sset "$Center" $DIFF$1
amixer sset "$LFE" $DIFF$1
amixer sset "$Side" $DIFF$1
;;
*)
if [ ! -z "$1" ]; then
amixer sset "$Front" $1%
amixer sset "$Rear" $1%
amixer sset "$Center" $1%
amixer sset "$LFE" $1%
amixer sset "$Side" $1%
fi
;;
esac
Файл обозвал mmix
. После чего его можно использовать так:
mmix +|- [шаг]
mmix [значение]
+
или -
увеличивает или уменьшает громкость на указанный шаг
. Если шаг
не указан его значение принимается 5%
Если параметром заданое только числовое значение
громкость выставляется сразу в данную величину.
Источники
- http://www.asplinux.net/modules/newbb_plus/viewtopic.php?topic_id=2436&forum=26
- http://www.alsa-project.org/alsa-doc/index.php?vendor=vendor-Nvidia
- http://www.alsa-project.org/alsa-doc/doc-php/template.php?company=Nvidia&card=.&chip=nForce&module=intel8x0
- http://www.linux.kiev.ua/ru/forum/thread/26/42/143/?page=2
(c) Alexander ‘hatred’ Drozdov, Vladivostok 2007