Sebenarnya sudah lama ingin menulis catatan ini, tapi berhubung baru ada kesempatan tertunda beberapa bulan. Awal tahun 2022 yang lalu, membeli laptop baru dengan spesifikasi
Processors: 4 × Intel® Celeron® J4125 CPU @ 2.00GHz
Memory: 11,5 GiB of RAM
Graphics Processor: Mesa Intel® UHD Graphics 600
dengan audio awalnya berupa dummy output alias tidak terdeteksi. Seiring waktu, ada dukungan dari kernel sehingga terdeteksi sebagai ES8336.
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sofessx8336 [sof-essx8336], device 0: ES8336 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: sofessx8336 [sof-essx8336], device 5: HDMI 1 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: sofessx8336 [sof-essx8336], device 6: HDMI 2 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: sofessx8336 [sof-essx8336], device 7: HDMI 3 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
Keberhasilan deteksi ini ternyata tidak diikuti dengan munculnya suara dari speaker. Yah, laptop masih diam seribu bahasa. Sound Open Firmware memberikan secercah harapan. Apalagi kemudian sof-firmware masuk ke repo current. Namun sayang, laptop masih membisu. Beberapa kali upgrade kernel, alsa, pulseaudio dan pipewire, masih saja tak terdengar. Alhamdulillah kemudian menemukan solusi dari issue yang dibuat oleh junocom di github alsa-project/alsa-ucm-conf.
Solusinya adalah mengganti /usr/share/alsa/ucm2/Intel/sof-essx8336/HiFi.conf yang tersedia secara default dari alsa, dengan yang diberikan junocomp, yaitu
SectionVerb {
EnableSequence [
#disdevall ""
# Disable all inputs / outputs
# (may be duplicated with disdevall)
cset "name='Left Headphone Mixer Left DAC Switch' on"
cset "name='Right Headphone Mixer Right DAC Switch' on"
]
}
SectionDevice."Mic" {
Comment "Analog Microphone"
EnableSequence [
cset "name='Internal Mic Switch' on"
cset "name='Headset Mic Switch' on"
]
DisableSequence [
]
Value {
CapturePriority 100
CapturePCM "hw:${CardId}"
CaptureMixerElem "ADC PGA Gain"
CaptureMasterElem "ADC"
}
}
SectionDevice."Speaker" {
Comment "Speakers"
ConflictingDevice [
"Headphones"
]
EnableSequence [
cset "name='Speaker Switch' on"
cset "name='Differential Mux' lin1-rin1"
]
DisableSequence [
cset "name='Speaker Switch' off"
cset "name='Differential Mux' lin2-rin2"
]
Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId}"
# The es8316 only has a HP-amp which is muxed to the speaker
# or to the headpones output
PlaybackMixerElem "Headphone Mixer"
PlaybackMasterElem "DAC"
}
}
SectionDevice."Headphones" {
Comment "Headphones"
ConflictingDevice [
"Speaker"
]
EnableSequence [
cset "name='Headset Mic Switch' on"
cset "name='Speaker Switch' off"
cset "name='Differential Mux' lin2-rin2"
]
DisableSequence [
cset "name='Differential Mux' lin1-rin1"
]
Value {
PlaybackPriority 300
PlaybackPCM "hw:${CardId}"
PlaybackMixerElem "Headphone Mixer"
PlaybackMasterElem "DAC"
JackControl "Headphone Jack"
JackHWMute "Speaker"
}
}
Include.hdmi.File "/Intel/sof-essx8336/Hdmi.conf"
Dengan konfigurasi tersebut audio bisa terdengar.