저는 맞춤형 데비안 10 x64 시스템을 만들기 위해 미리 설정 기능을 사용하고 있습니다. late_command 단계에서 기타 사항을 구성 및 배포하기 위해 쉘 스크립트를 실행하고 있으며 물리적 오디오 인터페이스에 액세스할 수 있기를 원하는 점을 제외하면 모든 것이 잘 진행되고 있습니다.
일반적으로 저는 pacmd list-sinks
다른 오디오 카드 이름을 사용하여 쉽게 액세스할 수 있습니다. 하지만 이 경우 를 사용하면 chroot /target/ sudo -u device pacmd list-sinks
다음과 같은 이름의 더미 인터페이스만 표시됩니다 audio_null
.
또한 설치 후 시스템이 재부팅되자마자 물리적 오디오 인터페이스에 아주 정상적으로 액세스할 수 있다고 정확하게 설명합니다.
(참고로 Pulseaudio 기본 프로필 내에서 기본 인터페이스를 구성하려면 물리적 인터페이스 이름에 액세스해야 합니다. 설치 직후 루트 파일 시스템이 읽기 전용으로 설정되어 있기 때문에 지금이 이 작업을 한 번만 수행할 수 있는 마지막 시간입니다.)
설치 중에 모든 모듈이 필요하지 않고 일부 필요한 서비스/구성 단계를 건너뛸 수 있으므로 이는 예상된 동작이라고 가정합니다.
그래서 내가 지금까지 시도한 것 :
- 적절하다고 생각되는 일부 모듈을 수동으로 (재)로드합니다.
chroot /target/ sudo modprobe soundcore
- PulseAudio 서비스 다시 로드 중(아직 시작되지 않은 것으로 보입니다)
- 대상 시스템 내부 및 외부 나열(
chroot /target/ pacmd list-sinks
,pacmd list-sinks
) 이전 명령이 작동하려면 Pulse를 다시 시작해야 했는데chroot /target/ sudo -u device pulseaudio --start
오류 메시지가 표시되지 않았습니다.No PulseAudio daemon running or not running as session daemon
이전 시도 중 어느 것도 성공하지 못했고 아이디어가 부족합니다. 나는 아마도 명백한 개념을 놓쳤거나 오해했을 것입니다. 외부 관점은 환영받을 것입니다.
그것이 나의 최종 목적은 아닐지라도, 문제를 더 넓은 문제로 재개하는 것이 더 쉬울 수도 있습니다: late_command
데비안 설치 단계에서 사운드를 재생하는 방법.
추신: 가치 있는 일을 위해 저는 현재 VmWare와 이에 연결된 물리적 사운드 카드를 사용하여 가상 머신에 배포하고 있습니다.
답변1
이 단계는 여전히 chroot에서 실행 중이므로 systemd 인스턴스가 존재하지 않으며 백그라운드에서 실행 중인 systemd에 의존하는 모든 항목이 손상됩니다.
또한 설치 프로그램용으로 구축된 커널 이미지를 실행 중이며 대상 시스템에 설치된 것과 동일할 수 있지만 설치 프로그램이 다음에서 사용 가능한 최신 커널을 선택하지 않는 경우가 많습니다. 설치 시간 - 시스템에 설치된 모듈이 현재 실행 중인 커널에 맞지 않을 가능성이 높습니다.
가장 좋은 방법은 설치 프로그램 커널용 사운드 모듈을 찾고(접근성을 위해 선택적 설치 프로그램 모듈에 존재한다고 생각함) ALSA 도구를 사용하여 사운드를 재생하는 것입니다.
답변2
이렇게 하면 아마도처음 부팅할 때 실행되는 스크립트만큼 훨씬 쉽습니다.설치 프로그램 내에서 대신.
즉, "설치 미디어에서 설치 프로그램 구성 요소 로드"를 수동으로 수행한 다음 "sound-modules-5.10-8-amd64-di: sound support"(Debian 11에서는 가능하지만 Debian 10에도 있을 가능성이 높음)를 올바르게 선택하여 빠른 테스트를 수행하는 것입니다. 필요한 커널 모듈을 삽입합니다. alsa-utils(대상 내) 설치는 VirtualBox에서 즉시 작동합니다. 먼저 aplay
카드의 음소거를 해제하면 실행도 가능 합니다 amixer
.
데비안 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% unmute; amixer set PCM 80% unmute; aplay /usr/share/sounds/alsa/Noise.wav"
aplay -l
작동하는 alsa 스택을 사용하면 유사한 작업(대상 내)을 수행하고 나중에 설정 스크립트에서 해당 정보를 사용하여 하드웨어 오디오 장치 목록을 쉽게 얻을 수 있습니다 .
이것이 작동할 수는 있지만, 다른 하드웨어 설정으로 이를 올바르게 수행하는 것은 정말 까다로울 것이라고 상상할 수 있습니다. 일부 사운드 카드에는 추가 스위치나 출력 등을 선택해야 합니다. 더욱이 modprobe
최종 시스템의 옵션은 di 환경과 상당히 다를 수 있으며 카드 인덱스 등에 영향을 미칠 수 있습니다. 즐거운 해킹이 되세요!