You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
DOC: what version we're supposed to use (kernel-compat) #9
Background, bought a new X1 Carbon Gen 7, with 10th Generation Intel. Having some problems with sound. Running Debian Buster which uses the 5.6 Kernel. More information on the link above.
It's not clear to me coming here to install/update firmware which version of sof I should be using. Presumably the abis of these firmwares are linked to the kernel module that loads them. I don't see it documented what SOF is supported with specific kernel number. That information would be great to have in the README.
It seems that my above suspicion was correct, when I try to load v.15 of SOF in the kernel 5.6, I get
sof-audio-pci 0000:00:1f.3: Firmware: ABI 3:16:0 Kernel ABI 3:12:0
sof-audio-pci 0000:00:1f.3: warn: FW ABI is more recent than kernel
sof-audio-pci 0000:00:1f.3: warning: unknown ext header type 3 size 0x1c
sof-audio-pci 0000:00:1f.3: warning: unknown ext header type 4 size 0x10
sof-audio-pci 0000:00:1f.3: firmware boot complete
sof-audio-pci 0000:00:1f.3: firmware: direct-loading firmware intel/sof-tplg/sof-hda-generic-4ch.tplg
sof-audio-pci 0000:00:1f.3: Topology: ABI 3:16:0 Kernel ABI 3:12:0
sof-audio-pci 0000:00:1f.3: warn: topology ABI is more recent than kernel
Do note that there is a bit of leeway (we don't get MAJOR ABI changes often, and MINOR changes allow for compatibility which means you can run a newer firmware under an older kernel or viceversa just fine). You don't have an actual failure but only a warning that you didn't pair them properly; while this isn't fully supported it's still useful and some real-life combinations might even be supported anyway in spite of the mismatch. This mismatch might lead to unusual bugs but it's unlikely.
@EvanCarroll generally users should be using the version shipped with their distro, but you are right we do need some information for users who would like to update their kernels or FWs. i.e. it should work but YMMV
@EvanCarroll Debian instructions look good, btw not sure if you also need UCM files too. Maybe the instructions could be updated to just pull the sof-bin git repo in the future once the go.sh is updated. That way folks could use v1.6 etc once released.
users may update their kernels at any time while keeping the SOF firmware binary and topology files stored in the root filesystem unchanged. [...] conversely, [...] a new firmware does not need to include any backwards-compatibility code to interface with an older kernel.
Activity
[-]Cover what version we're supposed to use?[/-][+]DOC: what version we're supposed to use (kernel-compat)[/+]EvanCarroll commentedon May 24, 2020
It seems that my above suspicion was correct, when I try to load v.15 of SOF in the kernel 5.6, I get
paulstelian97 commentedon May 25, 2020
Do note that there is a bit of leeway (we don't get MAJOR ABI changes often, and MINOR changes allow for compatibility which means you can run a newer firmware under an older kernel or viceversa just fine). You don't have an actual failure but only a warning that you didn't pair them properly; while this isn't fully supported it's still useful and some real-life combinations might even be supported anyway in spite of the mismatch. This mismatch might lead to unusual bugs but it's unlikely.
lgirdwood commentedon May 25, 2020
@EvanCarroll generally users should be using the version shipped with their distro, but you are right we do need some information for users who would like to update their kernels or FWs. i.e. it should work but YMMV
EvanCarroll commentedon May 25, 2020
Good info. Using the version the hardware ships is ideal, if supported. My distro (Debian) shipped firmware that didn't actually work with the hardware. So we're all forced to do this for now.
lgirdwood commentedon May 27, 2020
@EvanCarroll Debian instructions look good, btw not sure if you also need UCM files too. Maybe the instructions could be updated to just pull the sof-bin git repo in the future once the go.sh is updated. That way folks could use v1.6 etc once released.
marc-hb commentedon Oct 5, 2021
@plbossart does the sof-bin URL now get printed when there is a MAJOR mismatch? thesofproject/linux#2639
plbossart commentedon Oct 5, 2021
IIRC we throw an error only when request_firmware() fails. We haven't had any MAJOR ABI changes so far.
marc-hb commentedon Oct 6, 2021
OK so is the recommendation to
use the latest FW with any kernel version that supports SOF, case closed?cc: @kv2019i
marc-hb commentedon Oct 6, 2021
I found that most FW release notes recommend a minimum kernel version which I think addresses the issue. I will close it if there's no objection.
v1.5:src/include/kernel/abi.h:#define SOF_ABI_MINOR 16"Linux stable kernel 5.6.3 or newer"
v1.7:src/include/kernel/abi.h:#define SOF_ABI_MINOR 18"Linux stable kernel 5.10 or newer."
v1.8:src/include/kernel/abi.h:#define SOF_ABI_MINOR 18"Linux stable kernel 5.12 or newer"
v1.9:src/include/kernel/abi.h:#define SOF_ABI_MINOR 19"Linux stable kernel 5.12 or newer"
Yet looking at the corresponding kernels:
v5.6.3:include/uapi/sound/sof/abi.h:#define SOF_ABI_MINOR 12< 16v5.10:include/uapi/sound/sof/abi.h:#define SOF_ABI_MINOR 17< 18v5.12:include/uapi/sound/sof/abi.h:#define SOF_ABI_MINOR 18< 19See also https://thesofproject.github.io/latest/contribute/linux/development_tree.html#id3
EDIT: explained in thesofproject/sof#4986 (comment)