HOWTO Alsa и встроенные звуковые платы VIA и Intel
Материал из Gentoo Linux Wiki
- Вернуться в раздел руководства
Содержание |
[править] Настройка встроенного звука на чипсетах от Intel или VIA.
[править] Введение
- За любые комментарии, дополнения, уточнения и исправления ошибок – буду только благодарен :)
- И еще – все нижеописанное касается моей материнки на VIA333 чипсете. Если у кого то чего то таки не заработает - пардон, я в этом не виноват и старался как мог при составлении данного мини-руководства :)
- Итак, у меня материнка на чипсете от VIA со встроенной звуковой. Звука нет. Для того, чтобы звук появился я обнаружил три пути – один из них не заработал как следует, но он есть и это точно.
- У каждого есть свои преимущества и недостатки, о которых я, по мере сил, постараюсь расказать.
Первый путь
Установка звуковых драйверов из портежей. (сначала я поставил так)
- + самые свежие драйвера и утилиты
- + рекомендуют сами разработчики Gentoo
- - после смены ядра нужно переустанавливать alsa-driver(около 5 минут т.к. драйвера небольшие)
- Судя по тому, что написано в документе Gentoo Linux ALSA Guide, а именно: "The Gentoo maintainers decided to discontinue support for the alsa-driver package, concentrating their resources on the ALSA drivers available within the Linux kernel", разработчики Gentoo уже не рекомендуют этот путь установки.
Второй путь
Компиляция ядра с модульной поддержкой звуковухи (так у меня не получилось)
- + драйвера самые свежие (насколько я понял, тут используются драйвера не из ядра, а из портежа)
- + перекомпиляция ядра на звук не влияет
- - не всегда эти модули загружаются корректно, по крайней мере у меня половина загружалась, а половина нет, и не знаю почему (то ли с ядро не совместимо то ли что еще), была куча ворнингов и фаталов, и в итоге звук ни фига все равно не работал.
Стоит отметить, что проблема с загрузкой может возникать из-за одновременного присутствия "ядреных" модулей и модулей из пакета alsa-driver. Тогда
~ # rm -rf /lib/modules/<kernel_version>/alsa-driver/; cd /usr/src/linux; make modules_install
Последней командой из этих трех мы на всякий случай еще раз инсталлируем модули ядра.
Третий путь
Компиляция ядра со статически встроенным звуком (так я поставил себе)
- + не нужно устанавливать alsa-driver вообще
- + перекомпиляция ядра на звук не влияет
- - драйвера не самые свежие
Начнем.
- В любом случае нужно убедится, что звуковуха видна вообще. Я так понял очень много людей обожглись на этой несуразности :)
~ # lspci | grep -i audio
- У меня результат был такой:
00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 50)
- Т.е. звуковая есть. Можно приступать к установке драйверов.
- Еще неплохо бы перед установкой по пути 2 и 3, точно быть уверенным в том, какой драйвер соответствует именно вашей звуковухе. Для этого ищем в /usr/src/linux/Documentation/sound/alsa/ALSA-Configuration.txt свою карточку и запоминаем какому модулю она соответствует.
Если lspci(lsusb?) не вывел ничего про устройства звука, то необходимо проверить факт включения данного устройства в биосе
[править] Первый путь.
[править] 1) настраиваем ядро.
- Не забудьте убедиться,что ссылка /usr/src/linux указывает на правильное ядро! (на ядро 2.6 естественно!)
- Выполняем.
~ # cd /usr/src/linux && make menuconfig
- Считаем, что используется ядро 2.6.
Device Drivers ---> Sound ---> <M>Sound card support
- Все остальные опции выключаются и даже становятся недоступны. В этом же разделе заходим в подпункты:
Open Sound System ---> < > Open Sound System (DEPRECATED)
- Выходим на уровень вверх и заходим в раздел ALSA
Advanced Linux Sound Architecture ---> < > Advanced Linux Sound Architecture
- при снятии флажка Advanced Linux Sound Architecture все остальные опции также автоматически выключатся.
- Сохраняем файл конфигурации (я подразумеваю, что соответствующая опция выбрана в ядре ранее, описывать ее здесь не буду, т.к. это выходит за рамки данной статьи)
- Делаем
~ # make && make modules_install
- Короче стандартные действия по установке нового ядра, кто там как делает, кто руками, кто genkernel использует, главное чтобы было сделано новое ядро с такими параметрами и вы загрузились с новым ядром.
[править] 2) установка нужных портежей.
- Здесь все до боли просто - в /etc/make.conf дописываем
ALSA_CARDS="via82xx" (ну или что там у вас за звук)
- Ну это, как я понял, опционально, т.е. чтобы не все звуковухи были, а только та, что у вас есть.
- Потом
~ # emerge alsa-driver alsa-utils
- Затем запускаем alsaconf , здесь выберите ту звуковуху, что у вас (в моем случае виа), она по идее будет автоматом настроена (т.е. загружены необходимые модули и выставлен оптимальный уровень громкости в микшере)
- Настройки микшера можно изменить введя alsamixer (вроде бы, пишу по памяти)
- Потом добавляете сценарий загрузку драйверов
~ # rc-update add alsasound boot
- Звук должен работать. Проверьте запустив мплером какую нибудь песенку, да! И добавьте громкости в мплеере, я сам на этом лоханулся :)
- проверить все ли драйвера загружены можно просто
~ # /etc/init.d/alsasound restart
- Если сценарий оcтановился и запустился без ошибок – то все ок.
- Список загруженных модулей естественно можно посмотреть по
~ # lsmod
- По идее все.
[править] Второй путь.
[править] 1) настраиваем ядро.
Device Drivers ---> Sound ---> <M>Sound card support
- Выходим на уровень вверх
Open Sound System ---> < > Open Sound System (DEPRECATED)
- Выходим на уровень вверх и заходим в раздел ALSA
Advanced Linux Sound Architecture --->
- здесь делаем так.
<M> Advanced Linux Sound Architecture <M> Sequencer support <M> OSS Mixer API <M> OSS PCM (digital audio) API
Generic devices --->
- смотрю, чтобы здесь ничего не было выбрано (если ничего не нужно конечно)
ISA devices --->
- аналогично, т.к. у меня нету такого :)
PCI devices --->
- А здесь отмечаем ТОЛЬКО ту звуковуху, что у Вас, (у меня)
<M> VIA 82C686A/B, 8233/8235 AC97 Controller
- Только внимание! По умолчанию там вроде есть
<M> Intel/SiS/nVidia/AMD/ALi AC97 Controller
- Это нужно снять, т.к. иначе будет конфликтовать.
- здесь снимаем ВСЕ флажки, которые установлены.
- вобщем в
PCI devices --->
- должно быть только
<M> VIA 82C686A/B, 8233/8235 AC97 Controller
- и ничего больше. (если у вас конечно звук от виа а нет от интела)
- Потом компилим ядро, перегружаемся.
[править] 2) установка нужных портежей.
- в /etc/make.conf дописываем
ALSA_CARDS="via82xx"
- Потом
~ # emerge alsa-utils
- Затем запускаем alsaconf , для автоматической настройки звуковухи и т.п., но вот тут у меня и выходит облом. Хоть и пишется – ура, наслаждайтесь, но пролистав немного вверх вывод отладки – я вижу что далеко не все модули загрузились… вобщем что дальше и как делать в этом варианте – я не знаю, за совет и разъяснение – буду только очень благодарен (из принципа хочется разобраться)… по идее тоже самое, т.е.
~ # rc-update add alsasound boot
- но вот с дровами какие то проблемы. :( не хотят они загружаться.
О платах VIA сказать ничего не могу но на платах Intel этот путь прокатывает и всё прекрасно работает. По крайней мере у меня на 82845 G/GL всё путём.
Добавлено TolicHем
Все намного проще. Никакого alsa-utils нам не надо. Модуль, скомпиленый в ядро, будет называться snd-xxxx, где xxxx - чип вашей звуковушки (у меня этот модуль называется snd-als300). Значит, чтобы получить доступ к звуковухе нужно всего лишь добавить одну строчку в файл /etc/modules.autoload.d/kernel-2.6 и перезагрузиться.
~ # echo "snd-als300" >> /etc/modules.autoload.d/kernel-2.6 && reboot
Внимание: в микшере по умолчанию все ползунки выкручены на ноль, поэтому не забудьте включить звук вашим любимым микшером, к примеру KMix (входит в состав kdemultimedia), или alsamixer (чтобы получить последний, придется все же поставить alsautils). Также при каждой перезагрузке громкость будет сбрасываться, так что советую поставить микшер в автозапуск (в случае KMix достаточно его просто не вырубать).
Как поставить поддержку OSS я честно говоря не помню. А вам она вообще нужна? :)
[править] Третий путь
- Итак – здесь необходимые драйвера статически встраиваются в ядро.
[править] 1) настраиваем ядро.
- Здесь все почти как во втором пути, но только вместо <M> нужно ставить <*>
Device Drivers ---> Sound ---> <*>Sound card support
- Выходим на уровень вверх
Open Sound System ---> < > Open Sound System (DEPRECATED)
- (короче это во вех трех путях одинаково нужно снимать. Написано же – нежелательно :))
- Выходим на уровень вверх и заходим в раздел ALSA
Advanced Linux Sound Architecture ---> <*> Advanced Linux Sound Architecture <*> Sequencer support <*> OSS Mixer API <*> OSS PCM (digital audio) API
Generic devices --->
- ничего не нужно
ISA devices --->
- аналогично
PCI devices --->
- А здесь отмечаем ТОЛЬКО ту звуков уху, что у Вас, (у меня)
<*> VIA 82C686A/B, 8233/8235 AC97 Controller
- Внимание! По умолчанию там вроде есть
<M> Intel/SiS/nVidia/AMD/ALi AC97 Controller
- Это нужно снять, т.к. иначе будет конфликтовать.
- здесь снимаем ВСЕ флажки, которые установлены
- вобщем в PCI devices --->
- должно быть только
<*> VIA 82C686A/B, 8233/8235 AC97 Controller
- и ничего больше. (опять таки – это для виа)
- Потом компилим ядро, перегружаемся.
- Потом заходим в систему и выполняем
~ # dmesg | grep -i via
- Должно быть вот что
agpgart: Detected VIA KT400/KT400A/KT600 chipset VP_IDE: VIA vt8235 (rev 00) IDE UDMA133 controller on pci0000:00:11.1 #0: VIA 8235 with ALC650F at 0xe800, irq 10
И еще вот это
via82xx: Assuming DXS channels with 48k fixed sample rate.
- Если все так, то теперь у нас есть статично встроенные в ядро драйвера и можно переходить к следующему шагу.
[править] 2) установка нужных портежей.
- Делаем
~ # emerge alsa-utils
- Запускаем alsaconf , и настраиваем звуковуху. При попытке скрипта загрузить модули – естественно будут ошибки – но это фигня :) главное, что alsamixer выставит громкость для звуковухи.
alsaconf запускать не имеет смысла ,так как драйверы статично встроены в ядро и alsaconf, естественно, не может их выгрузить и настроить, а запускать нужно только alsamixer. Добавлять alsasound в rc, в случае статично встроенных в ядро тоже не нужно. Все это проверено только на Intel HD Audio, но имхо правильно и для VIA./// С уважением, Alex-87.
- Делаем
~ # rc-update add alsasound boot
- Но тут один нюанс – постоянно при загрузке будут сообщения о невозможности загрузки драйверов, - зачем нам их грузить, если они есть в ядре?
- Правим /etc/init.d/alsasound оставляя неизменными только те процедуры, что отвечают за сохранение и восстановление уровней микшера, а загрузку-выгрузку модулей просто убираем. (не удаляем их полность, просто меняем!)
- Можно конечно новый сценарий написать – но на фига, если есть готовый и его можно просто подправить? :)
- Итак, в теле процедур загрузки и выгрузки модулей (не помню как они по-английски пишутся, они вобщем первые две сверху), а так же в третьей сверху процедуре (кажется terminate) все стираем, а оставляем только return 0; и все.
- Проверим измененный сценарий
~ # /etc/init.d/alsasound restart
- Должно быть все ок.
- Кажется все :) все изменения, добавки, поправки и т.п. приветствуются.
- Надеюсь это все кому-то поможет и вообще кому-нибудь нужно :)
- Вы конечно можете это копировать, постить куда хотите, печатать и т.п., но очень бы хотелось (ели конечно не трудно) указывать, что автор сего почти шестистраничного труда есть tradakad :)
Удачи всем! Gentoo рулит!
[править] P.S. Запуск наушников
Еще не все. Звуковуха Intel HD Audio (snd-hda-intel) может вас порадовать неработающими
наушниками (про VIA не скажу, не пробовал). Кручение миксера не спасет, может не ломать
над этим голову. Выход подсказал Максим Дашков вот с таким адресом:
http://www.dashkov.kiev.ua/
(кстати, единственное место, которое я нашел, где описан выход).
- Че надо:
- Скомпиленное как оговаривалось выше ядро
- Строки в /etc/make.conf
ALSA_CARDS="hda-intel" SUPPORT_ALSA=1
- Установленные пакеты "sox", "esound", "alsa-tools", "alsa-utils", "alsa-lib" ("alsa-utils" мы уже поставили)
~ # emerge sox esound alsa-driver alsa-tools alsa-utils alsa-lib
- И строка в /etc/modules.d/alsa
options snd-hda-intel model=z71v position_fix=1
Это все.
~ # reboot
Кстати, способ можно рассматривать как путь 3.5, потому что после того, как я проделал то, что описано в этой статье, у меня работало не все, что надо; но, после проведения описаных мной процедур, звук наладился, и гормоны радости заполнили мое тело.
Name_No.
P.S.
- Кроме регулировки звука в плеере надо не забыть включить пользователя в группу audio. :)
И самое главное - если все настроено, а звука нет - нужно emerge gst-plugins-alsa.
[править] Важное замечание для владельцев ноутбуков Asus F3Sr и некоторых других моделей!
Нужен звук? Необходимо прописать в /etc/modprobe.d/alsa-base
options snd_hda_intel enabled=1 index=0 model=lenovo
после чего
update-modules && reboot
всё!
