Audio on Thinkpad X1C8
I'm running Slackware current on a Thinkpad X1 Carbon Gen 8 (aka X1C8).
The only way I've been able to get the speakers + microphone working is with a 5.8 kernel and the SOF firmware. The 5.8 kernel code appears to force SOF firmware for this particular machine, so I guess there's a known issue that requires it (?). The speakers work fine with the stock 5.4 kernel, but not the microphone. The 5.4 kernel that ships with slackware current has support for SOF, but I haven't been able to get it to work. It looks like it may require an old version of SOF that's no longer available from the SOF project's githubg repo (but that's just a guess). Questions: Is anyone else running Slackware on a Thinkpad X1C8? (Or X1C7, or X1 Yoga 4/5 -- all of which have very similar hardware, I think.) Does anyone know how to get the SOF firmware running with the stock 5.4 kernel? Are there any plans to add the SOF firmware into Slackware current? |
I know nothing about your particular hardware, but I was thinking about getting one of those for some time, so, thanks for the heads-up.
The newest devices sometimes need the most recent kernel, and there is no way around it. I think Slackware ships a stock kernel and stock firmware only, but you can easily compile your own based on the official Slack config files. AlienBob's guide for building a Slackware kernel: https://docs.slackware.com/howtos:sl...kernelbuilding Greg Kroah-Hartman has a free book on the subject: http://www.kroah.com/lkn/ |
Yup, I used to always build my own kernels, but I mostly stopped doing it several years ago. Actually my previous laptop also required a custom kernel build (for the wifi in that case). I was hoping to avoid that by switching from Slackware 14.2 to Slackware current, but nope.
Just to be clear, the 5.8.7 and 5.8.9 kernels work fine on this laptop. But I also had to install the SOF firmware. I was hoping to get the SOF firmware working with the 5.4 kernel. Then I'd be able to use the Slackware kernel, and I'd just need to install the firmware. But I haven't been able to get that working. I *think* 5.4 requires an older version of SOF, but I haven't been able to get it to work. Maybe the best bet is to wait for the next LTS kernel (guessing 5.9 or 5.10). If it gets picked up in Slackware current, then I can try to get the SOF firmware included, too. If you do pick up a new Thinkpad, and you have any trouble getting the audio running, feel free to ping me. |
Quote:
|
Hi derekn13,
I have been having the same issues, although I have not yet managed to get the microphone working at all. This is an HP Elitebook 840 G6 with this hardware: Code:
00:1f.3 Multimedia audio controller: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 11) Code:
append="snd_intel_dspcfg.dsp_driver=1" Any advice gratefully received :-) Jonny |
First, I have no idea if this will work for anything other than a Thinkpad X1C8. (Though it makes sense there would be other similar hardware out there.)
I've had success with the 5.8.7 and 5.8.9 kernels; I haven't tried anything else. I installed version 1.5.1 of the SOF firmware, via: Code:
git clone -b stable-v1.5.1 https://github.com/thesofproject/sof-bin.git I had to add this to the bottom of /etc/pulse/default.pa: Code:
load-module module-alsa-sink device=hw:0,0 channels=4 Another tricky bit: after the first boot with the SOF firmware and drivers, you need to unmute the speakers. Run alsamixer, hit F6 and select "sof-hda-dsp", hit 'm' to unmute, and then increase the master volume to 100%. After that, you can use the regular pulseaudio volume control. Run 'alsactl store' to save the state, so you don't have to do this again. The muting took me an embarrassing amount of time to notice, and it's not entirely obvious from the alsamixer interface, so I'll repeat: make sure you hit 'm' to unmute the sof-hda-dsp output. I think the SOF firmware version is locked to the kernel SOF driver version. I.e., if your SOF firmware is newer than the kernel driver, things won't work. I'm not 100% sure on that, but you may want to try a more recent 5.8 kernel. Credit to my original sources for all of this: |
Thanks for the tips @derekn13, looks like I'll be doing some kernel compiling :-)
|
Well, I did manage to get my microphone working :-)
For future reference, this is an HP Elitebook 840 G6. Audio hardware is Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 11). I already had the SOF firmware installed. I compiled a 5.8.10 kernel and made these changes to the config to get it to work: Code:
$ diff -y --suppress-common-lines /usr/src/linux-5.8.10/{.config.old,.config} Also, I didn't need to make any changes to the stock /etc/pulse/default.pa file, it worked regardless of whether I added the "load module..." lines or not. Thanks @derekn13 for your advice, most appreciated! |
Hi,
Created a Slackware package for SOF firmware : http://download.zenwalk.org/x86_64/c..._64-210103.txz Enjoy :) JP |
Hi all,
I was in a similar situation with a Lenovo IdeaPad 5 (see e.g. here or here) and the recommendations in this thread were very useful to me, so thanks everybody! But with the last few kernels (5.10.3 - 5.10.5) I had several problems, the most important being I couldn't put my notebook to sleep (it'd come back up immediately) and hibernation locked it up hard. And the mic never worked. Yesterday I upgraded my kernel to 5.10.6 and I commented out "options snd_intel_dspcfg dsp_driver=1" from my /etc/modprobe.d/snd_intel_dspcfg.conf, and also commented out these 2 lines from /etc/pulse/default.pa: load-module module-alsa-source device=hw:0,0 channels=2 load-module module-alsa-sink device=hw:0,0 channels=2 The only thing I kept was my self-created sof-firmware-1.6.1 package (I should have posted it in this thread, sorry for that. It's here if you want to check it out) This was to make a fresh start of debugging sound and stability issues on my system but to my great surprise everithing works! Sleep, hibernate, the internal speakers, HDMI audio, even the mic! Sometimes I see some ugly names in the GUI (like "sof-hdmi-audio" or some such instead of "HDMI audio output") but that's no biggie. Anyway, I though I should let you guys know in case you can go back to using Slackware's defaults. Cheers! |
Great packaging.
I wouldn't be surprised if Pat or Robby add this package in Slackware in the following days... jp |
@richarson: great job with the SlackBuild, thanks for that :-)
I made a few changes, then had to make a few more as I must have broken it. Anyway I tried to simplify some of the variables; here are the diffs if you are interested: sof-firmware.SlackBuild.diff Code:
--- sof-firmware.SlackBuild.orig 2021-01-11 13:44:30.652992305 +1300 Code:
--- sof-firmware.info.orig 2021-01-11 13:45:10.261990408 +1300 |
Quote:
I never thought of downloading with the tag, it really simplifies the script. |
Changes uploaded to my github, if Pat o Robby won't include sof-firmware in Slackware 15.0 I'll submit it to SBo.
Thanks! |
Thanks to all here for providing this slack build. For a ThankPad P1, only the firmware was required to get audio working.
|
All times are GMT -5. The time now is 10:47 PM. |