Hi.
I recently installed Fedora 41 Workstation on my Lenovo Legion Pro 7. My previous Fedora 40 install also had broken audio, however, I was able to fix it with the following command:
sudo tee /etc/modprobe.d/snd-hda-intel.conf <<< "options snd_hda_intel power_save=0"
However, now, this is no longer working. Not only that, but I also discovered a weird thing. Running cat /sys/module/snd_hda_intel/parameters/power_save
gives me 10
, instead of 0
. Shouldn’t the power_save
parameter be a boolean value? Where does 10
come from? I’d expect this value to be either 0
or 1
.
I’m running kernel version 6.12.5-200.fc41.x86_64
.
Output of journalctl -k | grep -Ei "ALSA|HDA|sof[-]|HDMI|snd[_-]|sound|hda.codec|hda.intel"
:
dec 22 23:20:48 fedora kernel: [drm] DP-HDMI FRL PCON supported
dec 22 22:20:49 fedora kernel: snd_hda_intel 0000:01:00.1: Disabling MSI
dec 22 22:20:49 fedora kernel: snd_hda_intel 0000:01:00.1: Handle vga_switcheroo audio client
dec 22 22:20:49 fedora kernel: input: HDA NVidia HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:01.1/0000:01:00.1/sound/card0/input20
dec 22 22:20:49 fedora kernel: input: HDA NVidia HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:01.1/0000:01:00.1/sound/card0/input21
dec 22 22:20:49 fedora kernel: input: HDA NVidia HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:01.1/0000:01:00.1/sound/card0/input22
dec 22 22:20:49 fedora kernel: input: HDA NVidia HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:01.1/0000:01:00.1/sound/card0/input23
dec 22 22:20:49 fedora kernel: snd_hda_codec_realtek hdaudioC1D0: autoconfig for ALC287: line_outs=1 (0x17/0x0/0x0/0x0/0x0) type:speaker
dec 22 22:20:49 fedora kernel: snd_hda_codec_realtek hdaudioC1D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
dec 22 22:20:49 fedora kernel: snd_hda_codec_realtek hdaudioC1D0: hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
dec 22 22:20:49 fedora kernel: snd_hda_codec_realtek hdaudioC1D0: mono: mono_out=0x0
dec 22 22:20:49 fedora kernel: snd_hda_codec_realtek hdaudioC1D0: inputs:
dec 22 22:20:49 fedora kernel: snd_hda_codec_realtek hdaudioC1D0: Mic=0x19
dec 22 22:20:49 fedora kernel: snd_hda_codec_realtek hdaudioC1D0: Internal Mic=0x12
dec 22 22:20:49 fedora kernel: input: HD-Audio Generic Mic as /devices/pci0000:00/0000:00:08.1/0000:06:00.6/sound/card1/input24
dec 22 22:20:49 fedora kernel: input: HD-Audio Generic Headphone as /devices/pci0000:00/0000:00:08.1/0000:06:00.6/sound/card1/input25
Output of modprobe -D snd_hda_intel
:
insmod /lib/modules/6.12.5-200.fc41.x86_64/kernel/sound/soundcore.ko.xz
insmod /lib/modules/6.12.5-200.fc41.x86_64/kernel/sound/core/snd.ko.xz
insmod /lib/modules/6.12.5-200.fc41.x86_64/kernel/sound/core/snd-timer.ko.xz
install /sbin/modprobe --ignore-install snd-pcm && /sbin/modprobe snd-seq
insmod /lib/modules/6.12.5-200.fc41.x86_64/kernel/sound/core/snd-hwdep.ko.xz
insmod /lib/modules/6.12.5-200.fc41.x86_64/kernel/sound/hda/snd-hda-core.ko.xz
insmod /lib/modules/6.12.5-200.fc41.x86_64/kernel/sound/pci/hda/snd-hda-codec.ko.xz
insmod /lib/modules/6.12.5-200.fc41.x86_64/kernel/sound/hda/snd-intel-sdw-acpi.ko.xz
insmod /lib/modules/6.12.5-200.fc41.x86_64/kernel/sound/hda/snd-intel-dspcfg.ko.xz
insmod /lib/modules/6.12.5-200.fc41.x86_64/kernel/sound/pci/hda/snd-hda-intel.ko.xz power_save=0
I tried adding enable_msi=1
to /etc/modprobe.d/snd-hda-intel.conf
, but the journalctl
log still says Disabling MSI
, so it looks like the config file is ignored. Also, power_save_controller=N
doesn’t make it work either. Replacing _
with -
does not work either.
Edit: I managed to fix this issue, albeit it would be still nice to what’s going wrong. I reverted back to the 6.11.4-301.fc41.x86_64
kernel and noticed that the sound was working fine, and the journalctl log was different:
dec 23 00:04:10 fedora kernel: [drm] DP-HDMI FRL PCON supported
dec 22 23:04:12 fedora kernel: snd_hda_intel 0000:01:00.1: Handle vga_switcheroo audio client
dec 22 23:04:12 fedora kernel: input: HDA NVidia HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:01.1/0000:01:00.1/sound/card0/input19
dec 22 23:04:12 fedora kernel: input: HDA NVidia HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:01.1/0000:01:00.1/sound/card0/input20
dec 22 23:04:12 fedora kernel: input: HDA NVidia HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:01.1/0000:01:00.1/sound/card0/input21
dec 22 23:04:12 fedora kernel: input: HDA NVidia HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:01.1/0000:01:00.1/sound/card0/input22
dec 22 23:04:12 fedora kernel: snd_hda_codec_realtek hdaudioC1D0: bound i2c-TIAS2781:00 (ops tas2781_hda_comp_ops [snd_hda_scodec_tas2781_i2c])
dec 22 23:04:12 fedora kernel: snd_hda_codec_realtek hdaudioC1D0: autoconfig for ALC287: line_outs=1 (0x17/0x0/0x0/0x0/0x0) type:speaker
dec 22 23:04:12 fedora kernel: snd_hda_codec_realtek hdaudioC1D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
dec 22 23:04:12 fedora kernel: snd_hda_codec_realtek hdaudioC1D0: hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
dec 22 23:04:12 fedora kernel: snd_hda_codec_realtek hdaudioC1D0: mono: mono_out=0x0
dec 22 23:04:12 fedora kernel: snd_hda_codec_realtek hdaudioC1D0: inputs:
dec 22 23:04:12 fedora kernel: snd_hda_codec_realtek hdaudioC1D0: Mic=0x19
dec 22 23:04:12 fedora kernel: snd_hda_codec_realtek hdaudioC1D0: Internal Mic=0x12
dec 22 23:04:12 fedora kernel: input: HD-Audio Generic Mic as /devices/pci0000:00/0000:00:08.1/0000:06:00.6/sound/card1/input23
dec 22 23:04:12 fedora kernel: input: HD-Audio Generic Headphone as /devices/pci0000:00/0000:00:08.1/0000:06:00.6/sound/card1/input24
dec 22 23:04:14 fedora kernel: pci 0000:01:00.0: optimus capabilities: enabled, status dynamic power, hda bios codec supported
dec 22 23:04:15 fedora kernel: snd_hda_intel 0000:01:00.1: bound 0000:01:00.0 (ops nv50_audio_component_bind_ops [nouveau])
Looks like with the newer kernel, the snd_hda_codec_realtek hdaudioC1D0: bound i2c-TIAS2781:00 (ops tas2781_hda_comp_ops [snd_hda_scodec_tas2781_i2c])
line is missing.
I ended up adding the model=,17aa:38a8
parameter to /etc/modprobe.d/snd-hda-intel.conf
, which fixed the audio on the newer kernel. I got this idea from this comment.
Side notes:
- I got the model ID by running
cat /sys/class/sound/hwC1D0/subsystem_id
. - The
/sys/module/snd_hda_intel/parameters/power_save
value is still10
. I don’t know what that means nor why. /sys/module/snd_hda_intel/parameters/power_save_controller
is stillY
, even thoughpower_save=0
is set