Geluid
FAQ › EUZOS Desktop › Geluid · English
Wat is het?
EUZOS heeft een eigen driver voor Intel High Definition Audio (PCI-klasse 04:03), geschreven naar de HDA 1.0a-specificatie. Hij speelt het opstart- en het inloggeluid, testtonen, het tikje bij een volumewijziging en het tikgeluid van het schermtoetsenbord, en geeft Linux-apps (Chromium) geluid en microfoon via een eigen ALSA-kernelinterface (/dev/snd). Het volume stel je in met het luidsprekericoon in de bovenbalk, de volumetoetsen of de consoleopdracht sound.
Geluid is alleen x86-64 en alleen EUZOS Desktop (op ARM64 zegt sound "only on x86-64"; EUZOS Server weigert de opdracht, zie Serverconsole).
Hoe doe ik…?
Hoe verander ik het volume?
Klik op het luidsprekericoon in de bovenbalk en sleep de schuifregelaar, gebruik de volumetoetsen van het toetsenbord, of typ sound volume <0-100> in de console. Alle drie zetten dezelfde waarde. Een nieuw volume heft ook het dempen op. sound volume zonder getal toont de huidige waarde (bijvoorbeeld volume 80 % of volume 80 % (muted)).
Hoe demp ik het geluid?
sound mute zet dempen aan of uit (het toont muted of no longer muted). De dempknop van het toetsenbord doet hetzelfde.
Welke volumetoetsen werken?
- PS/2 (scancodeset 1):
E0 30volume omhoog,E0 2Evolume omlaag,E0 20dempen; veel laptops sturen hun Fn-toetsen zo. - USB-toetsenborden in het bootprotocol: HID-codes
0x80(Volume Up),0x81(Volume Down) en0x7F(Mute). - Nog niet: de USB-consumer-page (
0xE9/0xEA/0xE2, die de meeste USB-mediatoetsen gebruiken) en Fn-toetsen die via ACPI lopen (zie docs/SOUND.md).
Op een grafisch scherm toont een volumetoets kort het volumepaneel (1,5 s); op de console verandert alleen het volume.
Hoe test ik of de luidsprekers werken?
sound tone [hz] [ms] speelt een sinustoon (standaard 440 Hz gedurende 1000 ms; bereik 20–20000 Hz en 1–60000 ms). sound stop stopt het afspelen. sound alleen toont de controller, de codec, de widgets en het gekozen uitvoerpad.
Hoe zet ik het opstartgeluid uit of kies ik een ander?
sound boot off zet het uit, sound boot on weer aan, sound boot <variant> kiest sunrise (zonsopgang), chord (akkoord, de standaard) of bell (klok); de oude Nederlandse namen zonsopgang, akkoord en klok worden nog geaccepteerd. sound boot play [variant] speelt het nu. De keuze wordt geschreven naar \EOS\FW\SOUND.TXT (oude naam GELUID.TXT wordt nog gelezen). boot off in dat bestand zet zowel het opstartgeluid (bij het inlogscherm) als het inloggeluid (sunrise, als het bureaublad verschijnt) uit.
Hoe test ik de microfoon?
sound capture [ms] neemt op gedurende de opgegeven tijd (standaard 2000 ms, bereik 10–30000 ms) en toont het niveau (piek en rms in dBFS) en de frames per seconde. Op het bureaublad: Instellingen › Camera en microfoon › Microfoon testen (zie Camera). Zolang de microfoon opneemt, staat het rode microfoonlabel in de balk.
Waarom klinkt het tikgeluid of het volumetikje niet?
Het tikje (1 kHz, 30 ms, bij het loslaten van de schuifregelaar en bij elke volumetoets) klinkt niet als het geluid gedempt is of op 0 % staat. sound tick off zet het uit tot de volgende herstart. Het tikgeluid van het schermtoetsenbord is een profielinstelling (Instellingen › Toetsenbord › Tikgeluid, zie Invoer).
Waarom is er geen luidsprekericoon?
Er is geen geluidskaart die de driver kan gebruiken (QEMU zonder intel-hda, ARM64, of alleen de HDMI/DP-audio van de processor, die wordt overgeslagen), of het instellen van de controller mislukte. sound toont waarom.
Hoe start ik de geluidsdriver opnieuw?
sound reset stopt afspelen en opnemen, vergeet de controller en stelt hem opnieuw in (daarna toont hij de informatie). Bekende beperking: het oude DMA-geheugen blijft achter.
Details
- Pas bij gebruik instellen: net als AHCI wordt de controller ingesteld bij het eerste gebruik (
sound, een toon, het opstartgeluid), niet tijdens het opstarten. Het opstartgeluid draait op een eigen thread; het opstarten wacht er niet op. - Keuze van de controller: de HDMI/DP-audio van de processor (bijvoorbeeld Haswell
8086:0a0c) wordt overgeslagen en gemeld. PCI-energietoestand D0 via de PM-capability, op Intel TCSEL = 0 en no-snoop uit, interrupts uit (de driver pollt). - Opdrachten aan de codec: de ringbuffers CORB/RIRB; als de CORB niet antwoordt, de immediate command interface.
- Afspelen: eerste uitvoerstream, 48 kHz 16-bit stereo, een ring van 32 KiB in 8 BDL-items; de thread
soundvult de ring tot 64 ms vooruit vanuit de mixer en stopt de stream na 3 s stilte. Jackdetectie gebeurt alleen bij het starten van het afspelen (een koptelefoon insteken tijdens het spelen schakelt niet om;sound stopen opnieuw spelen wel). - Opnemen: invoerstream SD0, tag 2, ring van 64 KiB; een ingestoken microfoonjack gaat voor de interne microfoon. De eerste 250 ms na elke start zijn stil gemaakt (de plop van digitale microfoons).
- De opstartgeluiden worden berekend in
libs/hda/src/sound.rsmet gehele getallen (geen opgenomen audio):sunrise(G3-D4-G4-B4, 2,3 s),chord(Fmaj9, 2,2 s, standaard),bell(A4 en E5 op A3, 2,0 s). Piek op -6,3 dBFS. De namen van de varianten zijn sinds 27-10-2026 Engels, inSOUND.TXTen op de console; de oude Nederlandse namen (zonsopgang,akkoord,klok) worden nog gelezen. - Volumetoestand staat los van de controller (
VOLUME,MUTEDinkernel/src/hda.rs), standaard 80 %, lineair in dB (0,4 dB per procent), tot de herstart (gepland: een profielinstelling). - ALSA voor Linux-apps:
/dev/snd/controlC0,/dev/snd/pcmC0D0p(afspelen, rechtPERM_SOUND) en/dev/snd/pcmC0D0c(opnemen, alleen met een microfoon, rechtPERM_MICROPHONE: Chromium enrun +mic). FormatenS16_LE,S24_LE,S32_LE,FLOAT_LE; 1–2 kanalen; 8000 tot 96000 Hz; de kernel zet om en herbemonstert naar 48 kHz. Zonder geluidskaart is er geen/dev/snden heeft Chromium geen geluid. - Een opnamestream houdt een handle van de privacy-indicator vast (
privacy::begin(Kind::Microphone, …)), zie Camera.
Naslag
Consoleopdrachten
| Opdracht | Argumenten | Wat het doet |
|---|---|---|
sound | — | controller, codec(s), streams, widgets, uitgangen en paden, ingangen (de gekozen gemarkeerd met [on]) |
sound tone | [hz] [ms] (20–20000, 1–60000; standaard 440 1000) | een testtoon spelen; oude alias toon |
sound volume | [0-100] (een % erachter mag) | het volume tonen of instellen; een nieuwe waarde heft dempen op |
sound mute | — | dempen aan/uit; oude alias demp |
sound tick | on | off | het tikje bij een volumewijziging, tot de herstart; verborgen aliassen click (een oudere help-tekst) en oud tikje, aan, uit |
sound boot | — | de instelling van het opstartgeluid en de varianten tonen |
sound boot | on | off | sunrise | chord | bell | de instelling naar SOUND.TXT schrijven; oude aliassen opstart, aan, uit, zonsopgang, akkoord, klok |
sound boot play | [variant] | een variant nu spelen; oude alias speel |
sound capture | [ms] (10–30000, standaard 2000) | opnemen en het niveau tonen (piek/rms dBFS, frames/s); oude alias opname |
sound alsa | — | de open ALSA-streams en of de microfoon opneemt |
sound stop | — | het afspelen stoppen |
sound reset | — | alles stoppen en de controller opnieuw instellen; verborgen aliassen again (een oudere help-tekst) en oud opnieuw |
run +mic <naam> | een testprogramma starten met microfoonrecht (zie Diagnose) |
Oude opdrachtnaam: geluid → sound. help gebruikt dezelfde woorden als deze tabel (tick on|off, reset).
Functies en modules
| Functie / module | Rol |
|---|---|
kernel::hda::command | de consoleopdracht sound |
kernel::hda::boot_sound | het opstartgeluid één keer per start spelen (eigen thread) |
kernel::hda::login_sound | sunrise spelen als het bureaublad verschijnt (aangeroepen vanuit desktop::start) |
kernel::hda::state / set_state / apply_volume | volume- en demptoestand; toepassen op de versterker |
kernel::hda::present | is er een bruikbare geluidskaart (zonder geen icoon) |
kernel::hda::tick / key_click | het volumetikje; het tikgeluid van het schermtoetsenbord (8 ms, 2 kHz) |
kernel::hda::write_pcm / alsa_start / queued_frames / underruns | de koppeling met het afspelen via ALSA |
kernel::hda::capture_start / capturing / meter_on / meter_take / meter_off | opnemen en de niveaumeter (Microfoon testen) |
kernel::hda::microphones / has_microphone / input_name / codec_name | wat Instellingen › Camera en microfoon toont |
kernel::volume_button | het luidsprekericoon, het paneel met de schuifregelaar, de volumetoetsen (set, request_click, work) |
kernel::linux::snd | /dev/snd voor Linux-programma's |
euzos_hda::codec, path, input, pcm (Mixer, Ring, Tone), verb | codec lezen, keuze van uitvoer-/invoerpad, mixen, verbs (zonder hardware; getest op de Mac met make sound-test) |
euzos_hda::sound (Variant, Boot, parse_setting, setting_text) | de opstartgeluiden en het formaat van SOUND.TXT |
euzos_alsa (abi, params, stream, convert, ctl) | de ALSA-ioctl-ABI, hardwareparameters, streams, omzetting, mixerelementen |
Configuratiebestanden
| Bestand | Sleutel | Waarden | Betekenis |
|---|---|---|---|
\EOS\FW\SOUND.TXT (oude naam GELUID.TXT wordt nog gelezen) | boot (ook boot=; oud opstart) | off | on | sunrise | chord | bell (oud uit, aan, zonsopgang, akkoord, klok) | opstart- en inloggeluid uit, aan (standaard chord) of een variant; # is commentaar; hoofdletters maken niet uit; geen regel = aan met de standaard |
Sinds 27-10-2026 schrijft EUZOS Engelse namen voor configuratiebestanden, sleutels, waarden en bevestigingswoorden (bijvoorbeeld
WIPE-…,environment=inPROFILE.TXT); de oude Nederlandse namen (hier oud genoemd) worden nog gelezen en geaccepteerd (docs/ENGLISH.md).
Protocolberichten en formaten
| Formaat | Beschrijving |
|---|---|
SOUND.TXT zoals sound boot het schrijft | # EUZOS: the boot sound (boot off | boot sunrise|chord|bell) gevolgd door boot <waarde>, regeleinden CRLF |
| ALSA-PCM-ioctls | PVERSION (2.0.14), INFO, HW_REFINE, HW_PARAMS, SW_PARAMS, PREPARE, START, DROP, DRAIN, PAUSE, RESET, XRUN, REWIND, FORWARD, HWSYNC, DELAY, STATUS, STATUS_EXT, WRITEI_FRAMES, READI_FRAMES, SYNC_PTR, mmap; toegang RW_INTERLEAVED/MMAP_INTERLEAVED |
/proc/asound/{cards,devices,pcm,version} | aanwezig voor programma's die daar kijken |
EUZOS