2013-08-01 07:17:57 +0000 2013-08-01 07:17:57 +0000
37
37

Как автоматически сделать так, чтобы Алса выбрала предпочтительное звуковое устройство?

Я купил звуковую карту USB. Я хотел бы настроить рабочий стол Linux так, чтобы он предпочитал USB-устройство, если оно подключено и автоматически переключается по мере того, как устройство подключено (un)plug. Возможно ли это и как?

Ответы (6)

37
37
37
2013-08-09 17:47:31 +0000

Найдите свою карту с

$ cat /proc/asound/cards

Чтобы получить действительные имена карт ALSA, используйте aplay:

$ aplay -l

, а затем создайте /etc/asound.conf, используя следующее:

pcm.!default {
    type hw
    card 1
}

ctl.!default {
    type hw           
    card 1
}

Замените “карточку 1” на номер или название вашей карточки, указанное выше.

Или же вы можете изменить порядок следования ваших карт таким образом, ваша USB-карта будет карточкой 0 и она будет работать без редактирования asound.conf.

16
16
16
2013-08-10 17:54:57 +0000

это метод выбора звуковой карты по умолчанию в Алсе. Вы можете установить Alsa для этого метода, если вы используете Pulse Audio.

cat /proc/asound/modules

перечислит ваши звуковые модули .Вывод команды будет выглядеть следующим образом (например):

0 snd_hda_intel

1 snd_usb_intel

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

nano /etc/modprobe.d/alsa-base.conf

& отредактируйте alsa-base.conf таким образом, чтобы ваша предпочтительная карта имела индекс =-2 / 0, а другая карта имела индекс =-1 / 1 (палка с -2 и -1 )

параметры snd_hda_intel index=-1

параметры snd_usb_intel index=-2

в этом случае предпочтительным устройством является usb-устройство.

, если у вас есть две разные карты с одинаковым именем на выходе, например, такая:

параметры snd_hda_intel

параметры snd_hda_intel

выдайте эту команду, чтобы узнать, какая из них какая:

cat /proc/asound/cards

затем отредактируйте модули следующим образом:

параметры snd_hda_intel enable=1 index=0

параметры snd_hda_intel enable=0 index=1

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

4
4
4
2016-05-28 03:47:19 +0000

Ответ от Матии Налис только наполовину работал на меня (alsamixer изменил по умолчанию, но другие вещи, такие как игра и firefox упрямо застряли не с тем значением по умолчанию). Этот пример из debian wiki работал на меня (на ноутбуке CentOS-6):

defaults.pcm.!card Generic_1
defaults.ctl.!card Generic_1
defaults.pcm.!device 0
defaults.ctl.!device 0

Для записи: ALSA плохо документирована, и особенно эта очень простая вещь, такая как выбор карты для использования, слишком сложна. Хуже того, кажется, что это меняется между системами. Также я получил тэг “Generic_1” из aplay -l, где он появляется как “карта 1” в списке. Другие люди, похоже, использовали ее, так что я сделал то же самое… что это значит, что я не могу сказать.

4
4
4
2015-12-14 23:55:48 +0000

Я также не мог получить выходной сигнал с моего USB-устройства. Мой вывод cat /proc/asound/modules был:

0 snd_hda_intel

1 snd_hda_intel

2 snd_usb_audio

Я попробовал оба описанных здесь ответа, которые не помогли (со многими комбинациями индексов и большим количеством перезагрузок). Я думаю, что проблема заключалась в инициализации моего USB устройства после загрузки. Неважно, поэтому моим рабочим решением является занесение в черный список двух других звуковых устройств путем обновления /etc/modprobe.d/blacklist.conf как:

blacklist snd_hda_intel
1
1
1
2016-01-07 23:45:17 +0000

Хотя вы можете изменить карту alsa по умолчанию, отредактировав .asoundrc или system asound.conf, есть пара существенных проблем с этим подходом.

Он хрупкий и требует перезапуска приложений, чтобы удостовериться.

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

-1
-1
-1
2016-06-24 16:47:20 +0000

Вот вариант ответа Матии Налис и Тел. Это то, что сработало со мной:

~/.asoundrc

defaults.pcm.!card 1
defaults.ctl.!card 1

(Odroid C0, Debian Jessie, HDMI аудио как карта 0 и USB Sound Card как карта 1 согласно aplay -l)

Примечание: другие методы не сработали для меня, так как /proc/asound/modules не существует и нет аудио модуля hdmi для занесения в черный список или перевода в низкий приоритет, он встроен в ядро. Похоже, мне пришлось бы перекомпилировать ядро без поддержки hdmi audio, чтобы полностью отключить его.

Похожие вопросы

6
10
5
37
8