Как изменить стандартную звуковую карту в Debian на внешнюю USB?

Вопрос или проблема

Запуск Jessie и aplay -l выдает мне это:

**** Список звуковых устройств воспроизведения ****
card 0: PCH [HDA Intel PCH], device 0: ALC887-VD Analog [ALC887-VD Analog]
  Подустройства: 1/1
  Подустройство #0: подустройство #0
card 0: PCH [HDA Intel PCH], device 1: ALC887-VD Digital [ALC887-VD Digital]
  Подустройства: 1/1
  Подустройство #0: подустройство #0
card 1: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Подустройства: 1/1
  Подустройство #0: подустройство #0
card 2: Устройство [USB Advanced Audio Device], device 0: USB Audio [USB Audio]
  Подустройства: 1/1
  Подустройство #0: подустройство #0

USB-карта — мое единственное работающее устройство (alsaplayer -o alsa -d hw:2,0 rocknroll.mp3 это подтверждает)

Поэтому я создал следующий файл /etc/modprobe.d/sound и перезагрузил pulseaudio:

options snd cards_limit=3
alias snd-card-0 snd-1
alias snd-card-1 snd-hdmi
alias snd-card-2 snd-usb
options snd slots=snd_usb_audio,snd_hd_intel,snd-1

Но звука на моей системе все еще нет. Что я делаю не так? Мне пришлось создать файл звука выше, так как раньше его не было. Так что, возможно, это устаревший способ делать вещи.

Я собираюсь дать общий ответ здесь, потому что это возникает так много раз, и это беспокоит меня уже много лет.

По сути, у меня есть система с звуковой картой Xonar DX, звуковым выходом на моем GPU и встроенной звуковой картой на материнской плате.

Совершенно случайно, какая звуковая карта устанавливается по умолчанию, так как это гонка в процессе загрузки. Более того, я не могу заблокировать модуль ядра для звукового выхода GPU, потому что он использует тот же модуль snd_hda_intel, что и встроенная звуковая карта, поэтому я не могу выяснить, как отключить одну, не отключив другую.

Первое, что нужно сделать, это выяснить, какие модули ядра они используют. Для этого выполните команду:

lspci -k 

Это покажет модули ядра, которые используют ваши устройства pci. Если вы используете usb-устройства, вам нужно найти другой способ. Если lspci не установлен, установите его с помощью: apt-get install pciutils. Для USB-устройств попробуйте:

lsmod | grep snd

Может помочь вам немного сузить круг!

Мой вывод lspci -k выглядит так:

...
06:04.0 Multimedia audio controller: C-Media Electronics Inc CMI8788 [Oxygen HD Audio]
        Подсистема: ASUSTeK Computer Inc. Virtuoso 100 (Xonar DX)
        Используемый драйвер ядра: snd_virtuoso
        Модули ядра: snd_virtuoso
...
0a:00.1 Аудиоустройство: NVIDIA Corporation GK208 HDMI/DP Audio Controller (rev a1)
        Подсистема: ASUSTeK Computer Inc. GK208 HDMI/DP Audio Controller
        Используемый драйвер ядра: snd_hda_intel
        Модули ядра: snd_hda_intel
...
0c:00.3 Аудиоустройство: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) HD Audio Controller
        Подсистема: ASUSTeK Computer Inc. Family 17h (Models 00h-0fh) HD Audio Controller
        Используемый драйвер ядра: snd_hda_intel
        Модули ядра: snd_hda_intel
...

Теперь я хочу, чтобы звуковая карта Xonar DX была первой, поэтому я вставляю следующее в sound.conf:

# cat /etc/modprobe.d/sound.conf 
options snd cards_limit=3
options snd slots=snd_virtuoso,snd_hda_intel,snd_hda_intel

После перезагрузки snd_virtuoso (т.е. моя Xonar DX) появляется первым.

Обратите внимание, что в этой настройке нет абсолютно никакой необходимости в pulse audio. Это чисто в терминах alsa.

Ответ или решение

Чтобы изменить стандартную звуковую карту в Debian на внешнюю USB-устройство, вам следует следовать нескольким шагам, учитывая, что ваша текущая конфигурация работы с ALSA и PulseAudio может потребовать корректировок. В вашем случае, как видно из вывода команды aplay -l, у вас есть несколько звуковых устройств, и необходимо установить USB устройство в качестве приоритетного. Вот подробная инструкция:

Шаг 1: Определение используемых модулей звука

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

lspci -k

или для USB-устройств:

lsmod | grep snd

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

Шаг 2: Настройка конфигурации ALSA

Теперь нужно создать или изменить файл конфигурации ALSA для приоритизации USB устройства. Откройте или создайте файл /etc/modprobe.d/sound.conf:

sudo nano /etc/modprobe.d/sound.conf

В данном файле добавьте следующие строки:

options snd cards_limit=3
options snd slots=snd_usb_audio,snd_hda_intel,snd_hda_intel

Это указывает ALSA, что вы хотите использовать snd_usb_audio (ваша внешняя USB звуковая карта) в качестве первой карты, а snd_hda_intel — как вторичную.

Шаг 3: Обновление настроек PulseAudio (если используется)

Если вы используете PulseAudio, необходимо будет обновить его конфигурацию. Для этого откройте конфигурационный файл:

nano ~/.config/pulse/default.pa

Добавьте или измените следующую строку:

set-default-sink alsa_output.usb-Advanced_Audio_Device-00.analog-stereo

Замените alsa_output.usb-Advanced_Audio_Device-00.analog-stereo на имя вашего звукового устройства, если оно отличается. Вы можете узнать его, выполнив:

pactl list sinks

Шаг 4: Перезагрузка и тестирование

После того как вы внесли все изменения, перезагрузите систему:

sudo reboot

После перезагрузки проверьте, является ли ваше USB устройство стандартной звуковой картой, выполнив:

aplay -l

Включите воспроизведение звука и проверьте:

aplay -D plughw:2,0 /path/to/audiofile.wav

Шаг 5: Решение проблем

Если у вас возникли проблемы со звуком после выполнения этих шагов:

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

  2. Если звук по-прежнему отсутствует, попробуйте перезапустить службы ALSA и PulseAudio:

    sudo alsa force-reload
    pulseaudio -k
    pulseaudio --start
  3. Проверьте вывод команд dmesg или journalctl -xe на наличие ошибок, связанных со звуком.

Следуя этим шагам, вы сможете настроить вашу систему Debian так, чтобы внешнее USB-звуковое устройство стало стандартным. Если потребуется дальнейшая помощь, вы можете обратиться к документации ALSA и PulseAudio или к сообществу пользователей Debian.

Оцените материал
Добавить комментарий

Капча загружается...