Купив USB звукову карту. Я хотів би встановити свій робочий стіл Linux так, щоб він віддав перевагу USB-пристрою, якщо він підключений та автоматично перемикається, оскільки пристрій (не) підключено. Чи можливо, і як?
Купив USB звукову карту. Я хотів би встановити свій робочий стіл Linux так, щоб він віддав перевагу USB-пристрою, якщо він підключений та автоматично перемикається, оскільки пристрій (не) підключено. Чи можливо, і як?
Відповіді:
Знайдіть свою картку за допомогою
$ 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
.
defaults.pcm.card 1 defaults.ctl.card 1
forum.palemoon.org/viewtopic.php?t=9661#p66016
це метод вибору звукової карти за замовчуванням в Alsa. Ви можете встановити Alsa, щоб цей метод працював, якщо ви використовуєте Pulse Audio.
cat / proc / asound / модулі
перерахує ваші звукові модулі. Вихід команди буде таким (наприклад):
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
видайте цю команду, щоб з’ясувати, що саме:
кішка / Proc / Asound / картки
потім редагуйте модулі таким чином:
параметри snd_hda_intel enable = 1 індекс = 0
параметри snd_hda_intel enable = 0 індекс = 1
може знадобитися перезавантаження. Тому, можливо, доведеться вручну перемикати звукові карти.
Я також не міг отримати вихід з мого USB-пристрою. Мій cat /proc/asound/modules
результат:
0 snd_hda_intel
1 snd_hda_intel
2 snd_usb_audio
Я спробував обидві описані тут відповіді, які не допомогли (з багатьма комбінаціями індексів та великою кількістю перезапуску). Я думаю, що проблема полягала в ініціалізації мого USB-пристрою після завантаження. Що б там не було, тому моє робоче рішення - це чорний список інших 2-х звукових пристроїв шляхом оновлення у /etc/modprobe.d/blacklist.conf
вигляді:
blacklist snd_hda_intel
Відповідь від Matija Nalis для мене працювала лише наполовину (alsamixer змінив типовий стан, але інші речі, такі як aplay і firefox, вперто трималися за неправильним замовчуванням). Цей приклад із вікі Debian працював на мене (на ноутбуці 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" у списку. Інші люди, здавалося, користуються ним, тому я зробив те саме ... що це означає, я не можу сказати.
Хоча ви можете змінити карту alsa за замовчуванням, відредагувавши .asoundrc або систему asound.conf, є кілька суттєвих проблем із цим підходом.
Це неміцно, і вимагає, щоб перезавантаження програми було виконано.
Якщо ви хочете перемикати карти на льоту, то вам дійсно потрібно використовувати звуковий сервер, який правильно абстрагує програми із звукової карти, наприклад, pulseaudio.
Ось варіант відповідей Матія Наліса та Теля. Це те, що працювало для мене:
~ / .asoundrc
defaults.pcm.!card 1
defaults.ctl.!card 1
(Odroid C0, Debian Jessie, аудіо HDMI як картка 0 та звукова карта USB як карта 1 відповідно до aplay -l)
Примітка: інші методи для мене не спрацювали, оскільки / proc / asound / модулі не існує, і немає аудіомодуля hdmi до чорного списку або ставиться з низьким пріоритетом, він вбудовується в ядро. Здається, мені довелося б перекомпілювати ядро без підтримки hdmi-аудіо, щоб повністю його відключити.