Рейтинг:1

Автоматическая (preseed) установка Debian, доступ к звуковым картам

флаг tr

Я использую функцию предварительного заполнения, чтобы сформировать пользовательскую систему Debian 10 x64. Все происходит хорошо, за исключением того, что на этапе late_command я запускаю сценарий оболочки для настройки и развертывания разных вещей, и я хотел бы иметь доступ к физическим аудиоинтерфейсам.

Обычно я делаю это, используя приемники списков pacmd и тогда я могу легко получить доступ к различным именам звуковых карт. Но в этом случае с помощью chroot /target/ sudo -u устройство pacmd list-sinks, единственное, что я вижу, это фиктивный интерфейс с именем audio_null :

Вывод команды pacmd list-sinks

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

(Для справки, мне нужно получить доступ к имени физического интерфейса, чтобы настроить интерфейс по умолчанию в профиле по умолчанию Pulseaudio, поскольку корневая файловая система устанавливается в режим только для чтения сразу после установки, сейчас самое время сделать это раз и навсегда).

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

Итак, что я пробовал до сих пор:

  • Вручную (повторно) загрузите некоторые модули, которые кажутся уместными: chroot /target/звуковое ядро ​​sudo modprobe
  • Перезагрузка службы PulseAudio (которая, по-видимому, еще не запущена)
  • Листинг из целевой системы и за ее пределами (chroot /target/ pacmd список-приемников, приемники списков pacmd) Чтобы предыдущие команды заработали, мне нужно было перезапустить Pulse chroot /target/ sudo -u устройство pulseaudio --start без которого я столкнулся с сообщением об ошибке Демон PulseAudio не работает или не работает как демон сеанса

Ни одна из предыдущих попыток не увенчалась успехом, и у меня заканчиваются идеи. Я, вероятно, пропустил/неправильно понял очевидную концепцию, и сторонняя точка зрения будет приветствоваться.

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

PS: Что бы это ни стоило, в настоящее время я развертываю виртуальную машину, используя VmWare и подключенную к ней физическую звуковую карту.

Рейтинг:0
флаг th

Делать это, вероятно, было бы намного проще, как скрипт, который запускается при первой загрузке а не из установщика.

Тем не менее, быстрый тест, вручную выполнив «Загрузить компоненты установщика с установочного носителя», а затем правильно выбрав «sound-modules-5.10-8-amd64-di: поддержка звука» (в Debian 11, но, вероятно, и в Debian 10). вставляет необходимые модули ядра. Установка alsa-utils (in-target) работает из коробки на VirtualBox. Бег игра тоже работает, если вы включите звук карты с помощью миксер первый.

Предустановленная строка, необходимая для Debian 11, будет выглядеть так:

d-i preseed/early_command string anna-install sound-modules

(... есть и другие способы, этот сработал для меня)

Затем вам также нужно убедиться, что у вас есть alsa-utils на цели. Ничего не нужно, если вы используете «задачу», такую ​​как среда рабочего стола и т. Д. Но если это голая система, вам понадобятся:

d-i pkgsel/include string alsa-utils

Наконец, чтобы немного пошуметь (каламбур):

d-i preseed/late_command string in-target /bin/sh -c \
    "amixer set Master 80% включить звук; amixer установить PCM 80% включить звук; aplay /usr/share/sounds/alsa/Noise.wav"

С работающим стеком alsa вы можете легко получить список аппаратных аудиоустройств, выполнив играть -l или аналогичный (целевой) и использовать эту информацию в сценарии установки позже.

Хотя это может сработать, я могу себе представить, что было бы очень сложно сделать это правильно с различными настройками оборудования. Для некоторых звуковых карт потребуется выбор дополнительных переключателей или выходов и т. д. Более того, модзонд опции в итоговой системе могут существенно отличаться от среды d-i и влиять на картотеки и т. д. Удачного взлома!

Рейтинг:0
флаг br

Этот этап все еще выполняется в chroot, поэтому экземпляра systemd не существует, и все, что зависит от systemd, работающего в фоновом режиме, не работает.

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

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

Bil5 avatar
флаг tr
Спасибо за вашу идею, это был бы хороший хак, чтобы использовать это. Я сделал несколько поисков и обнаружил, что нужно добавить `speakup.synth=soft` к параметрам ядра, чтобы включить функции «синтеза речи». Я попробовал это, кроме того, я также добавил `apt-install alsa-utils` в файл late_command. К сожалению, когда я запускаю `aplay somefile.mp3`, я вижу "не могу найти карту '0'", я предполагаю, что модуль все еще не загружен, или каким-то образом драйвер не готов к использованию. Возможно, я неправильно понял ваш совет, но до сих пор я наткнулся только на параметр синтеза речи, чтобы включить функции доступности звука.

Ответить или комментировать

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