thesofproject / linux

Linux kernel source tree
Other
91 stars 133 forks source link

Opensuse 15.6 HP 14b-nb0031wm w/ MrChromeBox UEFI Tiger Lake-LP Smart Sound Technology Audio Controller no output #5174

Open SeonMu108 opened 2 months ago

SeonMu108 commented 2 months ago

I've been having problems with the audio driver on Opensuse 15.6.

here is the text of the bugzilla threat along with the two alsa-info.sh attachments:

I tried both google and brave search and have yet to come across an answer that works on my machine, a newly installed 15.6 leap instance.

Here is the output from inxi -Aa

Audio: Device-1: Intel Tiger Lake-LP Smart Sound Audio

driver: sof-audio-pci-intel-tgl

alternate: snd_hda_intel,snd_sof_pci_intel_tgl bus-ID: 00:1f.3

chip-ID: 8086:a0c8 class-ID: 0401

API: ALSA v: k6.4.0-150600.21-default status: kernel-api with: aoss

type: oss-emulator tools: alsactl,alsamixer,amixer

Server-1: PipeWire v: 1.0.5 status: off with: wireplumber status: off

tools: pw-cat,pw-cli,wpctl

Server-2: PulseAudio v: 17.0 status: active with: pulseaudio-alsa

type: plugin tools: pacat,pactl,pavucontrol

dmesg output:

here's the output:

[ 142.261901] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100

[ 142.262162] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100

[ 142.262285] sof-audio-pci-intel-tgl 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])

[ 142.270908] sof-audio-pci-intel-tgl 0000:00:1f.3: use msi interrupt mode

[ 142.285212] sof-audio-pci-intel-tgl 0000:00:1f.3: NHLT table not found

[ 142.285238] sof-audio-pci-intel-tgl 0000:00:1f.3: hda codecs found, mask 4

[ 142.285754] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864

[ 142.285761] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0

[ 142.285768] sof-audio-pci-intel-tgl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30

[ 142.403661] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864

[ 142.403680] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0

I assume the bolded line is the pertinent one.

I have sof-firmware installed, as well as the above drivers. I disabled pipewire, as I've had problems on Ubuntu/Mint with Pipewire. I have also tried this with Pipewire enabled and have had the same issue.

The device shows up in YaST Sound as "Tiger Lake-LP Smart Sound Technology Audio Controller." When I select edit and try Quick Automatic Setup or Normal Setup, or Advanced, I get the following error:

The kernel module snd-sof-pci-intel-tgl for sound support could not be loaded. This can be caused by incorrect module parameters, including invalid IO or IRQ parameters.

As I said above, I have this working on Linux Mint 21.3 Virginia, so long as I have Pipewire disabled with the sof-firmware drivers. Does anyone have any clue what I need to do to get the sound working? It's really the only thing stopping me from switching.


Thanks

Alsa-Info output

Tried the newest Kernel at the first link,

Linux localhost.localdomain 6.10.8-lp155.4.g8fb5447-default #1 SMP PREEMPT_DYNAMIC Fri Sep 6 07:30:08 UTC 2024 (8fb5447) x86_64 x86_64 x86_64 GNU/Linux

and the issue persists: https://imgur.com/a/81Y1NVX

Attached is the output from Alsa-Info.

Alsa-info 1.txt


Second alsa-info output with both upstream sof-firmware drivers (failed) and kernel option - snd_intel_dspcfg.dsp_driver=1

alsa-info 2.txt


The new sof firmware you linked to did not change the outcome. There is a difference after adding the kernel modifier, where the device seems to work, as in, the process where I click "edit" to configure the sound driver completes, but there is still nothing but a dummy output. If I try to click "edit" again after the process completes, the window closes. Upon reopening, the driver remains unconfigured. See the screenshot here:

https://imgur.com/beX5Sy5.png


contents of /etc/modprobe.d/

There are three files -

50-yast.conf: https://imgur.com/u5WqTCd.png

which is empty

README, which is, obviously, a readme

and tuned.conf, which is all commented out: https://imgur.com/pMhel5k.png

Thanks

ujfalusi commented 1 month ago

Hi, Can you add this file sof-dyndbg.conf.txt as /etc/modprobe.d/sof-dyndbg.conf, reboot and attach the full dmesg log from the working Mint and from the non working OpenSUSE boot?

Notes:

[   38.557910] sof-audio-pci-intel-tgl 0000:00:1f.3: NHLT table not found
[   38.557981] sof-audio-pci-intel-tgl 0000:00:1f.3: hda codecs found, mask 4
[   38.558417] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware paths/files for ipc type 0:
[   38.558420] sof-audio-pci-intel-tgl 0000:00:1f.3:  Firmware file:     intel/sof/community/sof-tgl.ri
[   38.558422] sof-audio-pci-intel-tgl 0000:00:1f.3:  Topology file:     intel/sof-tplg/sof-tgl-max98357a-rt5682.tplg
[   38.558829] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864
[   38.558834] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0
[   38.558840] sof-audio-pci-intel-tgl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30
[   38.671756] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864
[   38.671775] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0

The firmware and topology file is present and all looks fine, I don't know why the card is not visible.

[   38.558840] sof-audio-pci-intel-tgl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30

is harmless, I have a PR to avoid the confusion: https://github.com/thesofproject/linux/pull/5183

The snd_intel_dspcfg.dsp_driver=1 will force the legacy HDA stack and you do have a card with HDMI audio support only as expected (hda codecs found, mask 4)

SeonMu108 commented 1 month ago

Soflog.txt OSSofdmesg.txt

The OpenSuse dmesg output is "OSSofdmesg.txt." The Mint output is "Soflog.txt"

Thanks for the response.

ujfalusi commented 1 month ago

Thanks for the kernel logs. The openSUSE log hints that there is a card with PCM created while the Alsa-info 1.txt you have attached shows no cards?

[   24.563062] snd_sof:sof_pcm_open: sof-audio-pci-intel-tgl 0000:00:1f.3: pcm: open stream 0 dir 0
[   24.563065] snd_sof:sof_pcm_open: sof-audio-pci-intel-tgl 0000:00:1f.3: period min 192 max 16384 bytes
[   24.563068] snd_sof:sof_pcm_open: sof-audio-pci-intel-tgl 0000:00:1f.3: period count 2 max 16
[   24.563070] snd_sof:sof_pcm_open: sof-audio-pci-intel-tgl 0000:00:1f.3: buffer max 65536 bytes
[   24.563212] snd_sof:ssp_dai_config_pcm_params_match: sof-audio-pci-intel-tgl 0000:00:1f.3: DAI config 0 matches pcm hw params
[   24.563216] snd_sof:ssp_dai_config_pcm_params_match: sof-audio-pci-intel-tgl 0000:00:1f.3: DAI config 0 matches pcm hw params
[   24.563218] snd_sof:sof_ipc3_pcm_dai_link_fixup: sof-audio-pci-intel-tgl 0000:00:1f.3: rate_min: 48000 rate_max: 48000
[   24.563221] snd_sof:sof_ipc3_pcm_dai_link_fixup: sof-audio-pci-intel-tgl 0000:00:1f.3: channels_min: 2 channels_max: 2
[   24.563227] snd_sof:sof_pcm_hw_params: sof-audio-pci-intel-tgl 0000:00:1f.3: pcm: hw params stream 0 dir 0
[   24.563237] snd_sof_intel_hda_common:hda_dsp_stream_hw_params: sof-audio-pci-intel-tgl 0000:00:1f.3: FW Poll Status: reg[0x160]=0x40000 successful
[   24.563254] snd_sof_intel_hda_common:hda_dsp_stream_hw_params: sof-audio-pci-intel-tgl 0000:00:1f.3: FW Poll Status: reg[0x160]=0x40000 successful
[   24.563258] snd_sof_intel_hda_common:hda_dsp_stream_setup_bdl: sof-audio-pci-intel-tgl 0000:00:1f.3: period_bytes:0x18fc
[   24.563260] snd_sof_intel_hda_common:hda_dsp_stream_setup_bdl: sof-audio-pci-intel-tgl 0000:00:1f.3: periods:3
[   24.563295] snd_sof:sof_ipc3_pcm_hw_params: sof-audio-pci-intel-tgl 0000:00:1f.3: stream_tag 1
[   24.563297] snd_sof:ipc3_log_header: sof-audio-pci-intel-tgl 0000:00:1f.3: ipc tx: 0x60010000
[   24.563744] snd_sof_intel_hda_common:hda_set_stream_data_offset: sof-audio-pci-intel-tgl 0000:00:1f.3: pcm: stream dir 0, posn mailbox offset is 791364
[   24.574517] snd_sof:sof_pcm_hw_free: sof-audio-pci-intel-tgl 0000:00:1f.3: pcm: free stream 0 dir 0
[   24.574523] snd_sof:ipc3_log_header: sof-audio-pci-intel-tgl 0000:00:1f.3: ipc tx: 0x60030000
[   24.574766] snd_sof:sof_pcm_close: sof-audio-pci-intel-tgl 0000:00:1f.3: pcm: close stream 0 dir 0

Can you also provide the alsa-info output from Mint and openSUSE again?

It looks to me that the kernel and sof-bin is pretty old on Mint? What are the versions? I think the sof-bin might be from December, 2021: https://github.com/thesofproject/sof-bin/releases/tag/v2.0

with openSUSE we use v2.2 binaries for TGL, but the sof-firmware package is one year old as well, so not too recent either.

The version difference in kernel and sof-bin looks pretty big and there has been lots of changes on both side, but I would try these things (apart from the logs): Sorry, this might be tedious, you should have a notebook to track the results and setups :( Make backup before doing anything!

On Mint install https://github.com/thesofproject/sof-bin/releases/tag/v2023.09.2 (same version as openSUSE has) - you might need to remove the distro sof-firmwre package first.

On openSUSE, install the old https://github.com/thesofproject/sof-bin/releases/tag/v2.0 and see how it behaves.

If nothing works with openSUSE's 6.10.8 then I'm not sure how to proceed, you would need to test older kernels if you can.

Hint: you can test the different sof-bin releases w/o reboot, but need to make sure that nothing is using audio (by reloading the audio drivers): git clone https://github.com/thesofproject/sof-test.git sudo ./sof-test/tools/kmod/sof_remove.sh sudo dmesg -c sudo ./sof-test/tools/kmod/sof_insert.sh

Note: we don't have similar device in our CI, but the sof-bin releases are used by Chrome vendors and Google, regressions can still happen...

ujfalusi commented 1 month ago

@SeonMu108, can you also check on openSUSE before anything else:

sudo aplay -l
plbossart commented 1 month ago

what's not so good is the ACPI error listed initially

[    0.126047] ACPI BIOS Error (bug): Failure creating named object [\_SB.PCI0.HDAS._DSD], AE_ALREADY_EXISTS (20210730/dswload2-326)

that really hints at a UEFI BIOS issue...

I would really try with Fedora40 and see what happens on this device. If everything works well, then it's clearly a distro issue with older kernel/firmware/topology. If there's still a problem, possibly the BIOS needs an update.

SeonMu108 commented 1 month ago

Sudo aplay -l

List of PLAYBACK Hardware Devices card 0: sofrt5682 [sof-rt5682], device 0: Speakers () [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofrt5682 [sof-rt5682], device 1: Headset () [] 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: HDMI4 () [] Subdevices: 1/1 Subdevice #0: subdevice #0

Here is the OpenSuse Alsa-info.sh with that file in place: OS alsa-info.txt

I'm going to boot into mint to give the second alsa-info and will append that file to this post via edit

Thanks

edit: Mint does not have the option for alsa-info. The two alsa-info.txt files I provided were from different sof firmwares within OpenSuse.

Finally, to @plbossart - if it was a UEFI bios issue, it would be present, I would think in both Mint and OpenSuse (I have no idea how UEFI and the Linux kernel interact, so I am more that happy to be wrong on this), however, I updated the UEFI Mr. Chromebook firmware earlier today to the latest version and the issue persist.

Fw Ver: MrChromebox-2408.1 (09/14/2024)

ujfalusi commented 1 month ago

@SeonMu108, this looks correct, you have the card up.

SeonMu108 commented 1 month ago

@ujfalusi

Sof-firmware-signed on Mint is a different package than the one that is used by OS, and there are only two versions on Mint -

https://imgur.com/p0o8QWQ.png.

Within mint, when I try to clone the git and run install.sh, nothing happens - terminal accepts the command and then brings up the same directory waiting for input. When I download the tarball, extract it, and run install.sh I get this error

https://imgur.com/wUk8QFB.png

After running install.sh, there is no new sof-~ or ~-sof in the synaptic package manager. I have no idea how to proceed from here on the Mint side of things - if you could tell me exactly what

See if things work, if not install the https://github.com/thesofproject/sof-bin/releases/tag/v2.0, then https://github.com/thesofproject/sof-bin/releases/tag/v2.2, then the latest release https://github.com/thesofproject/sof-bin/releases/tag/v2024.06

means, I would gladly follow directions. I have a slight background in IT QA, so I am familiar with bug reports and how to communicate back and forth with actual tech people, but I have no idea how github as a whole works, or how to do anything with it other than what I've already wrote.

Thanks.

ujfalusi commented 1 month ago

@SeonMu108, OK, I think you don't need to test different versions of sof-bin releases, the issue might boils down that normal users in openSUSE does not have access to audio by default - only the media severs do. Let's pursue this lead!

With vanilla openSUSE install with sudo aplay -l you can see the sound card and the list of PCM devices, while with aplay - l you don't, right? You need to add your user to the audio group ([1], [2]): go to: YaST Control Centre > Security and Users > User and Group Management, click on Edit on the Users tab, change tab to Details and tick the audio box under Additional Groups. Then reboot.

Now you should see the audio card and PCM devices with aplay -l.

The other problem you have is that alsa-ucm-conf (afaik) does not have configuration for this sound card (sof-rt5682), which means that Pipewire/wireplumber or Pulseaudio does not know what to do.

To see if it is working at all, you would will need some of the hints from the troubleshooting [3]: Open two terminals TermA: alsamixer -c0 TermB: speaker-test -Dplughw:0,0 -c2 -twav , this will start a speaker test on the Speaker (-Dplughw:0,1 is for the headset)

Go back to TermA and play with mixer controls. You might be able to migrate the Mint configuration: in theory you could do alsactl -f mycard.aconf store in Mint and alsactl -f mycard.aconf restore in openSUSE, but chances that there were changes in controls, thus the config is not applicable is high. In that case the stored configuration can give you hint on what needs to be changed.

References [1] https://forums.opensuse.org/t/article-opensuse-as-a-digital-audio-workstation/88461 [2] https://doc.opensuse.org/documentation/leap/startup/html/book-startup/cha-yast-userman.html#sec-yast-userman-assign [3] https://en.opensuse.org/SDB:Audio_troubleshooting

SeonMu108 commented 1 month ago

OK! PROGRESS!

I added audio to the user group. Before adding the audio group, both sudo and standard aplay -l displayed the same output:

https://imgur.com/9O12BvQ.png

NOW! Here is the interesting thing! when I run this command in terminal:

speaker-test` -Dplughw:0,0 -c2 -twav

THIS WORKS! But only this. It still shows up in alsa as a dummy; no hardware output. It repeats the front left/front right audio clip over and over.

HOWEVER!!!!

When I check YaST sound, the sound card is still showing up as unconfigured. So of course, I try to configure it, to see if it corrects itself, which of course it doesn't. BUT! When I try to repeat that terminal command, I get a different output, an error, and there is no longer a sound test:

https://imgur.com/screenshot-h5j4tFX

Also, when I run the (sudo) aplay -l command, it then returns

aplay: device_list:277: no soundcards found...

_ Any further ideas?

SeonMu108 commented 1 month ago

OK, I feel like a giant idiot.

As soon as I change the pulseaudio configuration it works!

https://imgur.com/9857kqV.png

MuCH (because YaST audio apparently is nonsense and has no bearing on anything) appreciated!

Chris

ujfalusi commented 1 month ago

@SeonMu108, glad to hear that you made some (audible) progress! The UCM configuration would be the next thing to create to be able to fully control the card, but that is another issue altogether.

If you feel that the original issue has been addressed and fixed, please close the issue.

Thank you

SeonMu108 commented 1 month ago

LET THERE BE SOUND

ujfalusi commented 1 month ago

@SeonMu108, are you OK to close the issue?

Thank you