Scheduled Maintenance: We are aware of an issue with Google, AOL, and Yahoo services as email providers which are blocking new registrations. We are trying to fix the issue and we have several internal and external support tickets in process to resolve the issue. Please see: viewtopic.php?t=158230

 

 

 

No sound in Bullseye - SOF issues

New to Debian (Or Linux in general)? Ask your questions here!
Post Reply
Message
Author
User avatar
FreewheelinFrank
Global Moderator
Global Moderator
Posts: 2062
Joined: 2010-06-07 16:59
Has thanked: 38 times
Been thanked: 221 times

No sound in Bullseye - SOF issues

#1 Post by FreewheelinFrank »

One of the most common issues in a new install of Linux is with sound. There may be no sound output from attached or inbuilt speakers, or headphone or microphones may not work. On newer hardware in particular, the problem is often the sound device driver or firmware.

One open source project that provides drivers and firmware for newer sound devices (or technically speaking, digital sound processors) is the Sound Open Firmware (SOF) project. The SOF driver may be the only driver that supports a sound device, especially with Intel Comet Lake, Ice Lake, and Tiger Lake devices, or it may be the only driver that supports a feature of a sound device, for example a digital microphone. In these cases, the Debian kernel will try to use the SOF driver, but sometimes it will fail to work.

This topic is intended to give some advice for Buslleye with sound issues due to the SOF driver.

How do I know if my computer needs the SOF driver?

Code: Select all

dmesg | grep sof
Example output:

Code: Select all

[   16.646946] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[   16.647040] sof-audio-pci-intel-tgl 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver

Code: Select all

lspci -k | grep -A 4 Audio
Example output:

Code: Select all

    00:1f.3 Audio device: Intel Corporation Comet Lake PCH-LP cAVS
        DeviceName: Onboard - Sound
        Subsystem: Pegatron Comet Lake PCH-LP cAVS
        Kernel driver in use: sof-audio-pci-intel-cnl
        Kernel modules: snd_hda_intel, snd_sof_pci_intel_cnl
In Debian Bullseye, closed source firmware is not installed by default, so even if Bullseye includes a driver for the sound card, it may not work until the user installs the firmware needed.

First make sure the package

Code: Select all

firmware-sof-signed 
is installed.

Code: Select all

$ apt policy firemware-sof-signed
If it isn't, install it and reboot.

Sometimes this is enough to get sound working! See this thread.

Sadly, however, it often isn't. Manufacturers release new devices all the time, and of course they also produce drivers for these devices. Computers made with the new device come with the driver for that device, but in Linux there is a delay before a working driver and firmware are included in a distribution.

An important point to make is that Debian Bullseye was released on August 14th, 2021. The SOF project is under constant development, and support for new devices (and bug fixes for supported devices) are added regularly. Because of the nature of Debian Stable, bullseye does not add these updates to the SOF driver or firmware. Devices that need the SOF driver may be supported in the upstream driver (as released by the SOF project), but not work in Bullseye because of its stage in the release cycle. Debian Bookworm will be released later this year, with a more up to date SOF driver.

My computer is trying to use the SOF driver but it doesn't work. What can I do?

Check with dmesg for errors:

Code: Select all

# dmesg  | grep 'sof\|firmware\|audio'
This is an output where the SOF driver didn't work:

Code: Select all

[    5.364213] sof-audio-pci 0000:00:1f.3: hda codecs found, mask 5
[    5.364214] sof-audio-pci 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
[    5.364218] sof-audio-pci 0000:00:1f.3: DMICs detected in NHLT tables: 2
[    5.365253] sof-audio-pci 0000:00:1f.3: firmware: direct-loading firmware intel/sof/sof-tgl.ri
[    5.365257] sof-audio-pci 0000:00:1f.3: warning: unknown sof_ext_man header type 6 size 0x20
[    5.365258] sof-audio-pci 0000:00:1f.3: Firmware info: version 1:7:0-47d07
[    5.365259] sof-audio-pci 0000:00:1f.3: Firmware: ABI 3:18:1 Kernel ABI 3:17:0
[    5.365259] sof-audio-pci 0000:00:1f.3: warn: FW ABI is more recent than kernel
[    5.365261] sof-audio-pci 0000:00:1f.3: warning: unknown sof_ext_man header type 3 size 0x30
[    5.365262] sof-audio-pci 0000:00:1f.3: warning: unknown sof_ext_man header type 5 size 0x20
[    5.454336] sof-audio-pci 0000:00:1f.3: Firmware info: version 1:7:0-47d07
[    5.454338] sof-audio-pci 0000:00:1f.3: Firmware: ABI 3:18:1 Kernel ABI 3:17:0
[    5.454338] sof-audio-pci 0000:00:1f.3: warn: FW ABI is more recent than kernel
[    5.629177] sof-audio-pci 0000:00:1f.3: firmware: direct-loading firmware intel/sof-tplg/sof-hda-generic-2ch.tplg
[    5.629184] sof-audio-pci 0000:00:1f.3: Topology: ABI 3:18:1 Kernel ABI 3:17:0
[    5.629184] sof-audio-pci 0000:00:1f.3: warn: topology ABI is more recent than kernel
[    5.650921] sof-audio-pci 0000:00:1f.3: ASoC: Parent card not yet available, widget card binding deferred
Although some sound devices may only work with the SOF driver, others may be partially supported by the legacy driver snd_hda_intel, but without digital microphones support. To get sound working, try forcing the legacy driver. Create a file

Code: Select all

/etc/modprobe.d/inteldsp.conf
and add

Code: Select all

options snd_intel_dspcfg dsp_driver=1
then reboot.

(Devices that are only partially supported in Bullseye may be fully supported in future releases, so if you have forced the legacy driver, try the SOF driver again after updating to Bookworm.)

If your device does not work after installing SOF firmware, and cannot use the legacy driver, an option to try in the meantime is installing a newer kernel (which includes a newer SOF driver) from Debian Backports. The SOF driver may also require the latest firmware (firmware-sof-signed) and ALSA Use Case Manager configuration files (alsa-ucm-conf). These are not available in Debian Backports. It is safe to install firmware-sof-signed manually from Sid (or to extract the required firmware files to the appropriate location), but alsa-ucm-conf requires a newer version of ibrasound2 than that in Bullseye.

One example of a device that will not work in Bullseye is the ES8336 codec from Everest Audio on platforms such as AppoloLake, GeminiLake, JasperLake, CometLake and AlderLake. SOF support for this device started with the kernel 5.19, so it will not work in Debian Bullseye, which has kernel 5.10, but may well work in Debian Bookworm, which has kernel 6.1 at the time of writing.
End-users can verify if the hardware uses this configuration by running the ‘alsa-info’ command and checking for the presence an ACPI _HID, e.g.

/sys/bus/acpi/devices/ESSX8336:00/status 15

/sys/bus/acpi/devices/ESSX8326:00/status 15
SOF Project

One way to find out if your device is supported in the next Debian release is to try a live image of bookworm. Bear in mind that this is not yet the stable release, and may contain bugs.




Comments/corrections/suggestion below please.

If you have got sound working where the SOF driver was involved, or helped somebody to do so, please leave a comment with the device name and what worked.

Sid/Testing users, please tell us if your SOF device works.

Please do NOT use this topic for support issues. Start your own thread for that.

Post Reply