Не работает сабвуфер в ubuntu
Все исправлено после нескольких обновлений. Если это была регрессия, это было исправлено.
3 ответа
У меня тоже есть Asus N56DP. Мы двое, возможно, единственные парни, которые сейчас работают с ними на Ubuntu. :)
Работы следующего вида:
в вашем /etc/rc.local добавьте это:
echo 0x1e 0x99130112> / sys / class / sound / hwC0D0 / user_pin_configs echo 1> / sys / class / sound / hwC0D0 / reconfig
и перезагрузите компьютер.
Затем на панели управления звуком («Настройки системы» -> «Звук») выберите «Вывод» -> «Аналоговый», если вы хотите, чтобы он работал, или, если вы хотите получить надлежащий бас, вы должны постоянно переключаться между объемным звучанием 4.1 и 5.1. Например, mplayer часто отключает басы, и мне придется переключаться с одного на другой.
Я выбрал аналог.
Сначала проверьте вашу карту hwC0D0 или hwC1D0: в моем ноутбуке hwC0D0 предназначен для Intel hdmi, а hwC1D0 - для Realtek alc663. Вы можете узнать это с помощью hdajackretask, сначала hwC0D0.
Модули в opensuse (не ubuntu) - это snd_hda_intel, а не snd-hda-intel. Так что, если вы не в Ubuntu, "options snd_hda_intel model = asus-mode4" является верным, а не "options snd-hda-intel model = asus-mode4". И, возможно, вам следует написать опции "snd-hda-intel model =, asus-mode4", потому что первый член для hdmi.
Установите hdajackretask и hda-jack-sense-test (hdajacksensetest в открытое использование). Сначала отключите сабвуфер и запустите приведенный ниже код (-c 1 для hwC1D0)
hdajacksensetest -a -s -c 1
Затем подключите и запустите снова. Вы найдете правильный вывод, а затем назначьте сабвуфер lfe на вывод hdajackretask.
У меня есть эта работа теперь. Прежде чем Вы будете обескуражены, я могу сказать Вам, что, когда Вы действительно получаете работу сабвуфера, качество звука очень хорошо, почти удивительное данный, что прибывает из. Так, зависните там, это определенно стоит усилия!
Чтобы быть ясным, у меня есть ASUS N56DP-DH11 - Это - то с 64-разрядным процессором AMD. Мой сабвуфер был пресс-папье, пока я не обновил до 13,10. Сообщалось, что была ошибка в версии 3.8 ядра, которая является ядром, используемым в Ubuntu 13.04. Кажется, что это была проблема драйвера низкого уровня, которая только влияет на машины AMD с кодеком Realtek ALC663. Кажется, что в этих машинах, ошибка ядра в 3,8 мешала ядру видеть контакт сабвуфера вообще. Не было никакой надежды на то, чтобы заставлять сабвуфер работать, если Вы не интересовались взламыванием ядра. Там, сделанный, что, и все сделанные с этим.
Вместо этого я просто обновил до 13,10 следующим направления на Обновлении Ubuntu от 13,04 до 13,10 страниц. Это заняло приблизительно час загрузки. Это работало успешно к завершению.
Ubuntu 13.10 выполняет версию 3.11 ядра:
Я действительно получал "Дисплей в низком графическом режиме" проблема, которую Вы решаете путем выполнения шагов в askubuntu каноническом вопросе 141606. flgrx драйвер хорошо работает для меня.
После того как у Вас есть свой дисплей назад, и система подходит чисто снова, необходимо смочь услышать, что очень тихий, низкий шум выходит из сабвуфера когда Вы мышь вокруг. Это говорит Вам, что система наконец говорит с сабвуфером.
Существует еще несколько шагов, чтобы сделать, они совпадают с другими с машинами Intel, описали. Я перечислю тех, которые работали на меня здесь:
добавьте эти строки:
Затем прокрутите вниз в файле и найдите эти строки:
Всюду по этому файлу строка отображения канала, кажется, перечисляет каналы в неправильном порядке
Отметьте новое положение "lfe"
Повторите это для любой звуковой конфигурации, которую Вы намереваетесь использовать: 5.1, 4.1, 7.1 или что бы то ни было.
Даже при том, что это говорит, что Intel, с фиксированным ядром, работает тот же путь над машинами AMD (мой, по крайней мере)
обеспечьте, чтобы следующая строка присутствовала:
Теперь последний шаг должен перераспределить назначения контактов. Там инструмент в alsa-utils назвал hdajackretest, который можно использовать для экспериментирования с настройками, пока Вы не получаете рабочую конфигурацию. Я не могу похвалить этот инструмент достаточно высоко. Без него, диагностируя контакты продолжился бы навсегда. Как это было, я провел, возможно, час в этом, если это. Моя шляпа прочь разработчику.
Существует, вероятно, более изящный/соответствующий способ сделать это, но путем выполнения шагов ниже, я смог получить 4,1 конфигурации, работающие со всеми каналами, идущими к надлежащему месту назначения:
Выберите кодек: ALC663
Набор "шоу не связанные контакты"
Я экспериментировал с этим много и наконец заставил следующую конфигурацию работать. Может быть менее решительный подход. Не может быть необходимо установить все эти контакты путем, я сделал, но, ну, в общем, это была первая конфигурация, которая работала ;-).
Начиная с неизмененных настроек, я сделал эти переопределения:
- Контакт 0x14: набор Переопределения для Намечания (Center/LFE)
- Контакт 0x15: набор Переопределения для Намечания (Center/LFE)
- Контакт 0x16: набор Переопределения к Внутреннему динамику
- Контакт 0x17: набор Переопределения для Намечания (Center/LFE)
- Контакт 0x1a: набор Переопределения для Намечания (Передняя сторона)
- Контакт 0x1b: набор Переопределения для Намечания (Center/LFE)
Как я сказал, это может быть излишеством, я сомневаюсь относительно всех, что они необходимы, но это что работы для меня.
Затем цикл назад и вперед через:
- "Подайте заявку Теперь"
- Используйте функцию "Test Sound" в настройках Settings-> Sound, чтобы видеть, идет ли каждый канал, где Вы хотите это к. Если нет:
- Повторитесь, пока Вы не получаете то, что Вы хотите
Когда это будет работать, не забывайте совершать нападки
"установите переопределение начальной загрузки"
заставить его придерживаться.
Затем перезагрузка и тест снова со "Звуковыми Настройками"
Необходимо закончить в "Звуковых Настройках" с выпадающим меню 5 вариантов. Аналог 4.1 работал на меня. Необходимо смочь повысить объем сабвуфера, как Вы требуете.
Не должно быть необходимо восстановить любое из этого, если Вы перезагружаете, Все должно сохраниться, пока Вы поражаете "переопределение начальной загрузки установки"
Для начала более подробно о сути задачи: есть ноутбук Asus N55 с Kubuntu 17.10 на борту. Нужно добиться той же конфигурации, которую можно получить на Windows:
- Без подключения сабвуфера драйвер работает в режиме 2.0
- При подключении сабвуфера драйвер переключается в режим 2.1. При этом переключении к каналам применяются частотные фильтры — НЧ для сабвуфера и ВЧ для колонок
- При подключении наушников, вывод звука переключается на них, вывод на колонки/сабвуфер приостанавливается
- При необходимости низких задержек можно с помощью выбора другого драйвера перейти в режим, обеспечивающий монопольный захват звуковой карты
Сразу после установки получаем нерабочий сабвуфер и нерабочие наушники.
В результате моих опытов мне удалось добиться следующего состояния системы:
- Драйвер работает в режиме 2.1
- При подключении сабвуфера ничего не изменяется
- При подключении наушников, вывод звука переключается на них, вывод на колонки/сабвуфер приостанавливается, но фильтры продолжают работать и в наушники идут только ВЧ
- При необходимости низких задержек можно адресоваться к карте через ALSA, но в этом режиме не работает сабвуфер, фильтры. Но работает переключение на наушники
Для знакомства с LMMS(с которой как оказалось нормально работать нельзя, но это отдельная тема) этого в общем-то хватает.
Если вы тоже добрались до этого состояния, то ничего нового этой статьей я вам не расскажу.
Вы когда-нибудь задумывались о том, как устроена звуковая система Linux? Вот и я нет — обычно звук либо был не нужен, либо как-то работал, колонки играли — ни о каких фокусах подключения сабвуфера или наушников речи не было.
Похоже, теперь самое время узнать об этом немного больше. Гугление показало следующую картину:
-
— это компонент, обеспечивающий взаимодействие звуковых железок с ядром. Обеспечивает самый прямой доступ к устройству из разумных вариантов, но при этом доступ этот монопольный — включить песню в VLC и открыть видео в браузере, увы, не получится.
- Для этих целей как раз и нужен PulseAudio — это sound-сервер, занимающийся маршрутизацией звуковых потоков. Именно он будет отвечать за микширование потоков звука из разных приложений при одновременном использовании. Ценой за такое удобство является дополнительная задержка звукового потока.
- Существует еще JACK — аналог PulseAudio, позиционирующийся как "профессиональный" sound-сервер. Обещает крутые возможности по маршрутизации и минимальную задержку при диспетчеризации потоков.
Мало кто говорит, что PulseAudio де-факто является стандартом для интеграции звука, по крайней мере в Ubuntu. Практически любой софт, который издает звуки, будет с большой долей вероятности пользоваться PulseAudio API. FF, например, для поддержки JACK надо отдельно собирать.
Поэтому удалять PulseAudio не стоит, если вы не уверены, что все чем вы будете пользоваться, умеет работать с JACK. Видимо, поэтому существует еще вариант интеграции Jack-PulseAudio. Но от этого варианта я отказался, т.к. для работы в том софте, где требуются низкие задержки, меня устраивает монопольный доступ через ALSA(под Windows это работает так же — там, где нужна низкая задержка, запрашивается монопольный доступ). Возможно, когда дело дойдет до установки какого-нибудь Ardour, мне придется вернуться к этому варианту.
Так, ну хорошо, JACK не нужен. Выходит, чтобы все заработало, мне надо настроить ALSA-компонент для своей карточки и интеграцию его с PulseAudio
PulseAudio
Тут нам из коробки предлагают вот такую UI консоль
Мне кажется, к такому инструменту пояснения излишни. После применения настроек вы сразу сможете слышать изменения, так что пробуйте.
Еще amarao советует обратить внимание на pactl /pacmd. Если я доберусь — напишу, что там к чему с этими утилитами
Диагностика ALSA
Первым делом понадобятся хоть какие-то инструменты для диагностики — это пакет alsa-utils
sudo apt install alsa-utils
Теперь посмотрим, как видит наше оборудование система
aplay -l
Кроме того, настройки надо проверять. Для этих целей обнаружилась утилита speaker-test
вызов speaker-test --help покажет, что умеет утилита, но мне особенно интересна конфигурация
speaker-test -Dplughw:1,0 -c4
- -D — id устройства. 1,0 — это индексы устройства и подустройства, их мы видели выше в выводе aplay
а вот структура текстовой части описана тут - -c — количество каналов на которые будет выведен тест
В моем случае первые 2 канала работают хорошо, а вот дальше интересно — 3й канал LFO не звучит, но зато звучит 4й канал. Такое ощущение, что LFO настроен как… стерео. Мне кажется, это часть моей проблемы.
Настройка ALSA
Тут и тут советуют поизучать dmix — это модуль микшера каналов в ALSA — буду смотреть
alsamixer
alsamixer — псевдографический интерфейс микшера. Половина советов по настройке ограничивается этой утилитой. И действительно, именно эта утилита часто покажет, когда канал неожиданно замьютился или у него сбросился уровень громкости.
Но настройка в микшере результата не дала.
hdajacksensetest
Следующая полезная утилита — hdajacksensetest. Показывает какие разъемы детектируют подключение внешних устройств.
Ок, я вижу, что мой внешний сабвуфер подключен на порт 0x1a.
Давайте попробуем найти как можно объяснить карте, куда выводить LFO.
hdajackretask
Большинство советов по настройке маппинга указывают на утилиту hdajackretask:
Тут вроде бы все понятно — есть порты, есть маппинг. К сожалению, никакие манипуляции с портом 0x1a к успеху не привели.
Может, после настройки надо явно перезагружать сервисы?
sudo alsa force-reload
Нет, смотрим дальше.
HDAAnalyzer
Для настройки маппинга есть еще одна утилита:
скачать ее можно в виде python-скрипта(. ) вот тут.
Выглядит эта штука как прокачанный вариант hdajackretask — она даже умеет строить схему маршрутизации портов графически. Но эксперименты с этой штукой тоже не привели ни к чему, кроме полной потери звука.
Никакого гайда по настройке я не нашел, поэтому пробовал методом проб и ошибок.
Правка конфигов
PulseAudio
/usr/share/pulseaudio
в папке alsa-mixer тут лежат конфиги. Т.к. Pulseaudio более-менее работает тут я ничего трогать не стал.
/etc/pulse/daemon.conf
Как я понял, это настройки службы pulseaudio — один из немногих конфигов, изменения в котором на что-то влияют. именно тут настройками:
enable-lfe-remixing = yes
lfe-crossover-freq = 200
я заставил звучать свой сабвуфер из Pulseaudio так, как он должен. Для lfe-crossover-freq 200 — это очевидно частота среза в герцах.
Но тут же становится очевидно, что настроить нечто более сложное(при подключении наушников прекращать отправлять бас на сабвуфер) в этом конфиге возможности нет.
/usr/share/alsa/*
Тут лежит несколько shell-скриптов, в т.ч. alsa-info.sh, который может быть полезен при подготовке дефекта в трекере и т.д.
а в папке pcm какие-то конфиги, разобраться в которых мне не удалось:
Трогать их я пока не решился.
/etc/modprobe.d/alsa-base.conf — второй доказанно полезный конфиг. Вот эта строчка, дописанная в низ конфига, реально заставила работать наушники под ALSA:
options snd-hda-intel model=auto,auto probe_mask=1
Про настройку этого конфига написано довольно много. Одна из его целей, как я понял — сопоставить устройствам кодеки(model). Кодеки это… какой-то пресет маппингов… Есть табличка (копия есть тут). Думаю, в большинстве случаев для стандартных конфигураций этого действительно достаточно.
Там описаны модели для разных контроллеров. Но если для вас они не срабатывают, то вам рекомендуют добавить свою конфигурацию.
Звучит классно, но тут я должен сделать 2 ремарки:
- гайда как сделать свою конфигурацию — что конфигурить, куда сохранять, коммитить и т.д. я не нашел.
- После изменения настроек в alsa-base.conf нужно перезагружать ОС. Без перезагрузки никакие sudo alsa force-reload и даже хардкорный echo 1 | sudo tee /sys/class/sound/hwC1D0/reconfig не заставляют ALSA перечитать кодек устройства.
Кстати, в /sys/class/sound/hwC1D0/ — лежат файлы уже непосредственно устройства, т.е. как я понял hdajackretask работает именно с этими файлами. Тут тоже, наверное, можно сделать что-то полезное, если знать куда что писать.
Общий вывод, который я могу сделать по результатам проделанной работы: в целом видно, что если GUI, например, сообщество более-менее занимается, то звуковая подсистема явно остается за бортом.
На сегодняшний день возможности использования этой подсистемы не выдерживают никакой конкуренции с аналогами в других популярных ОС.
Такие досадные проблемы, как неработающий сабвуфер или наушники, или отсутствие НЧ-фильтра для сабвуфера, заставляют еще раз подумать, прежде чем отказываться от предустановленного софта. Ведь никому не хочется получать от своей железки меньше отдачи из-за кривостей ОС.
И в этом поможет утилита hda-jack-retask.
Для начала добавим репозиторий c утилитой.
sudo apt-get update
Upd: Пользователь Петя сказал, что на Kali Linux 1.06 x64 произвел установку так:
! Сразу оговорюсь, если Вы как и я, уже пытались заставить работать саб с pulseaudio, то удалите его, и установите заново.
Далее, запускаем нашу спасительницу:
Перед Вами появится окно:
Выбираете другой кодек, у меня он называется IDT92HD91BXX.
В случае ошибки:
Это список процессов, которые взаимодействуют со звуковой картой. Нужно их грохнуть. Либо через консоль, либо через диспетчера (Alt+F2).
После повторяем попытку применить изменения. Должно прокатить.
Далее тестим. Открываем kmix, ну или то, чем пользуетесь Вы для регуляции громкости (в трее) и нажимаем Микшер.
Ну, теперь настраивайте, как ушам приятно 🙂
После того, как выполните настройку, и Вам все понравится, возвращаемся к hda-jack-retask и нажимаем Install boot override.
Звук конечно не такой как в Win8, однако, гораздо приятнее чем был до этого.
UPDATED Столкнулся с проблемой: перестал работать звук в браузере.
Проблема в том, что звук подается на Alsa, а воспроизведение происходит через pulseaudio.
Решение следующее.
Устанваливаем пакет libasound2-plugins, если еще не стоит
И добавляем следующие строки:
[code] pcm.!default pulse
pcm.pulse type pulse
>
ctl.pulse type pulse
>
[/code]
Звук хорош! Чистый, без шипения и хрипов. Правда есть одно но, конфигурировать сабвуфер теперь придется через консоль.
in /etc/pulse/default.pa add this line at the end:
load-module module-combine channels=3 channel_map=front-left,front-right,lfe
then in /etc/pulse/daemon.conf change ;enable-lfe-remixing = no to enable-lfe-remixing = yes note that you have to remove the ;
Tested and validated on Kubuntu 15.04.
=======================================
не работает, человек думает, что если появился ползунок регулировки громкости сабвуфера, то он работает, но это не так
Вообще, это от модели зависит. У меня на Y550p саб выглядит как ещё один аудиовывод со своим регулятором громкости.
у меня он тоже есть в пульсе и не активен, не в алсамиксер (там что есть не влияет на него)
рядом винда стоит, там тоже нет нигде регуляторов сабвуфера, но он работает и громкость связана с общей
прописал опцианально звуковую в alsa.conf, просто активировался регулятор сабвуфера, но он не работает
да короче пробовал всё подряд, как и тот
amorpher ★★★★★ ( 20.09.15 00:03:26 )Последнее исправление: amorpher 20.09.15 00:12:15 (всего исправлений: 5)
Короче сделал (пишу подробно, мало ли кому понадобится):
1. Установить alsa-tools (из Synaptic/Центра приложений или просто из эмулятора терминала выполнить sudo apt-get install alsa-tools)
2. В /usr/bin или, что более верно, в /usr/local/bin создать скрипт (я назвал его lfe) со следующим содержанием:
и в его свойствах сделать его исполняемым (или с эмулятора терминала выполнить chmod 755 /usr/local/bin/lfe)
3. Теперь надо чтобы этот скрипт выполнялся при загрузке ОС, т. к. если его выполнить, то сабвуфер будет работать, но лишь до следующей перезагрузки. Для чего создаём systemd-юнит (в случае использования морально устаревших дистрибутивов скрипт lfe должен находиться в, например, /etc/init.d и далее как обычно делаем его запуск на 5 уровне и т. д.).
Создать юнит /etc/systemd/system/lfe.service следующего содержания:
4. Запустить сабвуфер:
systemctl enable lfe
Я не смыслю ничего в этих записях. Умоляю, поясните для чайника. ещё чуть подробнее. Also - кто она такая. Её нужно устанавливать танцуя с бубном? Как? Это команды для консоли? Скрипты? Как это? Купил ноут. Жалко не пользоваться. Долбанные lenovo не удасжились включить сабвуфер? Один единственный драйвер для звука.
Читайте также: