Puncte:1

Instalare Debian nesupravegheată (presedată), acces la plăcile audio

drapel tr

Folosesc caracteristica de preseeding pentru a modela un sistem Debian 10 x64 personalizat. Totul se întâmplă bine, cu excepția faptului că în timpul pasului late_command, rulez un script shell pentru a configura și implementa diverse lucruri și aș dori să pot accesa interfețele audio fizice.

De obicei, fac asta folosind pacmd list-sinks și apoi pot accesa cu ușurință diferitele nume de plăci audio. Dar în acest caz, folosind chroot /target/ sudo -u device pacmd list-sinks, singurul lucru pe care îl văd este o interfață falsă numită audio_null :

Ieșirea comenzii pacmd list-sinks

De asemenea, precizez că de îndată ce sistemul se repornește după instalare, pot accesa destul de normal interfața audio fizică.

(Pentru informații, trebuie să accesez numele interfeței fizice pentru a configura interfața implicită în profilul implicit Pulseaudio, deoarece sistemul de fișiere rădăcină este setat doar pentru citire imediat după instalare, acesta este momentul final pentru a o face o dată pentru totdeauna).

Presupun că este un comportament așteptat, deoarece toate modulele nu sunt necesare în timpul unei instalări și apoi unele servicii/pași de configurare necesari ar putea fi săriți.

Deci ce am incercat pana acum:

  • (re)încărcați manual câteva module care suna pertinent: chroot /target/ sudo modprobe soundcore
  • Se reîncarcă serviciul PulseAudio (care se pare că nu a fost încă pornit)
  • Listare din și în afara sistemului țintă (chroot /target/ pacmd list-sinks, pacmd list-sinks) Pentru ca comenzile anterioare să funcționeze, a trebuit să relansez Pulse chroot /target/ sudo -u device pulseaudio --start fără de care m-am confruntat cu un mesaj de eroare Niciun daemon PulseAudio nu rulează sau nu rulează ca demon de sesiune

Niciuna dintre încercările anterioare nu a reușit și am rămas fără idei. Probabil că am omis/am înțeles greșit un concept evident și un punct de vedere extern ar fi binevenit.

Chiar dacă nu este scopul meu final, ar putea fi mai ușor să reiau problema la una mai amplă: Cum să redați un sunet în timpul late_command pasul unei instalări Debian.

PS: Pentru cât merită, în prezent sunt implementat pe o mașină virtuală, folosind VmWare și o placă de sunet fizică conectată la aceasta.

Puncte:0
drapel br

Această etapă rulează încă într-un chroot, deci nu există nicio instanță systemd și orice lucru care depinde de systemd rulează în fundal.

De asemenea, rulați o imagine a nucleului care a fost creată pentru programul de instalare și, deși aceasta poate fi aceeași cu cea care a fost instalată în sistemul țintă, adesea nu este, deoarece instalatorul va alege cel mai recent nucleu disponibil la timpul de instalare -- așa că modulele instalate pe sistem probabil nu se vor potrivi cu nucleul care rulează în prezent.

Cel mai bun pariu este să căutați module de sunet pentru nucleul de instalare (cred că acestea există într-un modul de instalare opțional pentru accesibilitate) și să utilizați instrumentele ALSA pentru a reda sunetul.

Bil5 avatar
drapel tr
Mulțumesc pentru ideea ta, ar fi un truc frumos să folosești asta. Am făcut câteva căutări și am aflat că unul ar trebui să adauge `speakup.synth=soft` la parametrii nucleului pentru a activa funcțiile de „sinteză a vorbirii”. Am încercat că, în plus, am adăugat și `apt-install alsa-utils` la late_command. Din păcate, când lansez `aplay somefile.mp3`, văd „nu se găsește cardul „0””, presupun că modulul încă nu este încărcat sau, într-un fel, driverul nu este gata de utilizare. S-ar putea să fi înțeles greșit sfatul tău, dar până acum am găsit doar parametrul sintetizator vorbire pentru a activa funcțiile de accesibilitate audio.
Puncte:0
drapel th

A face asta probabil ar fi mult mai ușor ca un script care rulează la prima pornire în loc să fie din interiorul programului de instalare.

Acestea fiind spuse, un test rapid făcând manual „Încărcați componentele de instalare din mediul de instalare” și apoi selectând corect „sound-modules-5.10-8-amd64-di: sound support” (în Debian 11, dar probabil și acolo și pe Debian 10) inserează modulele kernel necesare. Instalarea alsa-utils (în țintă) funcționează imediat pe VirtualBox. Alergare o piesa de teatru funcționează și, cu condiția să dezactivați sunetul cardului folosind amixer primul.

Linia preseed necesară pentru Debian 11 ar arăta astfel:

d-i preseed/early_command șir anna-install sound-module

(...există și alte moduri, acesta a funcționat pentru mine)

Apoi, ar trebui, de asemenea, să vă asigurați că aveți alsa-utils pe țintă. Nu este nevoie de nimic dacă utilizați o „sarcină” precum mediul desktop etc. Dar dacă este un sistem simplu, veți avea nevoie de:

d-i pkgsel/include șir alsa-utils

În cele din urmă, pentru a face ceva zgomot (joc de cuvinte):

d-i preseed/late_command șir în-țintă /bin/sh -c \
    „Amixer set Master 80% dezactivare sunet; amixer set PCM 80% activat; aplay /usr/share/sounds/alsa/Noise.wav”

Cu o stivă alsa funcțională, puteți obține cu ușurință o listă de dispozitive audio hardware făcând aplay -l sau similar (în țintă) și folosind aceste informații în scriptul de configurare mai târziu.

În timp ce acest lucru ar putea funcționa, îmi pot imagina că ar fi foarte dificil să rezolvi asta cu diferite setări hardware. Unele plăci de sunet ar avea nevoie de comutatoare sau ieșiri suplimentare pentru a fi selectate, etc modprobe opțiunile din sistemul final ar putea fi substanțial diferite de mediul d-i și pot afecta indexurile cardurilor etc. Hacking fericit!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.