All 4 speaksers malfunctioning | Lenovo Yoga 7 | Audio

Hi, i installed Fedora in my new yoga 7 pro, but only the bottom speaker seem to work. The audio card i see with aplay -l is ALC287. I already tried the solution suggested in English Community-Lenovo Community (yes i know these are for intel version but i tried). Has anyone any clue to make all 4 speakers work.

Welcome to :fedora:

The Lenovo Thinkpad Yoga 7 Pro has had a rough history with some of it’s audio configurations.

Please post your inxi -Fzxx here for us to see the hardware specs, also we’ll post some links to thread regarding the Yoga models. . .


https://forums.lenovo.com/t5/Ubuntu/Yoga-Slim-7-Carbon-14ACN6-Linux-Audio/m-p/5158856

Removed intel

Just to be sure, you might try confirming that those parameters were correctly parsed and applied by reading the corresponding files under /proc. I.e., do these two commands show that the parameters are in effect?

$ cat /sys/module/snd_hda_intel/parameters/model

and

$ cat /sys/module/snd_intel_dspcfg/parameters/dsp_driver

P.S. The Arch wiki suggests a slightly different options line – options snd-sof-intel-hda-common hda_model=alc287-yoga9-bass-spk-pin (Lenovo Yoga 9i 2022 (14AiPI7) - ArchWiki). Maybe try that variation?

Hello, the two cat commands return:
alc287-yoga9-bass-spk-pin,(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null)

and

1

I tried your second link but nothing changed.

Hi, the command returns:

System:
  Kernel: 6.9.5-200.fc40.x86_64 arch: x86_64 bits: 64 compiler: gcc
    v: 2.41-37.fc40
  Desktop: GNOME v: 46.2 tk: GTK v: 3.24.42 wm: gnome-shell dm: GDM
    Distro: Fedora Linux 40 (Workstation Edition)
Machine:
  Type: Laptop System: LENOVO product: 83E3 v: Yoga Pro 7 14AHP9
    serial: <superuser required> Chassis: type: 10 v: Yoga Pro 7 14AHP9
    serial: <superuser required>
  Mobo: LENOVO model: LNVNB161216 v: SDK0T76463 WIN
    serial: <superuser required> part-nu: LENOVO_MT_83E3_BU_idea_FM_Yoga Pro 7
    14AHP9 UEFI: LENOVO v: NCCN16WW date: 02/02/2024
Battery:
  ID-1: BAT0 charge: 58.5 Wh (79.5%) condition: 73.6/73.0 Wh (100.8%)
    volts: 16.8 min: 15.5 model: Sunwoda L22D4PF4 serial: <filter>
    status: not charging
CPU:
  Info: 8-core model: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics bits: 64
    type: MT MCP arch: Zen 4 rev: 2 cache: L1: 512 KiB L2: 8 MiB L3: 16 MiB
  Speed (MHz): avg: 1975 high: 3800 min/max: 1600/6680 boost: enabled cores:
    1: 1646 2: 1818 3: 1398 4: 3800 5: 1356 6: 1600 7: 1600 8: 1600 9: 3800
    10: 1600 11: 3800 12: 1600 13: 1397 14: 1397 15: 1600 16: 1600
    bogomips: 121377
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Graphics:
  Device-1: AMD Phoenix3 vendor: Lenovo driver: amdgpu v: kernel arch: RDNA-3
    pcie: speed: 16 GT/s lanes: 16 ports: active: eDP-1 empty: DP-1, DP-2,
    DP-3, DP-4, DP-5, DP-6, HDMI-A-1, Writeback-1 bus-ID: 62:00.0
    chip-ID: 1002:1900 temp: 38.0 C
  Device-2: Luxvisions Innotech Integrated RGB Camera driver: uvcvideo
    type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 bus-ID: 3-1:2 chip-ID: 30c9:00c2
  Display: wayland server: X.org v: 1.20.14 with: Xwayland v: 24.1.0
    compositor: gnome-shell driver: gpu: amdgpu display-ID: 0
  Monitor-1: eDP-1 model: InfoVision Optronics/Kunshan 0x05ab res: 2560x1600
    dpi: 208 diag: 368mm (14.5")
  API: OpenGL v: 4.6 vendor: amd mesa v: 24.1.2 glx-v: 1.4 es-v: 3.2
    direct-render: yes renderer: AMD Radeon Graphics (radeonsi gfx1103_r1 LLVM
    18.1.6 DRM 3.57 6.9.5-200.fc40.x86_64) device-ID: 1002:1900
    display-ID: :0.0
  API: EGL Message: EGL data requires eglinfo. Check --recommends.
Audio:
  Device-1: AMD Rembrandt Radeon High Definition Audio vendor: Lenovo
    driver: snd_hda_intel v: kernel pcie: speed: 16 GT/s lanes: 16
    bus-ID: 62:00.1 chip-ID: 1002:1640
  Device-2: AMD ACP/ACP3X/ACP6x Audio Coprocessor vendor: Lenovo
    driver: snd_pci_ps v: kernel pcie: speed: 16 GT/s lanes: 16 bus-ID: 62:00.5
    chip-ID: 1022:15e2
  Device-3: AMD Family 17h/19h HD Audio vendor: Lenovo driver: snd_hda_intel
    v: kernel pcie: speed: 16 GT/s lanes: 16 bus-ID: 62:00.6 chip-ID: 1022:15e3
  API: ALSA v: k6.9.5-200.fc40.x86_64 status: kernel-api
  Server-1: JACK v: 1.9.22 status: off
  Server-2: PipeWire v: 1.0.7 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
Network:
  Device-1: MEDIATEK MT7922 802.11ax PCI Express Wireless Network Adapter
    vendor: Lenovo driver: mt7921e v: kernel pcie: speed: 5 GT/s lanes: 1
    bus-ID: 01:00.0 chip-ID: 14c3:0616
  IF: wlp1s0 state: up mac: <filter>
Bluetooth:
  Device-1: Foxconn / Hon Hai Bluetooth 5.2 Adapter [MediaTek MT7922]
    driver: btusb v: 0.8 type: USB rev: 2.1 speed: 480 Mb/s lanes: 1
    bus-ID: 1-5:2 chip-ID: 0489:e0d8
  Report: btmgmt ID: hci0 rfk-id: 2 state: down bt-service: enabled,running
    rfk-block: hardware: no software: yes address: <filter> bt-v: 5.2 lmp-v: 11
Drives:
  Local Storage: total: 476.94 GiB used: 23.45 GiB (4.9%)
  ID-1: /dev/nvme0n1 vendor: Samsung model: MZVL2512HDJD-00BL2
    size: 476.94 GiB speed: 63.2 Gb/s lanes: 4 serial: <filter> temp: 37.9 C
Partition:
  ID-1: / size: 475.35 GiB used: 23.01 GiB (4.8%) fs: btrfs
    dev: /dev/nvme0n1p3
  ID-2: /boot size: 973.4 MiB used: 392.3 MiB (40.3%) fs: ext4
    dev: /dev/nvme0n1p2
  ID-3: /boot/efi size: 598.8 MiB used: 51 MiB (8.5%) fs: vfat
    dev: /dev/nvme0n1p1
  ID-4: /home size: 475.35 GiB used: 23.01 GiB (4.8%) fs: btrfs
    dev: /dev/nvme0n1p3
Swap:
  ID-1: swap-1 type: zram size: 8 GiB used: 0 KiB (0.0%) priority: 100
    dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 42.0 C mobo: 38.0 C gpu: amdgpu temp: 38.0 C
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 16 GiB note: est. available: 13.45 GiB used: 2.73 GiB (20.3%)
  Processes: 417 Power: uptime: 2m wakeups: 0 Init: systemd v: 255
    target: graphical (5) default: graphical
  Packages: Compilers: N/A Shell: Bash v: 5.2.26 running-in: gnome-terminal
    inxi: 3.3.34

It looks like there might be a patch in the pipeline:

https://lore.kernel.org/all/20240620152533.76712-1-pablocpascual@gmail.com/

Can you edit your post and paste it into </> preformatted text

2024-05-06_12-15-49_Preformatted_Text

We have other users with similar devices, wondering if it will help them ? it’s a Yoga 16ARP8

I’m just searching kernel.org (i.e., something like site:kernel.org 14AHP9) and looking for recent patches that might be related to specific hardware. I don’t see anything “recent” matching 16ARP8 though. There are patches from Feb. of this year, but it seems likely those would be in the current stable kernel by now if they worked. I didn’t really dig into the threads. If you have a better idea of what you are looking for, you might want try searching kernel.org and skimming the posts that match there to see if you can gain any insights about the current state of the situation. :slightly_smiling_face:

2 Likes

The Arch wiki states that having the right firmware installed/available is also an important part of the equation for getting some sound cards to work. Do you have the alsa-sof-firmware package installed?

I edited that to add the preformatted text tags (available with the </> button on the toolbar of the text entry screen) so the on-screen formatting was restored and the data is much more readable.

Please post text that you copy & paste using that method.

2 Likes

Ok so you think i have to wait and the issue will be fixed?

About the second question: yes, i have alsa-sof-firmware installed.

I’m not sure. The patch only shows one line being added to patch_realtek.c.

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index aa76d1c88589..7663e715890d 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -10527,6 +10527,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
 	SND_PCI_QUIRK(0x17aa, 0x3882, "Lenovo Yoga Pro 7 14APH8", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
 	SND_PCI_QUIRK(0x17aa, 0x3884, "Y780 YG DUAL", ALC287_FIXUP_TAS2781_I2C),
 	SND_PCI_QUIRK(0x17aa, 0x3886, "Y780 VECO DUAL", ALC287_FIXUP_TAS2781_I2C),
+	SND_PCI_QUIRK(0x17aa, 0x3891, "Lenovo Yoga Pro 7 14AHP9", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
 	SND_PCI_QUIRK(0x17aa, 0x38a7, "Y780P AMD YG dual", ALC287_FIXUP_TAS2781_I2C),
 	SND_PCI_QUIRK(0x17aa, 0x38a8, "Y780P AMD VECO dual", ALC287_FIXUP_TAS2781_I2C),
 	SND_PCI_QUIRK(0x17aa, 0x38a9, "Thinkbook 16P", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),

That added line (the one that starts with +) appears to just do what you are trying to do manually – apply the yoga9-bass-spk-pin PCI “QUIRK” mode if hardware 0x17aa 0x3891 (Lenovo Yoga Pro 7 14AHP9) is detected. The implications would be a) it is very likely that the yoga9-bass-spk-pin mode does need to be set for your hardware and b) you would no longer need to apply that setting manually once that upstream patch reaches the stable kernels that end users run.

The patch doesn’t appear to be doing anything with regard to the “dsp_driver” setting though. Have you tried setting yoga9-bass-spk-pin but leaving dsp_driver at its default value?

If that still doesn’t work, dsp_driver=3 (SOF) looks like an interesting option: SOF Linux Driver Architecture — SOF Project 2.9.0 documentation. I have no idea if it would work though.

1 Like

Update

Ok guys, today i tried again modifying the settings of the snd.conf with the settings of Lenovo’s post and forum’s ones and after selecting the sound card with F6 in alsamixer, two new settings showed up: one about bass speakers, and one about front speakers. I can control the levels and in fact they turn on and off the upper pair of speakers and the bottom one. Incredible. Then i tried removing the sda.conf to see if the alsamixer options effectively disappear. To my surprise, they were still there! Can it be something related to Fedora updates i did this afternoon?

1 Like

Wow, you have some interesting findings. Could ity be possible to provide more details on the process, The Yoga’s are very problematic with that Audio configuration.

  • modifying the settings of the snd.conf with the settings of Lenovo’s post and forum’s ones
  • after selecting the sound card with F6 in alsamixer, two new settings showed up
  • one about bass speakers, and one about front speakers
  • Then i tried removing the sda.conf to see if the alsamixer options effectively disappear. To my surprise, they were still there!

It’ll help many Bothans :fedora: