Вопрос или проблема
Запуск 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: Решение проблем
Если у вас возникли проблемы со звуком после выполнения этих шагов:
-
Убедитесь, что все изменения были правильно сохранены и файлы настроек были корректно отредактированы.
-
Если звук по-прежнему отсутствует, попробуйте перезапустить службы ALSA и PulseAudio:
sudo alsa force-reload pulseaudio -k pulseaudio --start
-
Проверьте вывод команд
dmesg
илиjournalctl -xe
на наличие ошибок, связанных со звуком.
Следуя этим шагам, вы сможете настроить вашу систему Debian так, чтобы внешнее USB-звуковое устройство стало стандартным. Если потребуется дальнейшая помощь, вы можете обратиться к документации ALSA и PulseAudio или к сообществу пользователей Debian.