Как мне изменить, какие аудиоразъемы используются для ввода и вывода?
Я использую встроенную в материнскую плату звуковую карту Realtek HD. Драйвер Windows поставляется с панелью управления, которая позволяет мне выбирать, какие гнезда на задней панели используются для чего. Так, например, я могу сделать как синий разъем, так и зеленый разъем для вывода, и только красный для микрофона. (В то время как по умолчанию синий разъем предназначен для линейного входа, который мне никогда не нужен.)
Как я могу сделать то же самое под Linux? Если возможно, пожалуйста, не предлагайте что-то, что включает PulseAudio или JACK; Я хотел бы сделать это простым способом, например, редактируя файлы конфигурации ALSA, если это возможно. Насколько я понимаю, моя проблема не должна иметь ничего общего с серверами программного обеспечения, перенаправляющими потоки, а просто инструктировать драйвер так же и так обращаться с этим гнездом, потому что оно поддерживается аппаратно.
Большое спасибо!
2 ответа
Мне удалось это сделать, но изменения возвращаются после перезагрузки. (Обновление: это можно обойти; см. Нижнюю часть этого сообщения.)
Я сделал это с помощью графического интерфейса в Python под названием HDA Analyzer, который можно получить и использовать на веб-сайте ALSA, как показано ниже:
wget -O run.py http://www.alsa-project.org/hda-analyzer.py
sudo python run.py
(Их страница не говоритsudo
, но если вы не сделаете это сsudo
, он загрузит скрипты, но не сможет их запустить и пожалуется на привилегии.)
Теперь это заставит запуск графического интерфейса, но его использование не объяснено, и это не совсем дружественно для новичка. Чтобы облегчить жизнь, я объясню, как я это сделал. В моем случае это был вопрос двух кликов; сложная часть находила именно то, что нужно нажать.
(Примечание. Вы можете исследовать все узлы один за другим, но не изменяйте ничего, что не понимаете. Любое изменение (например, отметка флажка) вступает в силу немедленно; кнопка "Применить" отсутствует.)
Список содержит много узлов, называемых
Node[0x##]
сопровождаемый любым изAUD_OUT
,AUD_IN
,AUD_MIX
,PIN
а такжеVENDOR
, Единственное, на что нужно обратить внимание, этоPIN
из них.Существует несколько типов узлов PIN; нужный нам тип заполнит все окно панелями / группами управления (это помогает растянуть или развернуть окно), как на этом скриншоте. (Сайт запретил мне вставлять изображение в строку, извините.)
Внутри поля Config Default некоторые узлы будут находиться в первой строке
Jack Connection: N/A
; нам нужны те, которые говорятJack Connection: Jack
как на скриншоте.Чтобы изменить линейный вход на выходной разъем, посмотрите, пока не найдете узел, который говорит
Jack Type: Line In
, (И обратите внимание наJack Location2: Rear
а такжеJack Color: Blue
.)Затем в трех флажках в группе управления виджетами ниже снимите флажок IN и выберите OUT.
Таким же образом вы можете назначить любое из передних или задних гнезд на вход или выход.
Теперь, если вы закроете окно, он спросит, хотите ли вы отменить изменения. Сказать "да" немедленно отменяет их; Говоря нет, держит их, но только для этой сессии.
Если вы хотите сохранить свои изменения навсегда, пока не закрывайте HDA Analyzer. Вместо этого нажмите "Exp" (Экспорт) в левом нижнем углу и используйте "Сохранить как", чтобы записать скрипт Python в файл. Теперь скопируйте этот файл в нечто вроде /etc/hda-mods.py
и редактировать /etc/rc.local
как root (например, используя gksudo gedit /etc/rc.local
) и добавьте строку python /etc/hda-mods.py
прямо перед exit 0
линии, затем сохраните его и перезагрузите. Ваши изменения должны выжить.
Другой графический инструмент может быть hdajackretask
от alsa-tools-gui
пакет. Очень простой графический интерфейс, поддерживает загрузку и дополнительные параметры.
Надеюсь, я не понял вопрос полностью. ОП попросил не JACK-опции, но я уверен, что это может помочь кому-то еще. В моем случае мне пришлось проверить Advance override и Show unnected pins и установить неподключенный микрофонный вход на выход для наушников... очень странно, но работает. Хотелось бы увидеть решение линии CMD хотя