Как заставить Raspberry Pi использовать внешнюю звуковую карту USB по умолчанию


17

Кто-нибудь знает, как изменить приоритет загрузки звуковой карты?

Все учебники говорят мне, чтобы редактировать /etc/modprobe.d/alsa-base.conf, но файл отсутствует в Raspbian Jesse .


Upvote за
переход

Ответы:


10

Файл, который вы ищете, находится в /usr/share/alsa/alsa.conf. Его не называют alsa-base.confпростоalsa.conf

Весь соответствующий текст в этом файле просто запустите, sudo nano /usr/share/alsa/alsa.confизмените звуковую карту по умолчанию на 1 или любую другую, которую вы предпочитаете. Очевидно, 0 - это значение по умолчанию, поэтому я не удалил # из строки, которая говорит ... load card-specific configuration files(по запросу), и теперь я есть звук, исходящий от моей звуковой карты Cirrus под управлением Debian 8 Джесси на Ras Pi2


1
Я сделал несколько быстрых исправлений форматирования. Возможно, копия соответствующей части конфигурационного файла alsa сделает ваш ответ еще лучше.
Подмастерье Компьютерщик

2
Разве «загрузка специфичных для карты файлов конфигурации (по запросу)» не является комментарием?
SILENT

Это действительно просто комментарий, чтобы объяснить блок кода под ним
PTS

Ага. Частичный ответ. Здесь недостаточно авторитетной информации, чтобы я мог принять решение об отмене голосования. ... и эта строка является комментарием, который не является исполняемым. И сам блок не закомментирован.
SDsolar

13

Это сработало для меня на Распбиан Джесси.

Если вам не нужен встроенный аудиочип (например, аналоговый выход или аудио HDMI), отключите его, и тогда аудиоустройство USB может стать основным устройством:

  1. Отключить встроенный звук.
    • Откройте /etc/modprobe.d/raspi-blacklist.confи добавьте blacklist snd_bcm2835.
  2. Позвольте аудиоустройству USB быть устройством по умолчанию.
    • Откройте /lib/modprobe.d/aliases.confи закомментируйте строкуoptions snd-usb-audio index=-2
  3. перезагрузка
    • sudo reboot
  4. Проверьте это.
    • $ aplay /usr/share/sounds/alsa/Front_Center.wav

Я обновил ответ, чтобы использовать другую стратегию для отключения встроенного звука. Этот способ лучше, потому что он не ломает аудио-апплет рабочего стола.
leif81

Первый шаг очень важен, но я не нашел его нигде. Upvote. Остальное устарело. Июнь 2018 года: уже знал, что нужно перейти /usr/share/alsa/alsa.confи изменить его, чтобы сказать и то, default.ctl.card 1и default.pcm.card 1- после этого, перезагрузиться и попытаться alsa -lувидеть только показ USB и что это карта № 1. Я установил mplayerдля теста, и это здорово. Они заблокировали этот вопрос для ответов, так что вот оно.
SDsolar

@Ssolar рад помочь. Хотя я не думаю, что Шаг 2 устарел? У вас есть альтернативный способ установить устройство по умолчанию. Хорошо знать.
leif81

Это может быть проблема версии. Например, мои системы 16.04 LTS были немедленно обновлены с установочного компакт-диска 14.04. Таким образом, существуют пережитки обоих способов выполнения действий, особенно вещей, связанных с процессом загрузки, который изменился в версии v15. В моем случае файлы modprobe.d существуют, но все они пустые. Так что, в конце концов, это хорошо, что этот ответ показывает оба пути, если вы включите мой комментарий. -> Вы определенно решили мою самую большую проблему с alsamixerчерным списком bcm2835. Я искал высоко и низко, и только у вашего ответа была последняя часть головоломки. TNX MCH
SDsolar

3

У меня были проблемы с этим на последних версиях Raspbian (Джесси).

Существует файл с именем, aliases.confв /lib/modprobe.dкотором содержится строка options snd-usb-audio index=-2. Эта строка переопределяет /etc/modprobe.d/файлы, поэтому вам нужно изменить эту. Закомментируйте # строкойoptions snd-usb-audio index=-2

В нем /usr/share/alsa/alsa.confя прокомментировал «загрузить специфичные для карты файлы конфигурации (по запросу)», а также заменил содержимое .asoundrcскрытого файла в вашей домашней папке на:

pcm.!default plughw:Device
ctl.!default plughw:Device

Недостатком этого решения является то, что звуковой апплет рабочего стола не появится. Поэтому для управления громкостью используйте alsamixerприложение или кнопки физического уровня звука на USB-ключе звука.

Рекомендации для этого:

  1. https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=124016&p=857433&hilit=usb+audio#p857433
  2. http://alsa.opensrc.org/Asoundrc#Default_PCM_device .

2

Метод, описанный здесь в Raspberry Pi StackExchange, работал для меня. Я бегу Raspian Джесси.

Новая часть информации заключалась в том, что мне пришлось создать новый .confфайл, а не редактировать /usr/share/alsa/alsa.conf:

Чтобы изменить порядок своих карт, я сначала создаю файл с именем « /etc/modprobe.d/alsa base.conf. Он может быть назван как угодно», если он заканчивается на .conf. Затем я добавил следующее:

# This sets the index value of the cards but doesn't reorder.
options snd_usb_audio index=0   
options snd_bcm2835 index=1

# Does the reordering.
options snd slots=snd_usb_audio,snd_bcm2835

2

Я не был удовлетворен предыдущими ответами, дающими немного двусмысленные инструкции, поэтому я решил, что документирую более четкое решение.

Хороший пост здесь показывает, как проверить, какое устройство и карту вы хотите использовать.

Найдите номер вашего аппаратного устройства и номер карты, используя aplay -lдо и после подключения вашего USB-устройства.

Для моей системы USB-устройство указано как card 1: CODEC [USB Audio CODEC], device 0 ...

Вы можете подтвердить, что устройство работает с

aplay -D hw:1,0 InsertYourWavFileHere.wav

Обязательно скопируйте действительный аудиофайл wav в текущий каталог и переименуйте его соответствующим образом. Если это работает, то вы можете жестко закодировать эти значения так, чтобы они стали значениями по умолчанию для aplay среди всех других аудио, обрабатываемых alsa (в большинстве случаев)

Чтобы отредактировать ваши значения по умолчанию, вы также настроили конфигурационный файл alsa:

sudo nano /usr/share/alsa/alsa.conf

Конкретные строки, которые вы хотите изменить, находятся на нескольких страницах вниз. Вы можете искать с помощью Cntl + W или просто прокрутить вниз.

Изменить:

defaults.pcm.card 0 defaults.pcm.device 0

Для того, чтобы:

defaults.pcm.card 1 defaults.pcm.device 0

Сохраните файл конфигурации, нажав control + x, после чего nano попросит вас подтвердить изменения, а вы нажмете Y и Enter.


Можете ли вы объяснить, о чем вы говорите, когда говорите «скопируйте действительный аудиофайл wav в ваш текущий каталог и переименуйте соответствующим образом»? Это относится к aplayкоманде «подтвердить, что устройство работает»? Разве это не достаточно, чтобы указать действительный аудиофайл wav с его текущим именем и полным путем?
G-Man говорит: «Восстановите Монику»

@ G-man Да, указание любого аудиофайла wav по его полному или действительному пути должно подойти. В моем конкретном примере, который я использовал, InsertYourWavFileHere.wavно его также можно легко заменить, ./audio/test.wavесли у вас, например, есть файл wav в подкаталоге audio с именем test.wav. Если бы это было так, то aplay -D hw:1,0 ./audio/test.wav должно работать так же хорошо.
topher217

0

После изменения alsa.conf ( defaults.ctl.card 1 defaults.pcm.card 1) и ( load card-specific configuration files (on request)) вы должны изменить свой файл asoundrc и вставить:

pcm.!default { type hw card 0 }
pcm.default.card 1.

Все будет хорошо


0

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

Важное значение имеет отключение вызываемого звукового модуля Broadcom snd_bcm2835и проверка того, что snd_usb_audioзагружен первый и единственный. Это можно сделать одним из двух способов.

  • В /boot/config.txtфайле
  • В файле модуля черный список.

Затем установите конфигурацию ALSA, чтобы она указывала на snd_usb_audioиндекс.


-1

Я перепробовал множество предложений людей для изменения конфигурации. Коди продолжал выводить аудио на HDMI. Я наконец обнаружил, что у Kodi есть настройка в System | Аудио, которое позволяет выбрать звуковую карту для вывода! Так очевидно, когда ты это видишь.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.