thesofproject / sof-bin

Firmware and topology binaries
Other
152 stars 41 forks source link

Missing audio driver on Acer Swift laptop (Intel Meteor Lake processor). #173

Closed jerkat closed 1 month ago

jerkat commented 1 month ago

Hi there. I was advised on the Linux Mint Forum to post my issue here. Since the installation of Linux Mint 22 on my laptop, I suffer from Dummy Output issue. The internal speakers and microphone don't work; no sound via HDMI also. I can get sound via USB with an external sound card. As this is a relatively new hardware, I hoped that maybe upgrading the kernel can solve the problem, but it wasn't the case so far. Please see below some basic info:

System:
  Kernel: 6.8.0-45-generic arch: x86_64 bits: 64 compiler: gcc v: 13.2.0 clocksource: tsc
  Desktop: Cinnamon v: 6.2.9 tk: GTK v: 3.24.41 wm: Muffin v: 6.2.0 vt: 7 dm: LightDM v: 1.30.0
    Distro: Linux Mint 22 Wilma base: Ubuntu 24.04 noble
Machine:
  Type: Laptop System: Acer product: Swift SFG14-72 v: V1.04 serial: <superuser required>
  Mobo: MTL model: Coral_MTH v: V1.04 serial: <superuser required> part-nu: 0000000000000000
    uuid: <superuser required> UEFI: Insyde v: 1.04 date: 02/02/2024
Battery:
  ID-1: BAT1 charge: 54.4 Wh (82.8%) condition: 65.7/65.2 Wh (100.8%) volts: 12.6 min: 11.7
    model: COSMX KT0030B003 AP22ABN type: Li-ion serial: <filter> status: discharging
CPU:
  Info: 16-core (6-mt/10-st) model: Intel Core Ultra 7 155H bits: 64 type: MST AMCP smt: enabled
    arch: Meteor Lake rev: 4 cache: L1: 1.6 MiB L2: 18 MiB L3: 24 MiB
  Speed (MHz): avg: 925 high: 3800 min/max: 400/4500:4800:3800:2500 cores: 1: 1734 2: 3800 3: 400
    4: 1640 5: 400 6: 1744 7: 400 8: 400 9: 1893 10: 400 11: 2000 12: 400 13: 977 14: 965 15: 400
    16: 400 17: 400 18: 400 19: 400 20: 400 21: 400 22: 400 bogomips: 131788
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
  Device-1: Intel Meteor Lake-P [Intel Arc Graphics] vendor: Acer Incorporated ALI driver: i915
    v: kernel arch: Gen-13 ports: active: eDP-1 empty: DP-1, DP-2, DP-3, DP-4, HDMI-A-1
    bus-ID: 00:02.0 chip-ID: 8086:7d55 class-ID: 0300
  Device-2: Quanta ACER QHD User Facing driver: uvcvideo type: USB rev: 2.0 speed: 480 Mb/s
    lanes: 1 bus-ID: 3-6:3 chip-ID: 0408:4044 class-ID: fe01 serial: <filter>
  Display: x11 server: X.Org v: 21.1.11 with: Xwayland v: 23.2.6 driver: X: loaded: modesetting
    unloaded: fbdev,vesa dri: iris gpu: i915 display-ID: :0 screens: 1
  Screen-1: 0 s-res: 2880x1800 s-dpi: 96 s-size: 762x476mm (30.00x18.74") s-diag: 898mm (35.37")
  Monitor-1: eDP-1 model: Samsung 0x4181 res: 2880x1800 hz: 90 dpi: 242
    size: 302x189mm (11.89x7.44") diag: 356mm (14") modes: 2880x1800
  API: EGL v: 1.5 hw: drv: intel iris platforms: device: 0 drv: iris device: 1 drv: swrast
    surfaceless: drv: iris x11: drv: iris inactive: gbm,wayland
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa v: 24.0.9-0ubuntu0.1 glx-v: 1.4
    direct-render: yes renderer: Mesa Intel Arc Graphics (MTL) device-ID: 8086:7d55
Audio:
  Device-1: Intel Meteor Lake-P HD Audio vendor: Acer Incorporated ALI
    driver: sof-audio-pci-intel-mtl bus-ID: 00:1f.3 chip-ID: 8086:7e28 class-ID: 0401
  API: ALSA v: k6.8.0-45-generic status: kernel-api
  Server-1: PipeWire v: 1.0.5 status: active with: 1: pipewire-pulse status: active
    2: wireplumber status: active 3: pipewire-alsa type: plugin
Network:
  Device-1: Intel Meteor Lake PCH CNVi WiFi vendor: Rivet Networks driver: iwlwifi v: kernel
    bus-ID: 00:14.3 chip-ID: 8086:7e40 class-ID: 0280
  IF: wlp0s20f3 state: up mac: <filter>
Bluetooth:
  Device-1: Intel AX211 Bluetooth driver: btusb v: 0.8 type: USB rev: 2.0 speed: 12 Mb/s lanes: 1
    bus-ID: 3-10:5 chip-ID: 8087:0033 class-ID: e001
  Report: hciconfig ID: hci0 rfk-id: 2 state: down bt-service: enabled,running rfk-block:
    hardware: no software: yes address: <filter>
Drives:
  Local Storage: total: 1.84 TiB used: 36.28 GiB (1.9%)
  ID-1: /dev/nvme0n1 vendor: Crucial model: CT1000P3PSSD8 size: 931.51 GiB speed: 63.2 Gb/s
    lanes: 4 tech: SSD serial: <filter> fw-rev: P9CR413 temp: 27.9 C scheme: GPT
  ID-2: /dev/nvme1n1 vendor: SK Hynix model: HFS001TEJ9X110N size: 953.87 GiB speed: 63.2 Gb/s
    lanes: 4 tech: SSD serial: <filter> fw-rev: 51070C30 temp: 29.9 C scheme: GPT
Partition:
  ID-1: / size: 376.61 GiB used: 36.22 GiB (9.6%) fs: ext4 dev: /dev/nvme1n1p6
  ID-2: /boot/efi size: 256 MiB used: 63 MiB (24.6%) fs: vfat dev: /dev/nvme1n1p1
Swap:
  ID-1: swap-1 type: file size: 2 GiB used: 0 KiB (0.0%) priority: -2 file: /swapfile
USB:
  Hub-1: 1-0:1 info: hi-speed hub with single TT ports: 1 rev: 2.0 speed: 480 Mb/s lanes: 1
    chip-ID: 1d6b:0002 class-ID: 0900
  Hub-2: 2-0:1 info: super-speed hub ports: 4 rev: 3.1 speed: 20 Gb/s lanes: 2 chip-ID: 1d6b:0003
    class-ID: 0900
  Hub-3: 3-0:1 info: hi-speed hub with single TT ports: 12 rev: 2.0 speed: 480 Mb/s lanes: 1
    chip-ID: 1d6b:0002 class-ID: 0900
  Device-1: 3-1:2 info: Areson Corp 2.4G Receiver type: keyboard,mouse driver: hid-generic,usbhid
    interfaces: 2 rev: 1.1 speed: 12 Mb/s lanes: 1 power: 100mA chip-ID: 25a7:fa67 class-ID: 0301
  Device-2: 3-6:3 info: Quanta ACER QHD User Facing type: video driver: uvcvideo interfaces: 3
    rev: 2.0 speed: 480 Mb/s lanes: 1 power: 500mA chip-ID: 0408:4044 class-ID: fe01 serial: <filter>
  Device-3: 3-9:4 info: LighTuning ETU905A88-E type: <vendor specific> driver: N/A interfaces: 1
    rev: 2.0 speed: 12 Mb/s lanes: 1 power: 100mA chip-ID: 1c7a:0584 class-ID: ff00 serial: <filter>
  Device-4: 3-10:5 info: Intel AX211 Bluetooth type: bluetooth driver: btusb interfaces: 2
    rev: 2.0 speed: 12 Mb/s lanes: 1 power: 100mA chip-ID: 8087:0033 class-ID: e001
  Hub-4: 4-0:1 info: super-speed hub ports: 2 rev: 3.1 speed: 20 Gb/s lanes: 2 chip-ID: 1d6b:0003
    class-ID: 0900
Sensors:
  Src: /sys System Temperatures: cpu: 48.0 C mobo: N/A
  Fan Speeds (rpm): N/A
  Power: 12v: N/A 5v: 5 3.3v: N/A vbat: N/A
Repos:
  Packages: pm: dpkg pkgs: 2164
  No active apt repos in: /etc/apt/sources.list
  Active apt repos in: /etc/apt/sources.list.d/brave-browser-release.list
    1: deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https: //brave-browser-apt-release.s3.brave.com/ stable main
  Active apt repos in: /etc/apt/sources.list.d/official-package-repositories.list
    1: deb http: //packages.linuxmint.com wilma main upstream import backport
    2: deb http: //archive.ubuntu.com/ubuntu noble main restricted universe multiverse
    3: deb http: //archive.ubuntu.com/ubuntu noble-updates main restricted universe multiverse
    4: deb http: //archive.ubuntu.com/ubuntu noble-backports main restricted universe multiverse
    5: deb http: //security.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse
Info:
  Memory: total: 16 GiB note: est. available: 15.11 GiB used: 3.31 GiB (21.9%)
  Processes: 410 Power: uptime: 51m states: freeze,mem,disk suspend: s2idle wakeups: 0
    hibernate: platform Init: systemd v: 255 target: graphical (5) default: graphical
  Compilers: gcc: 13.2.0 Client: Unknown python3.12 client inxi: 3.3.34

`jerkat@jerkat-Swift:~$ aplay -l
aplay: device_list:277: no soundcards found...
jerkat@jerkat-Swift:~$ journalctl -k | grep -Ei "ALSA|HDA|sof[-]|HDMI|snd[_-]|sound|hda.codec|hda.intel"
Sep 19 18:26:34 jerkat-Swift kernel: snd_hda_intel 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
Sep 19 18:26:34 jerkat-Swift kernel: snd_hda_intel 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: enabling device (0000 -> 0002)
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
Sep 19 18:26:34 jerkat-Swift kernel: snd_hda_intel 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
Sep 19 18:26:34 jerkat-Swift kernel: snd_hda_intel 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: use msi interrupt mode
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: No SoundWire machine driver found
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: hda codecs found, mask 4
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: DMICs detected in NHLT tables: 4
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: SOF firmware and/or topology file not found.
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Supported default profiles
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: - ipc type 1 (Requested):
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3:  Firmware file: intel/sof-ipc4/mtl/sof-mtl.ri
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3:  Topology file: intel/sof-ace-tplg/sof-hda-generic-idisp-4ch.tplg
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Check if you have 'sof-firmware' package installed.
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Optionally it can be manually downloaded from:
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3:    https://github.com/thesofproject/sof-bin/
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: error: sof_probe_work failed err: -2

Can you advise if this issue can be addressed in the nearest future, please? Many thanks.

marc-hb commented 1 month ago

Hi,

These firmware files are missing. You need to ask Linux Mint how they provide them.

Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: SOF firmware and/or topology file not found.

(Requested):
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3:  Firmware file: intel/sof-ipc4/mtl/sof-mtl.ri
Sep 19 18:26:34 jerkat-Swift kernel: sof-audio-pci-intel-mtl 0000:00:1f.3:  Topology file: intel/sof-ace-tplg/sof-hda-generic-idisp-4ch.tplg
dtl131 commented 1 month ago

@marc-hb: Ubuntu24/Mint22 has the intel/sof-ipc4/mtl/sof-mtl.ri file. I don't think that's an issue. To me, it looks like the problem is the file intel/sof-ace-tplg/sof-hda-generic-idisp-4ch.tplg is missing, but that file does not even exist in this repo. There is a sof-hda-generic-idisp-4ch.tplg file in the "regular" (cAVS, I guess?) sof-tplg folder, but not the "ace" folder. I'm guessing they are not interchangeable. If they are, a symlink would probably solve it.

plbossart commented 1 month ago

It's a duplicate of https://github.com/thesofproject/linux/issues/4923, you need a newer kernel.

marc-hb commented 1 month ago

Ubuntu24/Mint22 has the intel/sof-ipc4/mtl/sof-mtl.ri file. I don't think that's an issue.

Apologies @dtl131 , I read too fast and missed the (somewhat subtle) "and/or ... is missing".

@plbossart is there an easy way to tell which particular file is missing? Maybe by increasing some log level until request_firmware() prints something useful?

Using "ls" is error-prone because of "community/", "updates/" etc.

marc-hb commented 1 month ago

It's a duplicate of https://github.com/thesofproject/linux/issues/4923, you need a newer kernel.

Could you please summarize in a nutshell? Which kernel version? I tried to skim that issue but it's long and convoluted and I got lost. For instance, is there some specific revert that is required?

plbossart commented 1 month ago

kernel version 6.10.11+ is required for that device, along with the 'latest' UCM update.

I know it's difficult for non-developers but it's mostly downstream problems, we can't handle and solve every single case with distro N or M.

dtl131 commented 1 month ago

Trying to create a "simple" guide to fix this on Ubuntu 24.04 (and derivatives)

  1. Get >= 6.10.11 kernel

  2. NOTE: This step is only a temporary fix until v2.11.x is available in the main sof-bin repo. Once it is, follow normal procedure to upgrade sof binaries, given on that page. Get firmware topology (Ubuntu already has firmware file):

    cd ~/ && wget https://github.com/user-attachments/files/16464721/sof-mtl-rt712-l0-2ch-4ch.zip
    unzip sof-mtl-rt712-l0-2ch-4ch.zip && rm sof-mtl-rt712-l0-2ch-4ch.zip
    sudo chown root:root sof-mtl-rt712-l0-* && sudo mv sof-mtl-rt712-l0-* /lib/firmware/intel/sof-ace-tplg/
  3. Update UCM

    curl -L -o alsa-ucm-conf.tar.gz  https://github.com/shumingfan/alsa-ucm-conf/archive/refs/heads/add-rt712va.tar.gz
    sudo tar xvzf alsa-ucm-conf.tar.gz -C /usr/share/alsa --strip-components=1 --wildcards "*/ucm" "*/ucm2"
  4. Fix UCM (because of Syntax 6/7 change)

    
    cd ~/ && wget https://github.com/user-attachments/files/17117393/sof-soundwire.conf.zip
    unzip sof-soundwire.conf.zip && rm sof-soundwire.conf.zip
    sudo chown root:root sof-soundwire.conf && sudo mv sof-soundwire.conf /usr/share/alsa/ucm2/sof-soundwire/


[sof-soundwire.conf.zip](https://github.com/user-attachments/files/17117393/sof-soundwire.conf.zip)
marc-hb commented 1 month ago

Get firmware topology (Ubuntu already has firmware file): https://github.com/user-attachments/files/16464721/sof-mtl-rt712-l0-2ch-4ch.zip

Never pick individual files unless the file you need is really, really not available yet. Always get a FULL, sof-bin.tgz from https://github.com/thesofproject/sof-bin/releases and install ALL its files instead.

BTW there is a new release coming very soon: https://github.com/thesofproject/sof-bin/pull/174

Trying to create a "simple" guide to fix this on Ubuntu 24.04 (and derivatives)

If you really need to pick a single file, then please make it clear that this is a short term workaround/hack.

dtl131 commented 1 month ago

Never pick individual files unless the file you need is really, really not available yet.

Okay. The 6.8 kernel was looking for intel/sof-ace-tplg/sof-hda-generic-idisp-4ch.tplg while the 6.10 kernel was looking for intel/sof-ace-tplg/sof-mtl-rt712-l0-4ch.tplg. Both of those are in the upcoming release.