Examine individual changes

From Gentoo Wiki
Abuse Filter navigation (Home | Recent filter changes | Examine past edits | Abuse log)
Jump to:navigation Jump to:search

This page allows you to examine the variables generated by the Abuse Filter for an individual change, and test it against filters.

Variables generated for this change

VariableValue
Edit count of the user (user_editcount)
289
Name of the user account (user_name)
'Lars Hint'
Age of the user account (user_age)
11066427
Page ID (page_id)
0
Page namespace (page_namespace)
0
Page title (without namespace) (page_title)
'Chromebook/Sound configuration'
Full page title (page_prefixedtitle)
'Chromebook/Sound configuration'
Action (action)
'edit'
Edit summary/reason (summary)
'describe how to configure sound on Chromebooks that do not have a valid sound profile'
Old content model (old_content_model)
''
New content model (new_content_model)
'wikitext'
Old page wikitext, before the edit (old_wikitext)
''
New page wikitext, after the edit (new_wikitext)
'This article describes a way to configure sound for Chromebooks that do not have a valid ALSA UCM profile. There are at least two such devices. <ref>https://wiki.gentoo.org/wiki/Lenovo_IdeaPad_Flex_5_13IML05_Chromebook#Configuration</ref> <ref>https://forums.gentoo.org/viewtopic-p-8812339.html</ref> == Identification == === Kernel module === On a fresh system (or Gentoo Live Image), the module registers an attempt to load the firmware for the sound card. The log of this process looks similar to this: {{RootCmd|dmesg|collapse-output=true|output=<pre> [ 16.199710] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100 [ 16.199933] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100 [ 16.200005] sof-audio-pci-intel-cnl 0000:00:1f.3: bound 0000:00:02.0 (ops __SCT__tp_func_intel_frontbuffer_flush [i915]) [ 16.206761] sof-audio-pci-intel-cnl 0000:00:1f.3: use msi interrupt mode [ 16.245910] sof-audio-pci-intel-cnl 0000:00:1f.3: NHLT table not found [ 16.245960] sof-audio-pci-intel-cnl 0000:00:1f.3: hda codecs found, mask 4 [ 16.245971] Loading firmware: intel/sof/community/sof-cml.ri [ 16.246288] sof-audio-pci-intel-cnl 0000:00:1f.3: Direct firmware load for intel/sof/community/sof-cml.ri failed with error -2 [ 16.246292] sof-audio-pci-intel-cnl 0000:00:1f.3: error: sof firmware file is missing, you might need to [ 16.246294] sof-audio-pci-intel-cnl 0000:00:1f.3: download it from https://github.com/thesofproject/sof-bin/ [ 16.246295] sof-audio-pci-intel-cnl 0000:00:1f.3: error: failed to load DSP firmware -2 [ 16.246566] sof-audio-pci-intel-cnl 0000:00:1f.3: error: sof_probe_work failed err: -2 </pre>}} In this example, the module introduces itself as '''sof-audio-pci-intel-cnl'''. To find the actual name, it is necessary to map this name to the names of the currently loaded modules, which can be found, for example, with this command: {{RootCmd|lspci -k|output=<pre> 00:1f.3 Multimedia audio controller: Intel Corporation Comet Lake PCH-LP cAVS DeviceName: Multimedia audio controller Subsystem: Intel Corporation Comet Lake PCH-LP cAVS Kernel driver in use: sof-audio-pci-intel-cnl Kernel modules: snd_hda_intel, snd_soc_skl, snd_sof_pci_intel_cnl </pre>}} Obviously, the real name of the module is '''snd_sof_pci_intel_cnl'''. This module cannot load the sound card without the firmware. This can be confirmed with the following command: {{RootCmd|aplay -l|output=<pre> aplay: device_list:277: no soundcards found... </pre>}} === Sound Open Firmware === The module found above requires the following firmware: {{Emerge|sys-firmware/sof-firmware}} After installing the firmware, the kernel module (which was found above) must be reloaded or the system must be rebooted (which is not possible in the case of Live Image). To reload the module, the following commands should be executed: {{RootCmd|rmmod snd_sof_pci_intel_cnl|modprobe snd_sof_pci_intel_cnl}} After the module reloads, it will reintroduce itself: {{RootCmd|dmesg|collapse-output=true|output=<pre> [ 989.351858] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100 [ 989.352038] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100 [ 989.352132] sof-audio-pci-intel-cnl 0000:00:1f.3: bound 0000:00:02.0 (ops __SCT__tp_func_intel_frontbuffer_flush [i915]) [ 989.358608] sof-audio-pci-intel-cnl 0000:00:1f.3: use msi interrupt mode [ 989.369584] sof-audio-pci-intel-cnl 0000:00:1f.3: NHLT table not found [ 989.369632] sof-audio-pci-intel-cnl 0000:00:1f.3: hda codecs found, mask 4 [ 989.369648] Loading firmware: intel/sof/community/sof-cml.ri [ 989.369810] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware info: version 2:2:0-57864 [ 989.369812] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 [ 989.369816] sof-audio-pci-intel-cnl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30 [ 989.502724] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware info: version 2:2:0-57864 [ 989.502733] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 [ 989.522991] Loading firmware: intel/sof-tplg/sof-cml-rt5682-max98357a.tplg [ 989.523020] sof-audio-pci-intel-cnl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:0 [ 989.523169] sof_rt5682 sof_rt5682: ASoC: Parent card not yet available, widget card binding deferred [ 989.604307] input: sof-rt5682 Headset Jack as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input18 [ 989.604530] input: sof-rt5682 HDMI/DP,pcm=2 as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input19 [ 989.604686] input: sof-rt5682 HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input20 [ 989.604835] input: sof-rt5682 HDMI/DP,pcm=4 as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input21 [ 989.756580] sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -22 [ 989.756592] sof-audio-pci-intel-cnl 0000:00:1f.3: HW params ipc failed for stream 1 [ 989.756597] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22 [ 989.756620] DMIC16kHz: ASoC: error at __soc_pcm_hw_params on DMIC16kHz: -22 [ 989.756634] DMIC16kHz: ASoC: error at dpcm_fe_dai_hw_params on DMIC16kHz: -22 [ 989.757414] sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -22 [ 989.757427] sof-audio-pci-intel-cnl 0000:00:1f.3: HW params ipc failed for stream 1 [ 989.757432] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22 [ 989.757468] DMIC16kHz: ASoC: error at __soc_pcm_hw_params on DMIC16kHz: -22 [ 989.757483] DMIC16kHz: ASoC: error at dpcm_fe_dai_hw_params on DMIC16kHz: -22 [ 989.758235] sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -22 [ 989.758247] sof-audio-pci-intel-cnl 0000:00:1f.3: HW params ipc failed for stream 1 [ 989.758251] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22 [ 989.758275] DMIC16kHz: ASoC: error at __soc_pcm_hw_params on DMIC16kHz: -22 [ 989.758289] DMIC16kHz: ASoC: error at dpcm_fe_dai_hw_params on DMIC16kHz: -22 [ 989.760078] sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -22 [ 989.760089] sof-audio-pci-intel-cnl 0000:00:1f.3: HW params ipc failed for stream 1 [ 989.760092] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22 [ 989.760117] DMIC16kHz: ASoC: error at __soc_pcm_hw_params on DMIC16kHz: -22 [ 989.760130] DMIC16kHz: ASoC: error at dpcm_fe_dai_hw_params on DMIC16kHz: -22 [ 989.770762] sof-audio-pci-intel-cnl 0000:00:1f.3: sof_ipc3_keyword_dapm_event: Cannot find PCM for DETECT9.0 [ 989.770770] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: PRE_PMU: DETECT9.0 event failed: -22 [ 989.770777] sof-audio-pci-intel-cnl 0000:00:1f.3: sof_ipc3_keyword_dapm_event: Cannot find PCM for DETECT9.0 [ 989.770780] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: POST_PMU: DETECT9.0 event failed: -22 [ 989.770981] sof-audio-pci-intel-cnl 0000:00:1f.3: sof_ipc3_keyword_dapm_event: Cannot find PCM for DETECT9.0 [ 989.770987] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: PRE_PMD: DETECT9.0 event failed: -22 [ 989.770991] sof-audio-pci-intel-cnl 0000:00:1f.3: sof_ipc3_keyword_dapm_event: Cannot find PCM for DETECT9.0 [ 989.770994] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: POST_PMD: DETECT9.0 event failed: -22 </pre>}} Now the module loads the firmware and specifies the codec name ('''rt5682'''), which is necessary in case of custom kernel configuration. The module also produces a lot of errors that can be ignored. === Speakers === After reloading the kernel module (see sections above), it is necessary to find out which device is responsible for the speakers (sink): {{RootCmd|aplay -l|collapse-output=true|output=<pre> **** List of PLAYBACK Hardware Devices **** card 0: sofrt5682 [sof-rt5682], device 0: Port1 (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofrt5682 [sof-rt5682], device 2: HDMI1 (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofrt5682 [sof-rt5682], device 3: HDMI2 (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofrt5682 [sof-rt5682], device 4: HDMI3 (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofrt5682 [sof-rt5682], device 5: Speakers (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 </pre>}} In this example, the speakers (sink) belong to '''card 0''' as device '''5''', which can be represented as device '''plughw:0,5''' Now it is necessary to probe the device: {{RootCmd|speaker-test --device plughw:0,5 --channels 2}} This command should send white noise to both speakers alternately. If there is sound, then this device is really a speaker. If there is no sound, other devices in the list should be probed. If there is still no sound, '''plughw''' should be replaced with '''hw'''. === Microphone === After reloading the kernel module (see sections above), it is necessary to find out which device is responsible for the microphone (source): {{RootCmd|arecord -l|collapse-output=true|output=<pre> **** List of CAPTURE Hardware Devices **** card 0: sofrt5682 [sof-rt5682], device 0: Port1 (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofrt5682 [sof-rt5682], device 1: DMIC (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofrt5682 [sof-rt5682], device 8: DMIC16kHz (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 </pre>}} In this example, the microphone (source) belong to '''card 0''' as device '''1''', which can be represented as device '''plughw:0,1''' To probe the micrphone, the following command should be used: {{RootCmd|arecord --device plughw:0,1 --format S16_LE test-sound.wav}} The command will record the sound from the microphone to the file, so it is necessary to speak loudly for the test. {{Key|CTRL}} + {{Key|C}} is required to stop recording. To hear the record the following command should be used (the device is the speaker (sink) that was found in the section above): {{RootCmd|aplay --device plughw:0,5 --format S16_LE test-sound.wav}} If there is no sound, other microphone devices in the list should be probed. If there is still no sound, '''plughw''' should be replaced with '''hw'''. == PipeWire configuration == Create the following configuration file (replace '''plughw:0,5''' and '''plughw:0,1''' with the devices found above): {{FileBox|filename=/etc/pipewire/pipewire.conf.d/alsa.conf|1= context.objects = [ { factory = adapter args = { factory.name = api.alsa.pcm.sink node.name = "alsa-sink" node.description = "PCM Sink" media.class = "Audio/Sink" api.alsa.path = "plughw:0,5" } } { factory = adapter args = { factory.name = api.alsa.pcm.source node.name = "alsa-source" node.description = "PCM Source" media.class = "Audio/Source" api.alsa.path = "plughw:0,1" } } ] }} Install {{Package|media-video/pipewire}} with the following USE flags: '''sound-server''', '''pipewire-alsa''', '''bluetooth''' (optional). Add the user to the following groups: '''audio''', '''pipewire'''. Launch PipeWire as described {{Link|PipeWire#Sound_Server_Configuration|here}}, or in the case of Gentoo Live Image, simply re-login. After all of this, the sound should work. {{Note| PipeWire will handle the 3.5mm jack and Bluetooth without further customization (at least for the {{Link|Lenovo IdeaPad Flex 5 13IML05 Chromebook}}). }} == References == {{reflist}} [[Category:Laptops]] [[Category:Chromebooks]]'
Unified diff of changes made by edit (edit_diff)
'@@ -1,0 +1,214 @@ +This article describes a way to configure sound for Chromebooks that do not have a valid ALSA UCM profile. There are at least two such devices. <ref>https://wiki.gentoo.org/wiki/Lenovo_IdeaPad_Flex_5_13IML05_Chromebook#Configuration</ref> +<ref>https://forums.gentoo.org/viewtopic-p-8812339.html</ref> + +== Identification == + +=== Kernel module === + +On a fresh system (or Gentoo Live Image), the module registers an attempt to load the firmware for the sound card. The log of this process looks similar to this: + +{{RootCmd|dmesg|collapse-output=true|output=<pre> +[ 16.199710] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100 +[ 16.199933] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100 +[ 16.200005] sof-audio-pci-intel-cnl 0000:00:1f.3: bound 0000:00:02.0 (ops __SCT__tp_func_intel_frontbuffer_flush [i915]) +[ 16.206761] sof-audio-pci-intel-cnl 0000:00:1f.3: use msi interrupt mode +[ 16.245910] sof-audio-pci-intel-cnl 0000:00:1f.3: NHLT table not found +[ 16.245960] sof-audio-pci-intel-cnl 0000:00:1f.3: hda codecs found, mask 4 +[ 16.245971] Loading firmware: intel/sof/community/sof-cml.ri +[ 16.246288] sof-audio-pci-intel-cnl 0000:00:1f.3: Direct firmware load for intel/sof/community/sof-cml.ri failed with error -2 +[ 16.246292] sof-audio-pci-intel-cnl 0000:00:1f.3: error: sof firmware file is missing, you might need to +[ 16.246294] sof-audio-pci-intel-cnl 0000:00:1f.3: download it from https://github.com/thesofproject/sof-bin/ +[ 16.246295] sof-audio-pci-intel-cnl 0000:00:1f.3: error: failed to load DSP firmware -2 +[ 16.246566] sof-audio-pci-intel-cnl 0000:00:1f.3: error: sof_probe_work failed err: -2 +</pre>}} + +In this example, the module introduces itself as '''sof-audio-pci-intel-cnl'''. To find the actual name, it is necessary to map this name to the names of the currently loaded modules, which can be found, for example, with this command: + +{{RootCmd|lspci -k|output=<pre> +00:1f.3 Multimedia audio controller: Intel Corporation Comet Lake PCH-LP cAVS + DeviceName: Multimedia audio controller + Subsystem: Intel Corporation Comet Lake PCH-LP cAVS + Kernel driver in use: sof-audio-pci-intel-cnl + Kernel modules: snd_hda_intel, snd_soc_skl, snd_sof_pci_intel_cnl +</pre>}} + +Obviously, the real name of the module is '''snd_sof_pci_intel_cnl'''. + +This module cannot load the sound card without the firmware. This can be confirmed with the following command: + +{{RootCmd|aplay -l|output=<pre> +aplay: device_list:277: no soundcards found... +</pre>}} + +=== Sound Open Firmware === + +The module found above requires the following firmware: + +{{Emerge|sys-firmware/sof-firmware}} + +After installing the firmware, the kernel module (which was found above) must be reloaded or the system must be rebooted (which is not possible in the case of Live Image). To reload the module, the following commands should be executed: + +{{RootCmd|rmmod snd_sof_pci_intel_cnl|modprobe snd_sof_pci_intel_cnl}} + +After the module reloads, it will reintroduce itself: + +{{RootCmd|dmesg|collapse-output=true|output=<pre> +[ 989.351858] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100 +[ 989.352038] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100 +[ 989.352132] sof-audio-pci-intel-cnl 0000:00:1f.3: bound 0000:00:02.0 (ops __SCT__tp_func_intel_frontbuffer_flush [i915]) +[ 989.358608] sof-audio-pci-intel-cnl 0000:00:1f.3: use msi interrupt mode +[ 989.369584] sof-audio-pci-intel-cnl 0000:00:1f.3: NHLT table not found +[ 989.369632] sof-audio-pci-intel-cnl 0000:00:1f.3: hda codecs found, mask 4 +[ 989.369648] Loading firmware: intel/sof/community/sof-cml.ri +[ 989.369810] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware info: version 2:2:0-57864 +[ 989.369812] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 +[ 989.369816] sof-audio-pci-intel-cnl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30 +[ 989.502724] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware info: version 2:2:0-57864 +[ 989.502733] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 +[ 989.522991] Loading firmware: intel/sof-tplg/sof-cml-rt5682-max98357a.tplg +[ 989.523020] sof-audio-pci-intel-cnl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:0 +[ 989.523169] sof_rt5682 sof_rt5682: ASoC: Parent card not yet available, widget card binding deferred +[ 989.604307] input: sof-rt5682 Headset Jack as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input18 +[ 989.604530] input: sof-rt5682 HDMI/DP,pcm=2 as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input19 +[ 989.604686] input: sof-rt5682 HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input20 +[ 989.604835] input: sof-rt5682 HDMI/DP,pcm=4 as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input21 +[ 989.756580] sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -22 +[ 989.756592] sof-audio-pci-intel-cnl 0000:00:1f.3: HW params ipc failed for stream 1 +[ 989.756597] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22 +[ 989.756620] DMIC16kHz: ASoC: error at __soc_pcm_hw_params on DMIC16kHz: -22 +[ 989.756634] DMIC16kHz: ASoC: error at dpcm_fe_dai_hw_params on DMIC16kHz: -22 +[ 989.757414] sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -22 +[ 989.757427] sof-audio-pci-intel-cnl 0000:00:1f.3: HW params ipc failed for stream 1 +[ 989.757432] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22 +[ 989.757468] DMIC16kHz: ASoC: error at __soc_pcm_hw_params on DMIC16kHz: -22 +[ 989.757483] DMIC16kHz: ASoC: error at dpcm_fe_dai_hw_params on DMIC16kHz: -22 +[ 989.758235] sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -22 +[ 989.758247] sof-audio-pci-intel-cnl 0000:00:1f.3: HW params ipc failed for stream 1 +[ 989.758251] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22 +[ 989.758275] DMIC16kHz: ASoC: error at __soc_pcm_hw_params on DMIC16kHz: -22 +[ 989.758289] DMIC16kHz: ASoC: error at dpcm_fe_dai_hw_params on DMIC16kHz: -22 +[ 989.760078] sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -22 +[ 989.760089] sof-audio-pci-intel-cnl 0000:00:1f.3: HW params ipc failed for stream 1 +[ 989.760092] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22 +[ 989.760117] DMIC16kHz: ASoC: error at __soc_pcm_hw_params on DMIC16kHz: -22 +[ 989.760130] DMIC16kHz: ASoC: error at dpcm_fe_dai_hw_params on DMIC16kHz: -22 +[ 989.770762] sof-audio-pci-intel-cnl 0000:00:1f.3: sof_ipc3_keyword_dapm_event: Cannot find PCM for DETECT9.0 +[ 989.770770] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: PRE_PMU: DETECT9.0 event failed: -22 +[ 989.770777] sof-audio-pci-intel-cnl 0000:00:1f.3: sof_ipc3_keyword_dapm_event: Cannot find PCM for DETECT9.0 +[ 989.770780] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: POST_PMU: DETECT9.0 event failed: -22 +[ 989.770981] sof-audio-pci-intel-cnl 0000:00:1f.3: sof_ipc3_keyword_dapm_event: Cannot find PCM for DETECT9.0 +[ 989.770987] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: PRE_PMD: DETECT9.0 event failed: -22 +[ 989.770991] sof-audio-pci-intel-cnl 0000:00:1f.3: sof_ipc3_keyword_dapm_event: Cannot find PCM for DETECT9.0 +[ 989.770994] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: POST_PMD: DETECT9.0 event failed: -22 +</pre>}} + +Now the module loads the firmware and specifies the codec name ('''rt5682'''), which is necessary in case of custom kernel configuration. The module also produces a lot of errors that can be ignored. + +=== Speakers === + +After reloading the kernel module (see sections above), it is necessary to find out which device is responsible for the speakers (sink): + +{{RootCmd|aplay -l|collapse-output=true|output=<pre> +**** List of PLAYBACK Hardware Devices **** +card 0: sofrt5682 [sof-rt5682], device 0: Port1 (*) [] + Subdevices: 1/1 + Subdevice #0: subdevice #0 +card 0: sofrt5682 [sof-rt5682], device 2: HDMI1 (*) [] + Subdevices: 1/1 + Subdevice #0: subdevice #0 +card 0: sofrt5682 [sof-rt5682], device 3: HDMI2 (*) [] + Subdevices: 1/1 + Subdevice #0: subdevice #0 +card 0: sofrt5682 [sof-rt5682], device 4: HDMI3 (*) [] + Subdevices: 1/1 + Subdevice #0: subdevice #0 +card 0: sofrt5682 [sof-rt5682], device 5: Speakers (*) [] + Subdevices: 1/1 + Subdevice #0: subdevice #0 +</pre>}} + +In this example, the speakers (sink) belong to '''card 0''' as device '''5''', which can be represented as device '''plughw:0,5''' + +Now it is necessary to probe the device: + +{{RootCmd|speaker-test --device plughw:0,5 --channels 2}} + +This command should send white noise to both speakers alternately. If there is sound, then this device is really a speaker. If there is no sound, other devices in the list should be probed. If there is still no sound, '''plughw''' should be replaced with '''hw'''. + +=== Microphone === + +After reloading the kernel module (see sections above), it is necessary to find out which device is responsible for the microphone (source): + +{{RootCmd|arecord -l|collapse-output=true|output=<pre> +**** List of CAPTURE Hardware Devices **** +card 0: sofrt5682 [sof-rt5682], device 0: Port1 (*) [] + Subdevices: 1/1 + Subdevice #0: subdevice #0 +card 0: sofrt5682 [sof-rt5682], device 1: DMIC (*) [] + Subdevices: 1/1 + Subdevice #0: subdevice #0 +card 0: sofrt5682 [sof-rt5682], device 8: DMIC16kHz (*) [] + Subdevices: 1/1 + Subdevice #0: subdevice #0 +</pre>}} + +In this example, the microphone (source) belong to '''card 0''' as device '''1''', which can be represented as device '''plughw:0,1''' + +To probe the micrphone, the following command should be used: + +{{RootCmd|arecord --device plughw:0,1 --format S16_LE test-sound.wav}} + +The command will record the sound from the microphone to the file, so it is necessary to speak loudly for the test. {{Key|CTRL}} + {{Key|C}} is required to stop recording. + +To hear the record the following command should be used (the device is the speaker (sink) that was found in the section above): + +{{RootCmd|aplay --device plughw:0,5 --format S16_LE test-sound.wav}} + +If there is no sound, other microphone devices in the list should be probed. If there is still no sound, '''plughw''' should be replaced with '''hw'''. + +== PipeWire configuration == + +Create the following configuration file (replace '''plughw:0,5''' and '''plughw:0,1''' with the devices found above): + +{{FileBox|filename=/etc/pipewire/pipewire.conf.d/alsa.conf|1= +context.objects = [ + { factory = adapter + args = { + factory.name = api.alsa.pcm.sink + node.name = "alsa-sink" + node.description = "PCM Sink" + media.class = "Audio/Sink" + api.alsa.path = "plughw:0,5" + } + } + + { factory = adapter + args = { + factory.name = api.alsa.pcm.source + node.name = "alsa-source" + node.description = "PCM Source" + media.class = "Audio/Source" + api.alsa.path = "plughw:0,1" + } + } +] +}} + +Install {{Package|media-video/pipewire}} with the following USE flags: '''sound-server''', '''pipewire-alsa''', '''bluetooth''' (optional). + +Add the user to the following groups: '''audio''', '''pipewire'''. + +Launch PipeWire as described {{Link|PipeWire#Sound_Server_Configuration|here}}, or in the case of Gentoo Live Image, simply re-login. + +After all of this, the sound should work. + +{{Note| +PipeWire will handle the 3.5mm jack and Bluetooth without further customization (at least for the {{Link|Lenovo IdeaPad Flex 5 13IML05 Chromebook}}). +}} + +== References == + +{{reflist}} + +[[Category:Laptops]] +[[Category:Chromebooks]] '
Old page size (old_size)
0
Lines added in edit (added_lines)
[ 0 => 'This article describes a way to configure sound for Chromebooks that do not have a valid ALSA UCM profile. There are at least two such devices. <ref>https://wiki.gentoo.org/wiki/Lenovo_IdeaPad_Flex_5_13IML05_Chromebook#Configuration</ref>', 1 => '<ref>https://forums.gentoo.org/viewtopic-p-8812339.html</ref>', 2 => '', 3 => '== Identification ==', 4 => '', 5 => '=== Kernel module ===', 6 => '', 7 => 'On a fresh system (or Gentoo Live Image), the module registers an attempt to load the firmware for the sound card. The log of this process looks similar to this:', 8 => '', 9 => '{{RootCmd|dmesg|collapse-output=true|output=<pre>', 10 => '[ 16.199710] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100', 11 => '[ 16.199933] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100', 12 => '[ 16.200005] sof-audio-pci-intel-cnl 0000:00:1f.3: bound 0000:00:02.0 (ops __SCT__tp_func_intel_frontbuffer_flush [i915])', 13 => '[ 16.206761] sof-audio-pci-intel-cnl 0000:00:1f.3: use msi interrupt mode', 14 => '[ 16.245910] sof-audio-pci-intel-cnl 0000:00:1f.3: NHLT table not found', 15 => '[ 16.245960] sof-audio-pci-intel-cnl 0000:00:1f.3: hda codecs found, mask 4', 16 => '[ 16.245971] Loading firmware: intel/sof/community/sof-cml.ri', 17 => '[ 16.246288] sof-audio-pci-intel-cnl 0000:00:1f.3: Direct firmware load for intel/sof/community/sof-cml.ri failed with error -2', 18 => '[ 16.246292] sof-audio-pci-intel-cnl 0000:00:1f.3: error: sof firmware file is missing, you might need to', 19 => '[ 16.246294] sof-audio-pci-intel-cnl 0000:00:1f.3: download it from https://github.com/thesofproject/sof-bin/', 20 => '[ 16.246295] sof-audio-pci-intel-cnl 0000:00:1f.3: error: failed to load DSP firmware -2', 21 => '[ 16.246566] sof-audio-pci-intel-cnl 0000:00:1f.3: error: sof_probe_work failed err: -2', 22 => '</pre>}}', 23 => '', 24 => 'In this example, the module introduces itself as '''sof-audio-pci-intel-cnl'''. To find the actual name, it is necessary to map this name to the names of the currently loaded modules, which can be found, for example, with this command:', 25 => '', 26 => '{{RootCmd|lspci -k|output=<pre>', 27 => '00:1f.3 Multimedia audio controller: Intel Corporation Comet Lake PCH-LP cAVS', 28 => ' DeviceName: Multimedia audio controller', 29 => ' Subsystem: Intel Corporation Comet Lake PCH-LP cAVS', 30 => ' Kernel driver in use: sof-audio-pci-intel-cnl', 31 => ' Kernel modules: snd_hda_intel, snd_soc_skl, snd_sof_pci_intel_cnl', 32 => '</pre>}}', 33 => '', 34 => 'Obviously, the real name of the module is '''snd_sof_pci_intel_cnl'''.', 35 => '', 36 => 'This module cannot load the sound card without the firmware. This can be confirmed with the following command:', 37 => '', 38 => '{{RootCmd|aplay -l|output=<pre>', 39 => 'aplay: device_list:277: no soundcards found...', 40 => '</pre>}}', 41 => '', 42 => '=== Sound Open Firmware ===', 43 => '', 44 => 'The module found above requires the following firmware:', 45 => '', 46 => '{{Emerge|sys-firmware/sof-firmware}}', 47 => '', 48 => 'After installing the firmware, the kernel module (which was found above) must be reloaded or the system must be rebooted (which is not possible in the case of Live Image). To reload the module, the following commands should be executed:', 49 => '', 50 => '{{RootCmd|rmmod snd_sof_pci_intel_cnl|modprobe snd_sof_pci_intel_cnl}}', 51 => '', 52 => 'After the module reloads, it will reintroduce itself:', 53 => '', 54 => '{{RootCmd|dmesg|collapse-output=true|output=<pre>', 55 => '[ 989.351858] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100', 56 => '[ 989.352038] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100', 57 => '[ 989.352132] sof-audio-pci-intel-cnl 0000:00:1f.3: bound 0000:00:02.0 (ops __SCT__tp_func_intel_frontbuffer_flush [i915])', 58 => '[ 989.358608] sof-audio-pci-intel-cnl 0000:00:1f.3: use msi interrupt mode', 59 => '[ 989.369584] sof-audio-pci-intel-cnl 0000:00:1f.3: NHLT table not found', 60 => '[ 989.369632] sof-audio-pci-intel-cnl 0000:00:1f.3: hda codecs found, mask 4', 61 => '[ 989.369648] Loading firmware: intel/sof/community/sof-cml.ri', 62 => '[ 989.369810] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware info: version 2:2:0-57864', 63 => '[ 989.369812] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0', 64 => '[ 989.369816] sof-audio-pci-intel-cnl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30', 65 => '[ 989.502724] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware info: version 2:2:0-57864', 66 => '[ 989.502733] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0', 67 => '[ 989.522991] Loading firmware: intel/sof-tplg/sof-cml-rt5682-max98357a.tplg', 68 => '[ 989.523020] sof-audio-pci-intel-cnl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:0', 69 => '[ 989.523169] sof_rt5682 sof_rt5682: ASoC: Parent card not yet available, widget card binding deferred', 70 => '[ 989.604307] input: sof-rt5682 Headset Jack as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input18', 71 => '[ 989.604530] input: sof-rt5682 HDMI/DP,pcm=2 as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input19', 72 => '[ 989.604686] input: sof-rt5682 HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input20', 73 => '[ 989.604835] input: sof-rt5682 HDMI/DP,pcm=4 as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input21', 74 => '[ 989.756580] sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -22', 75 => '[ 989.756592] sof-audio-pci-intel-cnl 0000:00:1f.3: HW params ipc failed for stream 1', 76 => '[ 989.756597] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22', 77 => '[ 989.756620] DMIC16kHz: ASoC: error at __soc_pcm_hw_params on DMIC16kHz: -22', 78 => '[ 989.756634] DMIC16kHz: ASoC: error at dpcm_fe_dai_hw_params on DMIC16kHz: -22', 79 => '[ 989.757414] sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -22', 80 => '[ 989.757427] sof-audio-pci-intel-cnl 0000:00:1f.3: HW params ipc failed for stream 1', 81 => '[ 989.757432] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22', 82 => '[ 989.757468] DMIC16kHz: ASoC: error at __soc_pcm_hw_params on DMIC16kHz: -22', 83 => '[ 989.757483] DMIC16kHz: ASoC: error at dpcm_fe_dai_hw_params on DMIC16kHz: -22', 84 => '[ 989.758235] sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -22', 85 => '[ 989.758247] sof-audio-pci-intel-cnl 0000:00:1f.3: HW params ipc failed for stream 1', 86 => '[ 989.758251] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22', 87 => '[ 989.758275] DMIC16kHz: ASoC: error at __soc_pcm_hw_params on DMIC16kHz: -22', 88 => '[ 989.758289] DMIC16kHz: ASoC: error at dpcm_fe_dai_hw_params on DMIC16kHz: -22', 89 => '[ 989.760078] sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -22', 90 => '[ 989.760089] sof-audio-pci-intel-cnl 0000:00:1f.3: HW params ipc failed for stream 1', 91 => '[ 989.760092] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22', 92 => '[ 989.760117] DMIC16kHz: ASoC: error at __soc_pcm_hw_params on DMIC16kHz: -22', 93 => '[ 989.760130] DMIC16kHz: ASoC: error at dpcm_fe_dai_hw_params on DMIC16kHz: -22', 94 => '[ 989.770762] sof-audio-pci-intel-cnl 0000:00:1f.3: sof_ipc3_keyword_dapm_event: Cannot find PCM for DETECT9.0', 95 => '[ 989.770770] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: PRE_PMU: DETECT9.0 event failed: -22', 96 => '[ 989.770777] sof-audio-pci-intel-cnl 0000:00:1f.3: sof_ipc3_keyword_dapm_event: Cannot find PCM for DETECT9.0', 97 => '[ 989.770780] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: POST_PMU: DETECT9.0 event failed: -22', 98 => '[ 989.770981] sof-audio-pci-intel-cnl 0000:00:1f.3: sof_ipc3_keyword_dapm_event: Cannot find PCM for DETECT9.0', 99 => '[ 989.770987] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: PRE_PMD: DETECT9.0 event failed: -22', 100 => '[ 989.770991] sof-audio-pci-intel-cnl 0000:00:1f.3: sof_ipc3_keyword_dapm_event: Cannot find PCM for DETECT9.0', 101 => '[ 989.770994] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: POST_PMD: DETECT9.0 event failed: -22', 102 => '</pre>}}', 103 => '', 104 => 'Now the module loads the firmware and specifies the codec name ('''rt5682'''), which is necessary in case of custom kernel configuration. The module also produces a lot of errors that can be ignored.', 105 => '', 106 => '=== Speakers ===', 107 => '', 108 => 'After reloading the kernel module (see sections above), it is necessary to find out which device is responsible for the speakers (sink):', 109 => '', 110 => '{{RootCmd|aplay -l|collapse-output=true|output=<pre>', 111 => '**** List of PLAYBACK Hardware Devices ****', 112 => 'card 0: sofrt5682 [sof-rt5682], device 0: Port1 (*) []', 113 => ' Subdevices: 1/1', 114 => ' Subdevice #0: subdevice #0', 115 => 'card 0: sofrt5682 [sof-rt5682], device 2: HDMI1 (*) []', 116 => ' Subdevices: 1/1', 117 => ' Subdevice #0: subdevice #0', 118 => 'card 0: sofrt5682 [sof-rt5682], device 3: HDMI2 (*) []', 119 => ' Subdevices: 1/1', 120 => ' Subdevice #0: subdevice #0', 121 => 'card 0: sofrt5682 [sof-rt5682], device 4: HDMI3 (*) []', 122 => ' Subdevices: 1/1', 123 => ' Subdevice #0: subdevice #0', 124 => 'card 0: sofrt5682 [sof-rt5682], device 5: Speakers (*) []', 125 => ' Subdevices: 1/1', 126 => ' Subdevice #0: subdevice #0', 127 => '</pre>}}', 128 => '', 129 => 'In this example, the speakers (sink) belong to '''card 0''' as device '''5''', which can be represented as device '''plughw:0,5'''', 130 => '', 131 => 'Now it is necessary to probe the device:', 132 => '', 133 => '{{RootCmd|speaker-test --device plughw:0,5 --channels 2}}', 134 => '', 135 => 'This command should send white noise to both speakers alternately. If there is sound, then this device is really a speaker. If there is no sound, other devices in the list should be probed. If there is still no sound, '''plughw''' should be replaced with '''hw'''.', 136 => '', 137 => '=== Microphone ===', 138 => '', 139 => 'After reloading the kernel module (see sections above), it is necessary to find out which device is responsible for the microphone (source):', 140 => '', 141 => '{{RootCmd|arecord -l|collapse-output=true|output=<pre>', 142 => '**** List of CAPTURE Hardware Devices ****', 143 => 'card 0: sofrt5682 [sof-rt5682], device 0: Port1 (*) []', 144 => ' Subdevices: 1/1', 145 => ' Subdevice #0: subdevice #0', 146 => 'card 0: sofrt5682 [sof-rt5682], device 1: DMIC (*) []', 147 => ' Subdevices: 1/1', 148 => ' Subdevice #0: subdevice #0', 149 => 'card 0: sofrt5682 [sof-rt5682], device 8: DMIC16kHz (*) []', 150 => ' Subdevices: 1/1', 151 => ' Subdevice #0: subdevice #0', 152 => '</pre>}}', 153 => '', 154 => 'In this example, the microphone (source) belong to '''card 0''' as device '''1''', which can be represented as device '''plughw:0,1'''', 155 => '', 156 => 'To probe the micrphone, the following command should be used:', 157 => '', 158 => '{{RootCmd|arecord --device plughw:0,1 --format S16_LE test-sound.wav}}', 159 => '', 160 => 'The command will record the sound from the microphone to the file, so it is necessary to speak loudly for the test. {{Key|CTRL}} + {{Key|C}} is required to stop recording.', 161 => '', 162 => 'To hear the record the following command should be used (the device is the speaker (sink) that was found in the section above):', 163 => '', 164 => '{{RootCmd|aplay --device plughw:0,5 --format S16_LE test-sound.wav}}', 165 => '', 166 => 'If there is no sound, other microphone devices in the list should be probed. If there is still no sound, '''plughw''' should be replaced with '''hw'''.', 167 => '', 168 => '== PipeWire configuration ==', 169 => '', 170 => 'Create the following configuration file (replace '''plughw:0,5''' and '''plughw:0,1''' with the devices found above):', 171 => '', 172 => '{{FileBox|filename=/etc/pipewire/pipewire.conf.d/alsa.conf|1=', 173 => 'context.objects = [', 174 => ' { factory = adapter', 175 => ' args = {', 176 => ' factory.name = api.alsa.pcm.sink', 177 => ' node.name = "alsa-sink"', 178 => ' node.description = "PCM Sink"', 179 => ' media.class = "Audio/Sink"', 180 => ' api.alsa.path = "plughw:0,5"', 181 => ' }', 182 => ' }', 183 => '', 184 => ' { factory = adapter', 185 => ' args = {', 186 => ' factory.name = api.alsa.pcm.source', 187 => ' node.name = "alsa-source"', 188 => ' node.description = "PCM Source"', 189 => ' media.class = "Audio/Source"', 190 => ' api.alsa.path = "plughw:0,1"', 191 => ' }', 192 => ' }', 193 => ']', 194 => '}}', 195 => '', 196 => 'Install {{Package|media-video/pipewire}} with the following USE flags: '''sound-server''', '''pipewire-alsa''', '''bluetooth''' (optional).', 197 => '', 198 => 'Add the user to the following groups: '''audio''', '''pipewire'''.', 199 => '', 200 => 'Launch PipeWire as described {{Link|PipeWire#Sound_Server_Configuration|here}}, or in the case of Gentoo Live Image, simply re-login.', 201 => '', 202 => 'After all of this, the sound should work.', 203 => '', 204 => '{{Note|', 205 => 'PipeWire will handle the 3.5mm jack and Bluetooth without further customization (at least for the {{Link|Lenovo IdeaPad Flex 5 13IML05 Chromebook}}).', 206 => '}}', 207 => '', 208 => '== References ==', 209 => '', 210 => '{{reflist}}', 211 => '', 212 => '[[Category:Laptops]]', 213 => '[[Category:Chromebooks]]' ]
Lines removed in edit (removed_lines)
[]
New page text, stripped of any markup (new_text)
'This article describes a way to configure sound for Chromebooks that do not have a valid ALSA UCM profile. There are at least two such devices. &#91;1&#93; &#91;2&#93; Contents 1 Identification 1.1 Kernel module 1.2 Sound Open Firmware 1.3 Speakers 1.4 Microphone 2 PipeWire configuration 3 References Identification[edit | edit source] Kernel module[edit | edit source] On a fresh system (or Gentoo Live Image), the module registers an attempt to load the firmware for the sound card. The log of this process looks similar to this: root #dmesg[ 16.199710] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100 [ 16.199933] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100 [ 16.200005] sof-audio-pci-intel-cnl 0000:00:1f.3: bound 0000:00:02.0 (ops __SCT__tp_func_intel_frontbuffer_flush [i915]) [ 16.206761] sof-audio-pci-intel-cnl 0000:00:1f.3: use msi interrupt mode [ 16.245910] sof-audio-pci-intel-cnl 0000:00:1f.3: NHLT table not found [ 16.245960] sof-audio-pci-intel-cnl 0000:00:1f.3: hda codecs found, mask 4 [ 16.245971] Loading firmware: intel/sof/community/sof-cml.ri [ 16.246288] sof-audio-pci-intel-cnl 0000:00:1f.3: Direct firmware load for intel/sof/community/sof-cml.ri failed with error -2 [ 16.246292] sof-audio-pci-intel-cnl 0000:00:1f.3: error: sof firmware file is missing, you might need to [ 16.246294] sof-audio-pci-intel-cnl 0000:00:1f.3: download it from https://github.com/thesofproject/sof-bin/ [ 16.246295] sof-audio-pci-intel-cnl 0000:00:1f.3: error: failed to load DSP firmware -2 [ 16.246566] sof-audio-pci-intel-cnl 0000:00:1f.3: error: sof_probe_work failed err: -2 In this example, the module introduces itself as sof-audio-pci-intel-cnl. To find the actual name, it is necessary to map this name to the names of the currently loaded modules, which can be found, for example, with this command: root #lspci -k00:1f.3 Multimedia audio controller: Intel Corporation Comet Lake PCH-LP cAVS DeviceName: Multimedia audio controller Subsystem: Intel Corporation Comet Lake PCH-LP cAVS Kernel driver in use: sof-audio-pci-intel-cnl Kernel modules: snd_hda_intel, snd_soc_skl, snd_sof_pci_intel_cnl Obviously, the real name of the module is snd_sof_pci_intel_cnl. This module cannot load the sound card without the firmware. This can be confirmed with the following command: root #aplay -laplay: device_list:277: no soundcards found... Sound Open Firmware[edit | edit source] The module found above requires the following firmware: root #emerge --ask sys-firmware/sof-firmware After installing the firmware, the kernel module (which was found above) must be reloaded or the system must be rebooted (which is not possible in the case of Live Image). To reload the module, the following commands should be executed: root #rmmod snd_sof_pci_intel_cnlroot #modprobe snd_sof_pci_intel_cnl After the module reloads, it will reintroduce itself: root #dmesg[ 989.351858] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100 [ 989.352038] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100 [ 989.352132] sof-audio-pci-intel-cnl 0000:00:1f.3: bound 0000:00:02.0 (ops __SCT__tp_func_intel_frontbuffer_flush [i915]) [ 989.358608] sof-audio-pci-intel-cnl 0000:00:1f.3: use msi interrupt mode [ 989.369584] sof-audio-pci-intel-cnl 0000:00:1f.3: NHLT table not found [ 989.369632] sof-audio-pci-intel-cnl 0000:00:1f.3: hda codecs found, mask 4 [ 989.369648] Loading firmware: intel/sof/community/sof-cml.ri [ 989.369810] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware info: version 2:2:0-57864 [ 989.369812] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 [ 989.369816] sof-audio-pci-intel-cnl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30 [ 989.502724] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware info: version 2:2:0-57864 [ 989.502733] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 [ 989.522991] Loading firmware: intel/sof-tplg/sof-cml-rt5682-max98357a.tplg [ 989.523020] sof-audio-pci-intel-cnl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:0 [ 989.523169] sof_rt5682 sof_rt5682: ASoC: Parent card not yet available, widget card binding deferred [ 989.604307] input: sof-rt5682 Headset Jack as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input18 [ 989.604530] input: sof-rt5682 HDMI/DP,pcm=2 as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input19 [ 989.604686] input: sof-rt5682 HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input20 [ 989.604835] input: sof-rt5682 HDMI/DP,pcm=4 as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input21 [ 989.756580] sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -22 [ 989.756592] sof-audio-pci-intel-cnl 0000:00:1f.3: HW params ipc failed for stream 1 [ 989.756597] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22 [ 989.756620] DMIC16kHz: ASoC: error at __soc_pcm_hw_params on DMIC16kHz: -22 [ 989.756634] DMIC16kHz: ASoC: error at dpcm_fe_dai_hw_params on DMIC16kHz: -22 [ 989.757414] sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -22 [ 989.757427] sof-audio-pci-intel-cnl 0000:00:1f.3: HW params ipc failed for stream 1 [ 989.757432] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22 [ 989.757468] DMIC16kHz: ASoC: error at __soc_pcm_hw_params on DMIC16kHz: -22 [ 989.757483] DMIC16kHz: ASoC: error at dpcm_fe_dai_hw_params on DMIC16kHz: -22 [ 989.758235] sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -22 [ 989.758247] sof-audio-pci-intel-cnl 0000:00:1f.3: HW params ipc failed for stream 1 [ 989.758251] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22 [ 989.758275] DMIC16kHz: ASoC: error at __soc_pcm_hw_params on DMIC16kHz: -22 [ 989.758289] DMIC16kHz: ASoC: error at dpcm_fe_dai_hw_params on DMIC16kHz: -22 [ 989.760078] sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -22 [ 989.760089] sof-audio-pci-intel-cnl 0000:00:1f.3: HW params ipc failed for stream 1 [ 989.760092] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22 [ 989.760117] DMIC16kHz: ASoC: error at __soc_pcm_hw_params on DMIC16kHz: -22 [ 989.760130] DMIC16kHz: ASoC: error at dpcm_fe_dai_hw_params on DMIC16kHz: -22 [ 989.770762] sof-audio-pci-intel-cnl 0000:00:1f.3: sof_ipc3_keyword_dapm_event: Cannot find PCM for DETECT9.0 [ 989.770770] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: PRE_PMU: DETECT9.0 event failed: -22 [ 989.770777] sof-audio-pci-intel-cnl 0000:00:1f.3: sof_ipc3_keyword_dapm_event: Cannot find PCM for DETECT9.0 [ 989.770780] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: POST_PMU: DETECT9.0 event failed: -22 [ 989.770981] sof-audio-pci-intel-cnl 0000:00:1f.3: sof_ipc3_keyword_dapm_event: Cannot find PCM for DETECT9.0 [ 989.770987] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: PRE_PMD: DETECT9.0 event failed: -22 [ 989.770991] sof-audio-pci-intel-cnl 0000:00:1f.3: sof_ipc3_keyword_dapm_event: Cannot find PCM for DETECT9.0 [ 989.770994] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: POST_PMD: DETECT9.0 event failed: -22 Now the module loads the firmware and specifies the codec name (rt5682), which is necessary in case of custom kernel configuration. The module also produces a lot of errors that can be ignored. Speakers[edit | edit source] After reloading the kernel module (see sections above), it is necessary to find out which device is responsible for the speakers (sink): root #aplay -l**** List of PLAYBACK Hardware Devices **** card 0: sofrt5682 [sof-rt5682], device 0: Port1 (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofrt5682 [sof-rt5682], device 2: HDMI1 (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofrt5682 [sof-rt5682], device 3: HDMI2 (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofrt5682 [sof-rt5682], device 4: HDMI3 (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofrt5682 [sof-rt5682], device 5: Speakers (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 In this example, the speakers (sink) belong to card 0 as device 5, which can be represented as device plughw:0,5 Now it is necessary to probe the device: root #speaker-test --device plughw:0,5 --channels 2 This command should send white noise to both speakers alternately. If there is sound, then this device is really a speaker. If there is no sound, other devices in the list should be probed. If there is still no sound, plughw should be replaced with hw. Microphone[edit | edit source] After reloading the kernel module (see sections above), it is necessary to find out which device is responsible for the microphone (source): root #arecord -l**** List of CAPTURE Hardware Devices **** card 0: sofrt5682 [sof-rt5682], device 0: Port1 (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofrt5682 [sof-rt5682], device 1: DMIC (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofrt5682 [sof-rt5682], device 8: DMIC16kHz (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 In this example, the microphone (source) belong to card 0 as device 1, which can be represented as device plughw:0,1 To probe the micrphone, the following command should be used: root #arecord --device plughw:0,1 --format S16_LE test-sound.wav The command will record the sound from the microphone to the file, so it is necessary to speak loudly for the test. CTRL + C is required to stop recording. To hear the record the following command should be used (the device is the speaker (sink) that was found in the section above): root #aplay --device plughw:0,5 --format S16_LE test-sound.wav If there is no sound, other microphone devices in the list should be probed. If there is still no sound, plughw should be replaced with hw. PipeWire configuration[edit | edit source] Create the following configuration file (replace plughw:0,5 and plughw:0,1 with the devices found above): FILE /etc/pipewire/pipewire.conf.d/alsa.conf context.objects = [ { factory = adapter args = { factory.name = api.alsa.pcm.sink node.name = &quot;alsa-sink&quot; node.description = &quot;PCM Sink&quot; media.class = &quot;Audio/Sink&quot; api.alsa.path = &quot;plughw:0,5&quot; } } { factory = adapter args = { factory.name = api.alsa.pcm.source node.name = &quot;alsa-source&quot; node.description = &quot;PCM Source&quot; media.class = &quot;Audio/Source&quot; api.alsa.path = &quot;plughw:0,1&quot; } } ] Install media-video/pipewire with the following USE flags: sound-server, pipewire-alsa, bluetooth (optional). Add the user to the following groups: audio, pipewire. Launch PipeWire as described here, or in the case of Gentoo Live Image, simply re-login. After all of this, the sound should work. NotePipeWire will handle the 3.5mm jack and Bluetooth without further customization (at least for the Lenovo IdeaPad Flex 5 13IML05 Chromebook). References[edit | edit source] ↑ https://wiki.gentoo.org/wiki/Lenovo_IdeaPad_Flex_5_13IML05_Chromebook#Configuration ↑ https://forums.gentoo.org/viewtopic-p-8812339.html'
Parsed HTML source of the new revision (new_html)
'<div class="mw-parser-output"><p>This article describes a way to configure sound for Chromebooks that do not have a valid ALSA UCM profile. There are at least two such devices. <sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup> <sup id="cite_ref-2" class="reference"><a href="#cite_note-2">&#91;2&#93;</a></sup> </p> <div id="toc" class="toc" role="navigation" aria-labelledby="mw-toc-heading"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="en" dir="ltr"><h2 id="mw-toc-heading">Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div> <ul> <li class="toclevel-1 tocsection-1"><a href="#Identification"><span class="tocnumber">1</span> <span class="toctext">Identification</span></a> <ul> <li class="toclevel-2 tocsection-2"><a href="#Kernel_module"><span class="tocnumber">1.1</span> <span class="toctext">Kernel module</span></a></li> <li class="toclevel-2 tocsection-3"><a href="#Sound_Open_Firmware"><span class="tocnumber">1.2</span> <span class="toctext">Sound Open Firmware</span></a></li> <li class="toclevel-2 tocsection-4"><a href="#Speakers"><span class="tocnumber">1.3</span> <span class="toctext">Speakers</span></a></li> <li class="toclevel-2 tocsection-5"><a href="#Microphone"><span class="tocnumber">1.4</span> <span class="toctext">Microphone</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-6"><a href="#PipeWire_configuration"><span class="tocnumber">2</span> <span class="toctext">PipeWire configuration</span></a></li> <li class="toclevel-1 tocsection-7"><a href="#References"><span class="tocnumber">3</span> <span class="toctext">References</span></a></li> </ul> </div> <h2><span class="mw-headline" id="Identification">Identification</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Chromebook/Sound_configuration&amp;veaction=edit&amp;section=1" class="mw-editsection-visualeditor" title="Edit section: Identification">edit</a><span class="mw-editsection-divider"> | </span><a href="/index.php?title=Chromebook/Sound_configuration&amp;action=edit&amp;section=1" title="Edit section: Identification">edit source</a><span class="mw-editsection-bracket">]</span></span></h2> <h3><span class="mw-headline" id="Kernel_module">Kernel module</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Chromebook/Sound_configuration&amp;veaction=edit&amp;section=2" class="mw-editsection-visualeditor" title="Edit section: Kernel module">edit</a><span class="mw-editsection-divider"> | </span><a href="/index.php?title=Chromebook/Sound_configuration&amp;action=edit&amp;section=2" title="Edit section: Kernel module">edit source</a><span class="mw-editsection-bracket">]</span></span></h3> <p>On a fresh system (or Gentoo Live Image), the module registers an attempt to load the firmware for the sound card. The log of this process looks similar to this: </p> <div class="cmd-box"><div><code style="color: #ef2929; font-weight: bold;">root <span style="color:royalblue;">#</span></code><span class="tripleclick-separator"></span><code>dmesg</code></div><span class="mw-collapsible mw-collapsed"><pre>[ 16.199710] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100 [ 16.199933] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100 [ 16.200005] sof-audio-pci-intel-cnl 0000:00:1f.3: bound 0000:00:02.0 (ops __SCT__tp_func_intel_frontbuffer_flush [i915]) [ 16.206761] sof-audio-pci-intel-cnl 0000:00:1f.3: use msi interrupt mode [ 16.245910] sof-audio-pci-intel-cnl 0000:00:1f.3: NHLT table not found [ 16.245960] sof-audio-pci-intel-cnl 0000:00:1f.3: hda codecs found, mask 4 [ 16.245971] Loading firmware: intel/sof/community/sof-cml.ri [ 16.246288] sof-audio-pci-intel-cnl 0000:00:1f.3: Direct firmware load for intel/sof/community/sof-cml.ri failed with error -2 [ 16.246292] sof-audio-pci-intel-cnl 0000:00:1f.3: error: sof firmware file is missing, you might need to [ 16.246294] sof-audio-pci-intel-cnl 0000:00:1f.3: download it from https://github.com/thesofproject/sof-bin/ [ 16.246295] sof-audio-pci-intel-cnl 0000:00:1f.3: error: failed to load DSP firmware -2 [ 16.246566] sof-audio-pci-intel-cnl 0000:00:1f.3: error: sof_probe_work failed err: -2 </pre></span></div> <p>In this example, the module introduces itself as <b>sof-audio-pci-intel-cnl</b>. To find the actual name, it is necessary to map this name to the names of the currently loaded modules, which can be found, for example, with this command: </p> <div class="cmd-box"><div><code style="color: #ef2929; font-weight: bold;">root <span style="color:royalblue;">#</span></code><span class="tripleclick-separator"></span><code>lspci -k</code></div><pre>00:1f.3 Multimedia audio controller: Intel Corporation Comet Lake PCH-LP cAVS DeviceName: Multimedia audio controller Subsystem: Intel Corporation Comet Lake PCH-LP cAVS Kernel driver in use: sof-audio-pci-intel-cnl Kernel modules: snd_hda_intel, snd_soc_skl, snd_sof_pci_intel_cnl </pre></div> <p>Obviously, the real name of the module is <b>snd_sof_pci_intel_cnl</b>. </p><p>This module cannot load the sound card without the firmware. This can be confirmed with the following command: </p> <div class="cmd-box"><div><code style="color: #ef2929; font-weight: bold;">root <span style="color:royalblue;">#</span></code><span class="tripleclick-separator"></span><code>aplay -l</code></div><pre>aplay: device_list:277: no soundcards found... </pre></div> <h3><span class="mw-headline" id="Sound_Open_Firmware">Sound Open Firmware</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Chromebook/Sound_configuration&amp;veaction=edit&amp;section=3" class="mw-editsection-visualeditor" title="Edit section: Sound Open Firmware">edit</a><span class="mw-editsection-divider"> | </span><a href="/index.php?title=Chromebook/Sound_configuration&amp;action=edit&amp;section=3" title="Edit section: Sound Open Firmware">edit source</a><span class="mw-editsection-bracket">]</span></span></h3> <p>The module found above requires the following firmware: </p> <div class="cmd-box"><div><code style="color: #ef2929; font-weight: bold;">root <span style="color:royalblue;">#</span></code><span class="tripleclick-separator"></span><code>emerge --ask sys-firmware/sof-firmware</code></div></div> <p>After installing the firmware, the kernel module (which was found above) must be reloaded or the system must be rebooted (which is not possible in the case of Live Image). To reload the module, the following commands should be executed: </p> <div class="cmd-box"><div><code style="color: #ef2929; font-weight: bold;">root <span style="color:royalblue;">#</span></code><span class="tripleclick-separator"></span><code>rmmod snd_sof_pci_intel_cnl</code></div><div><code style="color: #ef2929; font-weight: bold;">root <span style="color:royalblue;">#</span></code><span class="tripleclick-separator"></span><code>modprobe snd_sof_pci_intel_cnl</code></div></div> <p>After the module reloads, it will reintroduce itself: </p> <div class="cmd-box"><div><code style="color: #ef2929; font-weight: bold;">root <span style="color:royalblue;">#</span></code><span class="tripleclick-separator"></span><code>dmesg</code></div><span class="mw-collapsible mw-collapsed"><pre>[ 989.351858] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100 [ 989.352038] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100 [ 989.352132] sof-audio-pci-intel-cnl 0000:00:1f.3: bound 0000:00:02.0 (ops __SCT__tp_func_intel_frontbuffer_flush [i915]) [ 989.358608] sof-audio-pci-intel-cnl 0000:00:1f.3: use msi interrupt mode [ 989.369584] sof-audio-pci-intel-cnl 0000:00:1f.3: NHLT table not found [ 989.369632] sof-audio-pci-intel-cnl 0000:00:1f.3: hda codecs found, mask 4 [ 989.369648] Loading firmware: intel/sof/community/sof-cml.ri [ 989.369810] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware info: version 2:2:0-57864 [ 989.369812] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 [ 989.369816] sof-audio-pci-intel-cnl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30 [ 989.502724] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware info: version 2:2:0-57864 [ 989.502733] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 [ 989.522991] Loading firmware: intel/sof-tplg/sof-cml-rt5682-max98357a.tplg [ 989.523020] sof-audio-pci-intel-cnl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:0 [ 989.523169] sof_rt5682 sof_rt5682: ASoC: Parent card not yet available, widget card binding deferred [ 989.604307] input: sof-rt5682 Headset Jack as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input18 [ 989.604530] input: sof-rt5682 HDMI/DP,pcm=2 as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input19 [ 989.604686] input: sof-rt5682 HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input20 [ 989.604835] input: sof-rt5682 HDMI/DP,pcm=4 as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input21 [ 989.756580] sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -22 [ 989.756592] sof-audio-pci-intel-cnl 0000:00:1f.3: HW params ipc failed for stream 1 [ 989.756597] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22 [ 989.756620] DMIC16kHz: ASoC: error at __soc_pcm_hw_params on DMIC16kHz: -22 [ 989.756634] DMIC16kHz: ASoC: error at dpcm_fe_dai_hw_params on DMIC16kHz: -22 [ 989.757414] sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -22 [ 989.757427] sof-audio-pci-intel-cnl 0000:00:1f.3: HW params ipc failed for stream 1 [ 989.757432] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22 [ 989.757468] DMIC16kHz: ASoC: error at __soc_pcm_hw_params on DMIC16kHz: -22 [ 989.757483] DMIC16kHz: ASoC: error at dpcm_fe_dai_hw_params on DMIC16kHz: -22 [ 989.758235] sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -22 [ 989.758247] sof-audio-pci-intel-cnl 0000:00:1f.3: HW params ipc failed for stream 1 [ 989.758251] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22 [ 989.758275] DMIC16kHz: ASoC: error at __soc_pcm_hw_params on DMIC16kHz: -22 [ 989.758289] DMIC16kHz: ASoC: error at dpcm_fe_dai_hw_params on DMIC16kHz: -22 [ 989.760078] sof-audio-pci-intel-cnl 0000:00:1f.3: ipc tx error for 0x60010000 (msg/reply size: 108/20): -22 [ 989.760089] sof-audio-pci-intel-cnl 0000:00:1f.3: HW params ipc failed for stream 1 [ 989.760092] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22 [ 989.760117] DMIC16kHz: ASoC: error at __soc_pcm_hw_params on DMIC16kHz: -22 [ 989.760130] DMIC16kHz: ASoC: error at dpcm_fe_dai_hw_params on DMIC16kHz: -22 [ 989.770762] sof-audio-pci-intel-cnl 0000:00:1f.3: sof_ipc3_keyword_dapm_event: Cannot find PCM for DETECT9.0 [ 989.770770] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: PRE_PMU: DETECT9.0 event failed: -22 [ 989.770777] sof-audio-pci-intel-cnl 0000:00:1f.3: sof_ipc3_keyword_dapm_event: Cannot find PCM for DETECT9.0 [ 989.770780] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: POST_PMU: DETECT9.0 event failed: -22 [ 989.770981] sof-audio-pci-intel-cnl 0000:00:1f.3: sof_ipc3_keyword_dapm_event: Cannot find PCM for DETECT9.0 [ 989.770987] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: PRE_PMD: DETECT9.0 event failed: -22 [ 989.770991] sof-audio-pci-intel-cnl 0000:00:1f.3: sof_ipc3_keyword_dapm_event: Cannot find PCM for DETECT9.0 [ 989.770994] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: POST_PMD: DETECT9.0 event failed: -22 </pre></span></div> <p>Now the module loads the firmware and specifies the codec name (<b>rt5682</b>), which is necessary in case of custom kernel configuration. The module also produces a lot of errors that can be ignored. </p> <h3><span class="mw-headline" id="Speakers">Speakers</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Chromebook/Sound_configuration&amp;veaction=edit&amp;section=4" class="mw-editsection-visualeditor" title="Edit section: Speakers">edit</a><span class="mw-editsection-divider"> | </span><a href="/index.php?title=Chromebook/Sound_configuration&amp;action=edit&amp;section=4" title="Edit section: Speakers">edit source</a><span class="mw-editsection-bracket">]</span></span></h3> <p>After reloading the kernel module (see sections above), it is necessary to find out which device is responsible for the speakers (sink): </p> <div class="cmd-box"><div><code style="color: #ef2929; font-weight: bold;">root <span style="color:royalblue;">#</span></code><span class="tripleclick-separator"></span><code>aplay -l</code></div><span class="mw-collapsible mw-collapsed"><pre>**** List of PLAYBACK Hardware Devices **** card 0: sofrt5682 [sof-rt5682], device 0: Port1 (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofrt5682 [sof-rt5682], device 2: HDMI1 (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofrt5682 [sof-rt5682], device 3: HDMI2 (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofrt5682 [sof-rt5682], device 4: HDMI3 (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofrt5682 [sof-rt5682], device 5: Speakers (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 </pre></span></div> <p>In this example, the speakers (sink) belong to <b>card 0</b> as device <b>5</b>, which can be represented as device <b>plughw:0,5</b> </p><p>Now it is necessary to probe the device: </p> <div class="cmd-box"><div><code style="color: #ef2929; font-weight: bold;">root <span style="color:royalblue;">#</span></code><span class="tripleclick-separator"></span><code>speaker-test --device plughw:0,5 --channels 2</code></div></div> <p>This command should send white noise to both speakers alternately. If there is sound, then this device is really a speaker. If there is no sound, other devices in the list should be probed. If there is still no sound, <b>plughw</b> should be replaced with <b>hw</b>. </p> <h3><span class="mw-headline" id="Microphone">Microphone</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Chromebook/Sound_configuration&amp;veaction=edit&amp;section=5" class="mw-editsection-visualeditor" title="Edit section: Microphone">edit</a><span class="mw-editsection-divider"> | </span><a href="/index.php?title=Chromebook/Sound_configuration&amp;action=edit&amp;section=5" title="Edit section: Microphone">edit source</a><span class="mw-editsection-bracket">]</span></span></h3> <p>After reloading the kernel module (see sections above), it is necessary to find out which device is responsible for the microphone (source): </p> <div class="cmd-box"><div><code style="color: #ef2929; font-weight: bold;">root <span style="color:royalblue;">#</span></code><span class="tripleclick-separator"></span><code>arecord -l</code></div><span class="mw-collapsible mw-collapsed"><pre>**** List of CAPTURE Hardware Devices **** card 0: sofrt5682 [sof-rt5682], device 0: Port1 (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofrt5682 [sof-rt5682], device 1: DMIC (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofrt5682 [sof-rt5682], device 8: DMIC16kHz (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 </pre></span></div> <p>In this example, the microphone (source) belong to <b>card 0</b> as device <b>1</b>, which can be represented as device <b>plughw:0,1</b> </p><p>To probe the micrphone, the following command should be used: </p> <div class="cmd-box"><div><code style="color: #ef2929; font-weight: bold;">root <span style="color:royalblue;">#</span></code><span class="tripleclick-separator"></span><code>arecord --device plughw:0,1 --format S16_LE test-sound.wav</code></div></div> <p>The command will record the sound from the microphone to the file, so it is necessary to speak loudly for the test. <kbd style="color: black; font-size: small; border: 0.2em solid; border-color: #DDD #BBB #BBB #DDD; padding: 0 0.4em; background: #EEE; white-space: nowrap;">CTRL</kbd> + <kbd style="color: black; font-size: small; border: 0.2em solid; border-color: #DDD #BBB #BBB #DDD; padding: 0 0.4em; background: #EEE; white-space: nowrap;">C</kbd> is required to stop recording. </p><p>To hear the record the following command should be used (the device is the speaker (sink) that was found in the section above): </p> <div class="cmd-box"><div><code style="color: #ef2929; font-weight: bold;">root <span style="color:royalblue;">#</span></code><span class="tripleclick-separator"></span><code>aplay --device plughw:0,5 --format S16_LE test-sound.wav</code></div></div> <p>If there is no sound, other microphone devices in the list should be probed. If there is still no sound, <b>plughw</b> should be replaced with <b>hw</b>. </p> <h2><span class="mw-headline" id="PipeWire_configuration">PipeWire configuration</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Chromebook/Sound_configuration&amp;veaction=edit&amp;section=6" class="mw-editsection-visualeditor" title="Edit section: PipeWire configuration">edit</a><span class="mw-editsection-divider"> | </span><a href="/index.php?title=Chromebook/Sound_configuration&amp;action=edit&amp;section=6" title="Edit section: PipeWire configuration">edit source</a><span class="mw-editsection-bracket">]</span></span></h2> <p>Create the following configuration file (replace <b>plughw:0,5</b> and <b>plughw:0,1</b> with the devices found above): </p> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/etc/pipewire/pipewire.conf.d/alsa.conf</code></strong><strong></strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>context.objects = [ { factory = adapter args = { factory.name = api.alsa.pcm.sink node.name = &quot;alsa-sink&quot; node.description = &quot;PCM Sink&quot; media.class = &quot;Audio/Sink&quot; api.alsa.path = &quot;plughw:0,5&quot; } } { factory = adapter args = { factory.name = api.alsa.pcm.source node.name = &quot;alsa-source&quot; node.description = &quot;PCM Source&quot; media.class = &quot;Audio/Source&quot; api.alsa.path = &quot;plughw:0,1&quot; } } ] </pre></div> <p>Install <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the media-video/pipewire package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/media-video/pipewire"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">media-video/pipewire</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70% !important;" class="fa fa-hdd-o fa-fw"></span></span> with the following USE flags: <b>sound-server</b>, <b>pipewire-alsa</b>, <b>bluetooth</b> (optional). </p><p>Add the user to the following groups: <b>audio</b>, <b>pipewire</b>. </p><p>Launch PipeWire as described <a href="/wiki/PipeWire#Sound_Server_Configuration" title="PipeWire">here</a>, or in the case of Gentoo Live Image, simply re-login. </p><p>After all of this, the sound should work. </p> <div class="alert alert-info gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-sticky-note-o fa-rotate-180"></i> Note</strong><br />PipeWire will handle the 3.5mm jack and Bluetooth without further customization (at least for the <a href="/wiki/Lenovo_IdeaPad_Flex_5_13IML05_Chromebook" title="Lenovo IdeaPad Flex 5 13IML05 Chromebook">Lenovo IdeaPad Flex 5 13IML05 Chromebook</a>).</div> <h2><span class="mw-headline" id="References">References</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Chromebook/Sound_configuration&amp;veaction=edit&amp;section=7" class="mw-editsection-visualeditor" title="Edit section: References">edit</a><span class="mw-editsection-divider"> | </span><a href="/index.php?title=Chromebook/Sound_configuration&amp;action=edit&amp;section=7" title="Edit section: References">edit source</a><span class="mw-editsection-bracket">]</span></span></h2> <div class="reflist" style="list-style-type: decimal;"> <div class="mw-references-wrap"><ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external free" href="https://wiki.gentoo.org/wiki/Lenovo_IdeaPad_Flex_5_13IML05_Chromebook#Configuration">https://wiki.gentoo.org/wiki/Lenovo_IdeaPad_Flex_5_13IML05_Chromebook#Configuration</a></span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external free" href="https://forums.gentoo.org/viewtopic-p-8812339.html">https://forums.gentoo.org/viewtopic-p-8812339.html</a></span> </li> </ol></div></div> '
Unix timestamp of change (timestamp)
1706647269