Микрофон не работает в Linux: как проверить и устранить неисправность

Microphone-Test.org ·

Микрофон не работает в Linux: как проверить и устранить неисправность

В Linux неработающий микрофон гораздо чаще оказывается просто отключённым, чем неисправным. Канал захвата ALSA по умолчанию отключён во многих дистрибутивах, поэтому капсула работает, а драйвер ничего не передаёт. Неправильно выбранный источник по умолчанию или приложение, запущенное в песочнице, объясняют большинство остальных случаев. Сигнал проходит через многоуровневую структуру: сначала драйвер ядра ALSA, затем PipeWire или PulseAudio, а затем само приложение. Сигнал может быть прерван на любом уровне, и результат всегда один и тот же — тишина. Правильное устранение неполадки полностью зависит от того, на каком именно уровне происходит блокировка. В этом руководстве вы определите этот уровень, а затем устраните неполадку с помощью действий как в графическом интерфейсе, так и в терминале. Начните с быстрого теста микрофона или проверки индикатора входа на рабочем столе, чтобы убедиться в исправности оборудования. Затем выясните, что использует ваш дистрибутив — PipeWire или PulseAudio, поскольку приведённые ниже команды зависят от ответа на этот вопрос.

Микрофон не работает в Linux: краткий чек-лист по устранению неполадок

Проведите тест с помощью нашего теста микрофона или индикатора уровня звукового входа на рабочем столе.
Включите канал Capture в alsamixer и увеличьте его уровень.
Укажите правильный вход в pavucontrol (или с помощью wpctl в PipeWire).
Убедитесь, что ваш пользователь состоит в группе audio.
Перезапустите аудио: systemctl --user restart pipewire pipewire-pulse или pulseaudio -k.

Проверьте работу микрофона в Linux менее чем за минуту

Прежде чем изменять какие-либо настройки, убедитесь, что микрофон улавливает звук. Способ устранения проблемы «нет сигнала» полностью отличается от способа устранения проблемы «сигнал есть, но меня никто не слышит. Индикатор входного сигнала в режиме реального времени даёт самый быстрый и достоверный ответ, поскольку мгновенно реагирует на ваш голос. Циклзапись — воспроизведение» может скрыть ошибки при выборе устройства, поэтому начните с индикатора уровня. Откройте наш онлайн-тест микрофона и разрешите доступ, когда браузер запросит это. Теперь говорите как обычно. Если индикатор уровня движется, когда вы говорите, значит микрофон, драйвер и звуковой сервер работают исправно. В этом случае проблема находится выше — в маршрутизации или в каком-то конкретном приложении. Если индикатор остаётся неподвижным, это означает, что сигнал заблокирован или выбран неверный вход.

Проверьте свой микрофон →

Ваш рабочий стол также предоставляет встроенный доступ к микрофону. В GNOME откройте Настройки › Звук › Вход и выберите своё устройство; полоска Уровень входа должна двигаться, когда вы говорите. В KDE Plasma откройте Настройки системы › Аудио и наблюдайте за индикатором рядом с устройством записи. Предположим, что полоска здесь двигается, но приложение по-прежнему ничего не слышит. В этом случае вы убедились, что проблема связана именно с приложением, а не с системой в целом, поэтому переходите к разделам о маршрутизации и разрешениях ниже. Таблица показывает, в каких графических местах рабочий стол отображает микрофон и что подтверждает показание в каждом из них.

Где искатьПутьЧто это подтверждает
Индикатор входа GNOMEНастройки › Звук › ВходПолучает ли система сигнал и с какого устройства
Панель аудио KDEНастройки системы › АудиоАктивное устройство записи и его маршрутизация для каждого приложения
Регулировка громкостиpavucontrol › Устройства вводаСостояние отключения звука, уровень усиления и выбранный аппаратный порт
Вкладка Записьpavucontrol › ЗаписьКакое приложение ведёт запись с какого устройства — в реальном времени

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

Звук в Linux состоит из нескольких слоёв, и правильное решение зависит от того, в каком именно слое возникла проблема. В основе лежит ALSA — драйвер уровня ядра, который взаимодействует со звуковой картой. Над ним работает звуковой сервер, который микширует потоки и распределяет их между приложениями. Здесь преобладают два сервера. Современные дистрибутивы поставляются с PipeWire. Первой его внедрила Fedora, а Ubuntu использует его по умолчанию начиная с версии 22.10. В PipeWire работает слой совместимости под названием pipewire-pulse, благодаря которому старые инструменты по-прежнему работают без изменений. В более старых выпусках и некоторых консервативных конфигурациях всё ещё используется PulseAudio. Оба сервера работают поверх ALSA, и отключённый канал в ALSA заглушит любой из них.

Определите свой сервер прежде чем тратить время на использование неподходящего инструмента. Запустите в терминале команду wpctl status. Чёткий список приёмников и источников означает, что активен PipeWire. Если эта команда отсутствует, скорее всего, у вас используется PulseAudio; подтвердите это командой pactl info. Это важно, поскольку команды различаются: PipeWire управляется через wpctl, а PulseAudio — через pactl. Графический инструмент pavucontrol работает с обоими вариантами, поскольку pipewire-pulse обрабатывает те же запросы. В таблице ниже перечислены основные инструменты и их функции.

ИнструментТипФункции
pavucontrolГрафическийВключает входы, настраивает усиление, выбирает порт и отображает маршруты записи для каждого приложения
alsamixerТерминал (TUI)Управление картой ALSA на низком уровне: отключение захвата, включение захвата и настройка аппаратного усиления
arecord / aplayТерминалОтображает список устройств захвата и позволяет записывать или воспроизводить файл напрямую через ALSA
wpctlТерминалОтображает список устройств PipeWire, задаёт источник по умолчанию, а также заглушает или снимает заглушение звука

Почему исправный микрофон по-прежнему не работает в Linux

Основная причина — отключённый канал захвата ALSA

ALSA управляет каждым каналом захвата независимо, и один из них может быть отключён, даже если остальные работают исправно. Когда это происходит, индикатор на рабочем столе показывает ноль, независимо от того, насколько высоко вы повышаете программную громкость. Именно это единственное условие является причиной куда большего числа «неработающих» микрофонов в Linux, чем любые аппаратные неисправности. Проблема в том, что это часто незаметно в графическом микшере. Решение находится в alsamixer — терминальном микшере, который даёт доступ к исходным настройкам звуковой карты. Запустите его, затем нажмите F6, чтобы выбрать вашу звуковую карту. Нажмите F4, чтобы переключиться в режим захвата. Выделите канал Capture клавишами со стрелками. Если под полоской отображается надпись MM, это означает, что канал отключён; нажмите M, чтобы включить его. Канал захвата также необходимо перевести в активный режим. Нажимайте Space на выбранном элементе, пока не появится красная надпись CAPTURE, затем повысьте уровень стрелкой вверх. На многих ноутбуках здесь также доступен регулятор Internal Mic Boost, по умолчанию установленный на ноль. Повышение этого значения нередко возвращает к жизни микрофон, который казался неисправным.

Неправильный источник по умолчанию и некорректная маршрутизация

Звуковой сервер выбирает источник по умолчанию, и это не всегда тот источник, который нужен вам. Подключите USB-гарнитуру, веб-камеру со встроенным микрофоном или устройство захвата HDMI — и сервер может сразу же назначить его источником. Ошибки маршрутизации могут также скрываться внутри отдельных приложений. PipeWire и PulseAudio позволяют каждой программе вести запись с отдельного устройства, настраиваемого для каждого потока. Поэтому приложение может быть нацелено на источник, который ничего не передаёт, в то время как устройство по умолчанию работает нормально. Вкладка Запись в pavucontrol напрямую показывает это, перечисляя все приложения, которые в данный момент ведут запись, и устройства, которые они используют. В первую очередь подозревайте проблему маршрутизации, если микрофон работает в одной программе, но не в другой. Bluetooth-гарнитуры добавляют ещё одну сложность. Гарнитура в высококачественном профиле A2DP вообще не имеет микрофона. Система должна переключить её в профиль HSP/HFP, прежде чем появится выносной микрофон, и качество звука при этом снижается.

Права доступа, группы и приложения в песочнице

Система контроля доступа блокирует микрофон так, что не выдаёт никаких сообщений об ошибке. Раньше пользователю нужно было входить в группу audio, чтобы получить доступ к звуковым устройствам. Большинство современных рабочих столов решают эту задачу на уровне сеанса, однако при минимальной установке или установке на сервере это требование может по-прежнему сохраняться. Песочница — более новая и серьёзная проблема. Приложения, упакованные как Flatpak или Snap, запускаются внутри изолированного слоя, который может запретить доступ к микрофону даже при нормальной работе остальной системы. В таком случае приложение получает тишину без каких-либо сообщений об ошибке. Проверить и предоставить эти разрешения можно с помощью Flatseal — графического редактора для порталов Flatpak — или из терминала командой flatpak permissions. Браузеры добавляют свой собственный отдельный уровень поверх всего этого. Сайт должен быть разрешён в браузере независимо от состояния системы. Наши руководства по Firefox и Chrome подробно описывают этот запрос в браузере.

Устранение неполадки: начиная с самой частой причины

Выполняйте эти шаги по порядку. Не переходите сразу к радикальным мерам. Такая последовательность выбрана неслучайно: сначала устраняется большинство случаев с минимальным вмешательством. Снятие блокировки и маршрутизация вместе объясняют большинство сбоев микрофона в Linux. И только затем последовательность доходит до перезапуска звукового сервера. После каждого изменения возвращайтесь к тесту микрофона или к индикатору входа на рабочем столе. Перед тем как переходить к следующему шагу, повторно проверяйте наличие сигнала, чтобы всегда знать, какой шаг решил проблему.

Снятие блокировки и настройка маршрутизации в pavucontrol

Сначала установите и запустите pavucontrol, поскольку он устраняет большинство распространённых неполадок графически. Перейдите на вкладку Устройства ввода. Найдите свой микрофон и убедитесь, что кнопка отключения звука рядом с полоской уровня не нажата. Увеличьте громкость входа, если она стоит низко. Проверьте раскрывающийся список Порт, так как ноутбуки часто объединяют в одном устройстве встроенный микрофон и разъём для гарнитуры. Теперь откройте вкладку Запись, пока ваше приложение работает. У каждого приложения в списке справа есть селектор устройства. Явно укажите проблемному приложению правильный микрофон. Одно это переназначение устраняет многие случаи «работает везде, кроме как здесь». У приложений для конференций тоже есть собственный селектор, поэтому настройте устройство и в них. Наши руководства по Zoom и Discord шаг за шагом описывают эти панели.

Включите захват в alsamixer, затем протестируйте из терминала

Перейдите в alsamixer, если графический микшер показывает плоский уровень. Повторите описанные выше шаги по снятию блокировки и включению захвата: F6 для выбора карты, F4 для захвата, затем M и Space на канале Capture. Когда канал активирован, проверьте аппаратный путь напрямую через ALSA. Запустите arecord -l, чтобы получить список всех устройств захвата, которые видит ядро. Если вашего микрофона здесь нет, проблема в драйвере или подключении, а не в настройках. Если он есть в списке, запишите короткий фрагмент и воспроизведите его командой arecord -d 5 test.wav && aplay test.wav. Если вы слышите свой голос, это подтверждает, что путь ALSA работает, и сужает поиск неисправности до сервера или приложения. В PipeWire выполните то же самое командой wpctl status, чтобы узнать идентификатор источника, а затем выполните wpctl set-default <id> и wpctl set-mute <id> 0.

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

Предположим, что канал разблокирован, выбран правильный источник, но индикатор всё равно не двигается. Скорее всего, звуковой сервер завис. Такое случается после выхода из режима ожидания, после горячей замены USB-интерфейса или после обновления драйвера. Перезапуск сервера заставляет весь аудиограф перестроиться без перезагрузки системы. В PipeWire выполните команду systemctl --user restart pipewire pipewire-pulse wireplumber. В PulseAudio выполните команду pulseaudio -k — демон перезапустится автоматически. При этом звук ненадолго прервётся. Считайте это «кнопкой сброса» для зависшего стека, а не рутинным шагом. В таблице ниже сопоставлены типичные симптомы, их обычные причины и самый быстрый способ устранения.

СимптомВероятная причинаСпособ устранения
Индикатор на рабочем столе не меняется, все устройстваКанал Capture отключён в ALSAСнимите блокировку и включите Capture в alsamixer (M, затем Space)
Работает в одном приложении, но не в другомМаршрутизация для отдельного приложения ведёт на неправильный источникПереназначьте устройство в pavucontrol › Запись
Микрофон перестал работать после подключения гарнитурыИсточник по умолчанию перенесён на новое устройствоУстановите источник с помощью wpctl set-default или pavucontrol
Отсутствует микрофон Bluetooth-гарнитурыУстройство находится в профиле A2DPПереключите его на HSP/HFP в списке профилей pavucontrol
Только одно приложение слышит тишинуFlatpak или песочница Snap блокирует микрофонПредоставьте доступ в Flatseal или через flatpak permissions
Сигнал восстанавливается только после каждой перезагрузкиЗвуковой сервер завис после перехода в режим ожиданияПерезапустите pipewire и wireplumber или выполните команду pulseaudio -k

Обеспечение стабильной работы микрофона в Linux

Несколько привычек помогут микрофону продолжать работать после того, как вы его восстановили. Регулярно обновляйте систему: PipeWire и WirePlumber часто получают исправления, связанные с маршрутизацией и Bluetooth. Закрепите нужный микрофон как источник по умолчанию, чтобы вновь подключённая гарнитура не могла незаметно занять этот слот. Периодически проверяйте разрешения Flatpak и предоставляйте доступ к микрофону только тем приложениям, которым он действительно нужен. Если микрофон должен работать в браузере, в настольном приложении и в терминале, проверяйте его в каждом из этих мест. Микрофон, который прекрасно записывает через arecord, всё ещё может быть заблокирован на уровень выше — внутри песочницы или вкладки браузера. Поведение также зависит от дистрибутива и рабочего стола, поэтому решение, подходящее для Fedora, в Ubuntu может находиться в другом меню. Если вы переключаетесь между компьютерами, наше руководство по Chromebook описывает те же проверки в ChromeOS.

Часто задаваемые вопросы

Как узнать, использует ли моя система PipeWire или PulseAudio?

Запустите команду wpctl status в терминале. Если отобразится список приёмников и источников, значит работает PipeWire. Если команда отсутствует, запустите pactl info и прочитайте строку Server Name. В Fedora и Ubuntu 22.10 и новее по умолчанию используется PipeWire; в более старых версиях — PulseAudio.

Мой микрофон работает с arecord, но не в моих приложениях. Почему?

Работающий захват arecord доказывает, что аппаратный путь ALSA исправен. Неисправность — в звуковом сервере или приложении. Откройте вкладку Запись в pavucontrol и укажите приложению правильный источник. Если приложение — Flatpak, проверьте его разрешение на использование микрофона в Flatseal.

Почему микрофон моей Bluetooth-гарнитуры не отображается?

В режиме A2DP высокого качества микрофон не поддерживается. Чтобы микрофон гарнитуры стал доступен, нужно переключить её в профиль HSP или HFP. Откройте pavucontrol, найдите устройство в списке конфигураций или профилей и выберите профиль гарнитуры. При этом качество звука снизится.

Как включить микрофон из терминала?

В ALSA откройте alsamixer, нажмите F4 для перехода в режим захвата, выберите Capture и нажмите M, чтобы снять блокировку. В PipeWire найдите идентификатор источника командой wpctl status, затем выполните wpctl set-mute <id> 0. Отключённый канал Capture в ALSA — самая частая причина отсутствия входного сигнала.

Как перезапустить аудио Linux без перезагрузки?

В PipeWire выполните команду systemctl --user restart pipewire pipewire-pulse wireplumber. В PulseAudio выполните команду pulseaudio -k — демон перезапустится самостоятельно. Звук на секунду прервётся, пока сервер перестраивает граф. Используйте этот способ только после того, как проверки снятия блокировки и маршрутизации не дали результата.

Проверьте микрофон

Проверьте микрофон →