Note: To those that can only rely on a distro, this post is not
for you.
How does one configure the kernel to utilize the Intel Comet
Lake PCH cAVS onboard audio device?
An exhaustive search reveals absolutely no information. The only
recourse is therefore to enable the audio device and allow a "live"
distro to, hopefully, report the appropriate kernel modules.
I chose a Gentoo Live USB distro. After booting I executed the
command:
lsmod | grep sound
snd_seq_dummy 12288 0
snd_hrtimer 12288 1
snd_seq 126976 7 snd_seq_dummy
snd_seq_device 12288 1 snd_seq
snd_sof_pci_intel_cnl 24576 0
snd_sof_intel_hda_generic 36864 1 snd_sof_pci_intel_cnl
soundwire_intel 81920 1 snd_sof_intel_hda_generic snd_sof_intel_hda_sdw_bpt 20480 1 soundwire_intel snd_sof_intel_hda_common 176128 3 snd_sof_intel_hda_sdw_bpt,snd_sof_intel_hda_generic,snd_sof_pci_intel_cnl
snd_soc_hdac_hda 24576 1 snd_sof_intel_hda_common snd_sof_intel_hda_mlink 40960 4 snd_sof_intel_hda_sdw_bpt,soundwire_intel,snd_sof_intel_hda_common,snd_sof_intel_hda_generic
snd_sof_intel_hda 20480 2 snd_sof_intel_hda_common,snd_sof_intel_hda_generic
snd_sof_pci 20480 2 snd_sof_intel_hda_generic,snd_sof_pci_intel_cnl
snd_sof_xtensa_dsp 16384 1 snd_sof_intel_hda_generic
snd_sof 425984 6 snd_sof_intel_hda_sdw_bpt,snd_sof_pci,snd_sof_intel_hda_common,snd_sof_intel_hda_generic,snd_sof_intel_hda,snd_sof_pci_intel_cnl
snd_sof_utils 16384 1 snd_sof
snd_soc_acpi_intel_match 122880 2 snd_sof_intel_hda_generic,snd_sof_pci_intel_cnl
snd_soc_acpi_intel_sdca_quirks 12288 1 snd_soc_acpi_intel_match snd_soc_sdw_utils 126976 1 snd_sof_intel_hda_generic
snd_soc_acpi 16384 2 snd_soc_acpi_intel_match,snd_sof_intel_hda_generic
soundwire_bus 1179648 4 soundwire_intel,snd_soc_sdw_utils,soundwire_generic_allocation,soundwire_cadence
snd_soc_sdca 122880 2 snd_soc_acpi_intel_sdca_quirks,soundwire_bus snd_hda_codec_alc882 16384 1
snd_hda_codec_realtek_lib 57344 1 snd_hda_codec_alc882 snd_hda_codec_generic 122880 2 snd_hda_codec_realtek_lib,snd_hda_codec_alc882
snd_hda_codec_nvhdmi 16384 1
snd_soc_avs 237568 0
snd_hda_codec_hdmi 57344 1 snd_hda_codec_nvhdmi
snd_hda_intel 61440 2
snd_soc_hda_codec 24576 1 snd_soc_avs
snd_hda_ext_core 32768 7 snd_sof_intel_hda_sdw_bpt,snd_soc_avs,snd_soc_hda_codec,snd_sof_intel_hda_common,snd_soc_hdac_hda,snd_sof_intel_hda_mlink,snd_sof_intel_hda
snd_hda_codec 200704 10 snd_hda_codec_generic,snd_soc_avs,snd_hda_codec_hdmi,snd_soc_hda_codec,snd_hda_intel,snd_hda_codec_nvhdmi,snd_hda_codec_realtek_lib,snd_soc_hdac_hda,snd_hda_codec_alc882,snd_sof_intel_hda
snd_soc_core 413696 8 snd_soc_avs,snd_soc_hda_codec,soundwire_intel,snd_sof,snd_soc_sdca,snd_sof_intel_hda_common,snd_soc_sdw_utils,snd_soc_hdac_hda
snd_hda_core 135168 11 snd_hda_codec_generic,snd_soc_avs,snd_hda_codec_hdmi,snd_soc_hda_codec,snd_hda_intel,snd_hda_ext_core,snd_hda_codec,snd_sof_intel_hda_common,snd_hda_codec_realtek_lib,snd_soc_hdac_hda,snd_sof_intel_hda
snd_intel_dspcfg 45056 5 snd_soc_avs,snd_hda_intel,snd_sof,snd_sof_intel_hda_common,snd_sof_intel_hda_generic
snd_compress 28672 2 snd_soc_avs,snd_soc_core
snd_intel_sdw_acpi 16384 2 snd_intel_dspcfg,snd_sof_intel_hda_generic ac97_bus 12288 1 snd_soc_core
snd_hwdep 20480 1 snd_hda_codec
snd_pcm_dmaengine 20480 1 snd_soc_core
snd_pcm 188416 14 snd_soc_avs,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,soundwire_intel,snd_sof,snd_soc_sdca,snd_sof_intel_hda_common,snd_compress,snd_sof_intel_hda_generic,snd_soc_core,snd_sof_utils,snd_hda_core,snd_pcm_dmaengine
snd_timer 49152 3 snd_seq,snd_hrtimer,snd_pcm
snd 135168 21 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_sof,snd_soc_sdca,snd_timer,snd_hda_codec_realtek_lib,snd_compress,snd_soc_sdw_utils,snd_soc_core,snd_pcm
soundcore 12288 1 snd
Holy godzilla mutherfuckers! All this just to get audio?!?!?!
But lspci, I believe, narrowed things down a bit:
lspci -k
00:1f.3 Audio device: Intel Corporation Comet Lake PCH cAVS
DeviceName: Onboard - Sound
Subsystem: Gigabyte Technology Co., Ltd Device a0c3
Kernel driver in use: snd_hda_intel
Kernel modules: snd_soc_avs, snd_sof_pci_intel_cnl, snd_hda_intel
Now, the question is how to configure these three modules and will
the configuration produce all of the mess above.
Probably the only website devoted to kernel configuration has
the answer:
<https://www.kernelconfig.io/index.html>
Just do a search for each module and note the configuration
path.
But that's not all. The kernel boot log shows this:
[ 11.317341] snd_hda_codec_alc882 hdaudioC0D0: autoconfig for ALC1220: line_outs=3 (0x14/0x15/0x16/0x0/0x0) type:line
[ 11.317344] snd_hda_codec_alc882 hdaudioC0D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 11.317346] snd_hda_codec_alc882 hdaudioC0D0: hp_outs=1 (0x1b/0x0/0x0/0x0/0x0)
[ 11.317347] snd_hda_codec_alc882 hdaudioC0D0: mono: mono_out=0x0
[ 11.317348] snd_hda_codec_alc882 hdaudioC0D0: dig-out=0x1e/0x0
[ 11.317349] snd_hda_codec_alc882 hdaudioC0D0: inputs:
[ 11.317349] snd_hda_codec_alc882 hdaudioC0D0: Rear Mic=0x18
[ 11.317350] snd_hda_codec_alc882 hdaudioC0D0: Front Mic=0x19
[ 11.317351] snd_hda_codec_alc882 hdaudioC0D0: Line=0x1a
The motherboard manual indeed shows that a Realtek ALC1220
is present, but the kernel log shows that this is somehow
mapped to a Realtek ALC882.
What is going on here? For lack of further info I must
therefore use a Realtek ALC882 (the ALC1220 does not occur
in the config parameters).
Configuring a kernel is becoming more and more difficult
due to a LACK OF INFORMATION.
If anyone can provide better info, which I seriously doubt, then
please do so.
Configuring a kernel is becoming more and more difficult
due to a LACK OF INFORMATION.
If anyone can provide better info, which I seriously doubt, then
please do so.
Note: To those that can only rely on a distro, this post is not
for you.
I chose a Gentoo Live USB distro.
| Sysop: | Amessyroom |
|---|---|
| Location: | Fayetteville, NC |
| Users: | 65 |
| Nodes: | 6 (0 / 6) |
| Uptime: | 05:10:55 |
| Calls: | 862 |
| Files: | 1,311 |
| D/L today: |
921 files (14,318M bytes) |
| Messages: | 264,602 |