Как перезагрузить alsa в линукс

Обновлено: 01.07.2024

Оригинал: Control Audio volume through the Ubuntu Command Line
Автор: Karim Buzdar
Дата публикации: 10 июля 2019 года
Перевод: А. Кривошей
Дата перевода: февраль 2020 г.

Человек, разбирающийся в терминале, найдет способ выполнить любое действие, находясь в командной строке. В основном мы делаем системные настройки в графическом интерфейсе Ubuntu, но есть определенные ситуации, когда вы можете сделать это из командной строки. ALSA или Advanced Linux Sound Architecture обеспечивает поддержку аудио для большинства дистрибутивов Linux.

В этой статье мы объясним, как вы можете установить пакет утилит ALSA, если он еще не установлен в вашей Ubuntu. Мы также объясним, как вы можете управлять звуковыми свойствами ваших звуковых карт с помощью:

Alsamixer - графический интерфейс для ALSA
Amixer - командный интерфейс для ALSA

Мы запускали команды и процедуры, упомянутые в этой статье, в системе Ubuntu 18.04 LTS.

Установка ALSA

Пакет Alsa-utils содержит утилиты Alsamixer и Amixer. Этот пакет доступен в официальных репозиториях Ubuntu и может быть легко установлен в командной строке с помощью команды apt-get.

Откройте терминал либо через системный поиск приложений, либо с помощью сочетания клавиш Ctrl+Alt+T.

Следующим шагом является обновление индекса репозиториев вашей системы с помощью следующей команды:

обновление индекса репозиториев

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

Теперь вы готовы установить Alsa-utils; вы можете сделать это, выполнив следующую команду от имени sudo:

установка alsa-utils

Система может попросить вас ввести пароль для sudo, а также запросить выбор Y/n для продолжения установки. Введите Y, а затем нажмите Enter; программное обеспечение будет установлено в вашей системе. Однако процесс может занять некоторое время в зависимости от скорости вашего интернета.

Использование Alsamixer - графического интерфейса для Alsa

Alsamixer предлагает графическое представление звуковых карт, установленных в вашей системе, и позволяет вам легко просматривать и управлять свойствами этих карт. Alsamixer создан на базе Ncurses, так что вы можете оставаться в терминале, работая с громкостью звуковой карты.

Вы можете запустить этот графический интерфейс, выполнив следующую команду в вашем терминале:

Alsamixer отобразит свойства вашей звуковой карты по умолчанию следующим образом:

Alsamixer

Если вы не можете увидеть все свойства, как показано на снимке экрана выше, либо разверните окно терминала или используйте клавиши со стрелками влево и вправо, чтобы просмотреть свойства, которые не видны.

Представления Alsamixer

Когда вы открываете интерфейс Alsamixer, вы видите его в представлении Payback. Это означает, что из этого представления вы можете управлять только параметрами, связанными с воспроизведением звука. Два других вида, на которые вы можете переключиться:

Представление Capture

Представление Capture

Представление All

Чтобы просмотреть свойства, связанные как с захватом, так и с воспроизведением звука, вы можете переключиться в режим «All», нажав клавишу F5, когда открыт Alsamixer. Вот так выглядит All:

Представление All

Представление Playback

Чтобы вернуться в режим Playback, нажмите кнопку F3.

Выбор звуковой карты

Утилита Alsamixer отображает свойства карты, которая выбрана «по умолчанию». Для просмотра/редактирования свойств другой звуковой карты, установленной в вашей системе, вы можете нажать F6.

просмотр/редактирование свойств звуковой карты

Меню звуковой карты, как показано выше, появляется при нажатии клавиши F6. Вы можете перемещаться вверх и вниз по меню и затем нажать Enter, чтобы выбрать другую карту. Вы также можете вручную ввести имя карты, если оно не отображается в списке, выбрав пункт меню «enter device name».

Вы можете выйти из этого меню, нажав Esc.

Управление свойствами звука

Самая важная часть использования Alsamixer - это возможность увеличивать и уменьшать громкость определенного устройства.

Вы можете перемещаться влево и вправо, чтобы выбрать устройство, громкость которого вы хотите увеличить, уменьшить или отключить.
Когда вы выбрали устройство, используйте клавиши вверх и вниз, чтобы увеличить или уменьшить громкость соответственно.
Чтобы отключить устройство/элемент управления, нажмите клавишу m, когда выбрано это свойство.
Для получения информации обо всем, что вы можете сделать с помощью Alsamixer, нажмите элемент управления F1. Это отобразит справку следующим образом:

окно справки

Вы можете использовать клавишу Esc, чтобы выйти из этого окна справки.

Использование Amixer для управления звуком с помощью команд

Amixer - это командный подход к управлению свойствами ваших звуковых карт. Он предоставляет набор команд, которые можно использовать для увеличения, уменьшения и даже отключения звука указанного устройства.

Введите следующую команду, чтобы увидеть все, что вы можете сделать с Amixer:

окно справки amixer

Ваша команда amixer выглядит в целом так:

Во всех ваших командах amixer вам нужно указывать три вещи:

1. Звуковая карта (номер карты), свойством которой вы хотите управлять.
2. Устройство/элемент управления, громкостью которого вы хотите управлять.
3. Значение громкости в процентах или децибелах, которое вы хотите установить, увеличить или уменьшить. Вы также можете указать, хотите ли вы отключить звук для звуковой карты.

Команда scontrols позволяет просматривать список элементов управления, которыми вы можете управлять:

Команда scontrols

1. Следующая команда установит громкость на главном элементе управления/устройстве первой звуковой карты на 100%.

2. Следующая команда установит громкость на элементе управления/устройстве Speaker второй звуковой карты на 30%.

3. Следующая команда установит громкость на элементе управления/устройстве Speaker второй звуковой карты на 3 дБ.

4. Следующая команда увеличит громкость на элементе управления/устройстве Speaker второй звуковой карты на 2 дБ.

5. Используйте следующие команды, чтобы отключить или включить звук устройства.

Нет звука в свежей установке Ubuntu? Видите только фиктивный вывод? Без проблем. Вот несколько методов, с помощью которых вы можете попробовать пофиксить проблему отсутствия звука в Ubuntu и других дистрибутивах Linux

Как это происходит с каждым новым выпуском Ubuntu, вы устанавливаете или обновляете свою ось до свежей версии Ubuntu и сталкиваетесь с рядом проблем. Но всегда есть способ преодолеть эти не большие, но досадные неприятности.

Одна из наиболее распространенных проблем - отсутствие звука после установки Ubuntu. Есть несколько причин отсутствия звука в Ubuntu, но я расскажу о тех приемах, которые сработали в моем случае.

Причины отсутствия звука в Ubuntu могут быть совершенно разными. И, так как решение зависит от типа проблемы, я предлагаю получить некоторую информацию о вашей системе, особенно об оборудовании, связанным со звуком.

Сначала установите инструмент inxi:

Теперь проверьте информацию о системе, машине и аудио с помощью этой команды:

Вы должны увидеть примерно такую ​​информацию:

Присмотритесь к аудио части вышеприведенного вывода. Он сообщает, что это Intel Sunrise Point-LP HD Audio, и у него есть драйвер Linux snd_hda_intel, и звук обслуживается Alsa. Эта информация может быть полезна на некоторых этапах устранения неполадок со звуком.

Исправление фиктивного вывода в настройках звука

Первый шаг, чисто, что называется, «для отчистки совести», проверьте, не замьючен ли звук. Убедившись в этом, перейдите в Настройки звука:


В настройках звука вы обнаружите, что здесь практически ничего нет, кроме фиктивного выхода. Довольно неприятно. Это означает, что ваша звуковая карта даже не распознается. Ба-дум-тс!


Без паники. Единственное решение, которое устранило проблему со звуком на моем Dell Inspiron с процессором Intel, — это принудительная перезагрузка Alsa. Для этого используйте в терминале следующую команду (Ctrl + Alt + T):

Вывод будет таким:


Вы можете подумать, что процесс подвис или все еще обрабатывается, но сам процесс занимает всего пару секунд. Вы можете просто закрыть террминал, нажав Ctrl + C.

Теперь вам нужно перезагрузить компьютер. А после: либо воспроизвести музыкальные или видеофайлы, либо заглянуть в настройки системы, что бы выяснить сработал ли этот способ.


Если прошлый способ не помог вам в устранении проблемы, попробуйте переустановить Alsa и Pulse audio следующим образом.

И снова принудительно перезагрузите Alsa:

Перезагрузитесь и проверьте, вернулся ли звук.

Перейдите в свой домашнюю директорию, а затем перейдите в скрытый каталог конфигурации. Переименуйте здесь каталог с именем pulse:

Теперь перезагрузите вашу систему. Каталог Pulse будет создан заново, и у вас должен восстановиться звук.

Третий альтернативный метод: попробуйте alsamixer

Откройте терминал и используйте следующую команду, чтобы открыть alsamixer:

Вы должны увидеть такой экран:


Проверьте, отключены ли здесь динамики или желаемый аудиовыход. MM означает отключение звука, а OO означает включение. Если желаемый аудиовыход (в основном это динамики) или мастер отключен, включите его.

Вы можете закрыть экран alsamixer, нажав клавишу Esc.

Обратите внимание: если команда alsamixer возвращает ошибку, возможно, это связано с тем, что у вас более одной звуковой карты. В этом случае вам нужно указать номер звуковой карты (см. Вывод inxi, который я упоминал в начале) следующим образом:

Диспетчер скорости (speed dispatcher) — это функция, которая позволяет вашей системе преобразовывать текст в речь. Иногда она конфликтует с другими настройками звука. Если вам не нужна эта функция, вы можете попробовать отключить ее, возможно это вернет вам звук.

Откройте терминал и отредактируйте файл диспетчера речи с помощью следующей команды:

Здесь измените RUN = yes на RUN = no. Перезагрузитесь и наслаждайтесь звуком.

Пятый альтернативный метод (специально для Lenovo Carbon X1)

Некоторые из наших читателей отметили, что ни один из вышеперечисленных методов не помог их ноутбуку Lenovo Thinkpad Carbon X1 7-го поколения.

Я изучил проблему и обнаружил следующее. У этой модели есть проблемы с Linux. Хотя в ядре Linux 5.5 и более поздних версиях улучшена поддержка этой модели, но для пользователей Ubuntu 18.04 и Mint 19, в которых используется ядро ​​более ранней версии — 5.3, все еще остаются проблемы.

Проверьте версию ядра Linux, и если она 5.4 или ниже, попробуйте следующий обходной путь, предложенный разработчиками Arch Linux и Ubuntu.

Откройте файл конфигурации alsa (команда может быть другой для Mint, потому что текстовый редактор Gedit не используется в Mint):

Добавьте в конец этого файла следующую строку:

Сохраните и закройте файл и перезагрузите систему. После этих действий звук должен вернуться.

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

Если один из вышеупомянутых методов сработал для вас, оставьте комментарий ниже, указав метод, который сэкономил вам время. Также приветствуются любые другие предложения и отзывы.

Иногда мы можем сталкиваться с такой проблемой, что в системе нет звука. В Windows, обычно, это вызывается проблемами со звуковыми драйверами и решается, чаще всего, переустановкой. В Linux же всё немного по-другому. Драйверы здесь встроены в ядро, но есть библиотеки управления звуковой подсистемой, которые иногда могут вызывать сбои и проблемы.

В этой небольшой статье мы рассмотрим несколько способов борьбы с такой проблемой, как "нет звука Ubuntu 18.04". Несмотря на то, что статья пишется для версии 18.04, она должна отлично работать, как на новых, так и на более старых версиях, а также в других дистрибутивах Linux.

Что делать, если нет звука в Ubuntu?

1. Громкость и беззвучный режим

Если в вашей системе раньше был звук, а потом пропал, нужно сначала проверить уровень громкости. Конечно, это очень простая причина, но не упомянуть о ней нельзя. Значок управления громкостью находится в правом верхнем углу:


Также можно посмотреть громкость в настройках системы. Для этого откройте утилиту настроек и перейдите на вкладку звук:

Именно здесь выполняется настройка звука Ubuntu. На этой вкладке смотрим, включён ли вообще звук, для какого устройства он включён, а также его громкость. Обратите внимание, что звук нужно передавать на колонки, а не на HDMI-выход экрана. Обычно это работает именно так. Очень часто система управления звуком ALSA не обращает внимания на настройки системы, у неё есть свой инструмент настройки громкости. Если выше перечисленные способы не помогли, можно попробовать его. Выполните в терминале:

Это инструмент командной строки, но у него есть псевдографический интерфейс, поэтому в нём будет не сложно разобраться. Здесь представлены все звуковые устройства системы и их уровень громкости. Убедитесь, что нигде нет обозначения MM, это значит, что устройство находится в беззвучном режиме, особенно обратите внимание на Master, Hearphones и PCM. Если на одном из устройств выключена громкость или установлен беззвучный режим, выберите его с помощью кнопок со стрелками вправо/влево, а затем нажмите M, чтобы включить звук. Громкость звука настраивается кнопками вверх и вниз на клавиатуре.

Должно быть как на скриншоте, сохранять настройки не нужно, они применяются в реальном времени. Для выхода из программы нажмите кнопку Esc. Скорее всего ваша проблема "нет звука Ubuntu" уже была решена, если же нет, есть ещё несколько вариантов.

2. Перезагрузка модулей ALSA

Если вариант с настройками звука не сработал, например, потому что в настройках вовсе нет никаких устройств, значит ваша звуковая карта не распознаётся. Эту проблему можно попытаться решить, перезапустив ALSA, для этого выполните команду:

sudo alsa force-reload

После выполнения команды нужно перезапустить компьютер, и если всё прошло хорошо, то в списке устройств в настройках появится ваше звуковое устройство.

3. Переустановка ALSA и PulseAudio

Если же и это решение не помогло, вы можете попробовать полностью переустановить ALSA и PulseAudio. Для этого выполните такие команды:

sudo apt remove --purge alsa-base pulseaudio

sudo apt install alsa-base pulseaudio

Затем снова перезапустите ALSA:

sudo alsa force-reload

Далее, перезагрузите свой компьютер.

4. Диспетчер речи

Этот компонент системы должен быть отключён. Чтобы убедится, что это действительно так, откройте конфигурационный файл /etc/default/speech-dispatcher и убедитесь, что в строчке RUN находится значение no:

Выводы

Сегодня мы рассмотрели, что делать, если не работает звук Ubuntu. Как видите, есть несколько решений проблемы, и я надеюсь, что одно из них вам поможет. Также вы можете проверить свои колонки. Если они исправны, то при касании пальцем к штекеру колонок будет слышен негромкий щелчок. Во всяком случае, теперь вы знаете, что делать, если пропал звук в Ubuntu.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.


Для начала более подробно о сути задачи: есть ноутбук 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, например, сообщество более-менее занимается, то звуковая подсистема явно остается за бортом.
На сегодняшний день возможности использования этой подсистемы не выдерживают никакой конкуренции с аналогами в других популярных ОС.
Такие досадные проблемы, как неработающий сабвуфер или наушники, или отсутствие НЧ-фильтра для сабвуфера, заставляют еще раз подумать, прежде чем отказываться от предустановленного софта. Ведь никому не хочется получать от своей железки меньше отдачи из-за кривостей ОС.

Читайте также: