Як змусити Raspberry Pi використовувати за замовчуванням зовнішню звукову карту USB


17

Хтось знає, як змінити пріоритет завантаження звукової карти?

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


Оновлення за те, що ви з'явилися прямо в Google - червень 2018
SDsolar

Відповіді:


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 jessie на ras pi2


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

2
Чи не коментар "завантажувати файли конфігурації для певної карти (на запит)"?
СІЛЕНТ

Це дійсно лише коментар для пояснення блоку коду під ним
PTS

Так. Часткова відповідь. Тут недостатньо авторитетної інформації для мене, щоб вирішити питання про подачу коштів. ... і цей рядок - це коментар, який не виконується. І сам блок не коментується.
SDsolar

13

Це працювало для мене на Raspbian Jessie.

Якщо вам не потрібен вбудований аудіочип (наприклад, аналоговий вихід або 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

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

@SDsolar Рада допомогти. Хоча я не думаю, що крок 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.confI ип коментуються «карти конкретних файлів конфігурації навантаження (на замовлення)» , і я також замінив, зміст .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, працював для мене. Мені керує Распіан Джессі.

Новою інформацією було те, що мені довелося створити новий .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-аудіо-файл у поточний каталог та перейменуйте відповідним чином. Якщо це працює, то ви можете жорстко закодувати ці значення таким чином, що вони стануть за замовчуванням для програвання серед усіх інших аудіо, якими обробляє 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.


Чи можете ви пояснити, про що ви говорите, кажучи: "скопіюйте дійсний аудіофайл у вашому поточному каталозі та перейменуйте відповідним чином"? Це стосується aplayкоманди "підтвердити, що пристрій працює"? Чи недостатньо добре вказати дійсний аудіофайл у форматі WAV за його поточним іменем та повним шляхом?
G-Man каже: "Відновіть Моніку"

@ G-man Так, вказати будь-який WAV-аудіофайл за його повним або дійсним шляхом слід добре. У моєму конкретному прикладі я використовував, InsertYourWavFileHere.wavале це можна було б так само легко замінити, ./audio/test.wavякби у вас був файл wav в аудіо-підкаталозі з назвою 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

Я спробував багато пропозицій людей щодо змін конфігурації. Kodi продовжував виводити аудіо в hdmi. Нарешті я виявив, що Kodi має налаштування в System | Аудіо, яке дозволяє вибрати, до якої аудіокарті виходити! Так очевидно, як тільки ви це побачите.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.