Setup Soundcard and Microphone on Lenovo Thinkpad X1 Carbon 7th Gen with Linux Mint 19.3

Setup Soundcard and Microphone on Lenovo Thinkpad X1 Carbon 7th Gen with Linux Mint 19.3

Recently I switched my work device from my very old MacBook Pro Mid-2012 Non-Retina to a brand new Lenovo Thinkpad X1 Carbon 7th Gen - or X1C7 for short - with Linux Mint 19.3 Tricia.

From scratch, Linux Mint 19.3 comes with an Ubuntu 18.04 LTS Kernel version 5.0.0. The Touchpad, Touchpoint, Display, Keyboard and some kind of default sound output worked out of the box. Something else did not, for example 4.0 Sound - since the X1C7 comes with Dolby Atmos support - the Microphone, the LTE Modem or the Fingerprint Reader.

I did a lot of research and wanted to write some blogposts for all people who search for help and of course for me, if i need it later.

This post is the first in a row and will cover how to setup the soundcard with 4.0 speaker and microphone support.

Basics

For the start, you have to install a more recent kernel for everything to work right. Install the newer 5.3.0-24-generic kernel and all modules with:

apt-get install linux-image-5.3.0-24-generic linux-modules-5.3.0-24-generic linux-modules-extra-5.3.0-24-generic

This will also install some other packages like linux-generic-hwe-18.04-edge or linux-image-generic-hwe-18.04-edge. After installation, reboot first, then continue with the next steps.

Install SOF firmware and configure Soundcard

By default in Linux Mint 19.3, you only have a single speaker output where you can choose between Stereo, 2.1 or 4.0 output. As this is already a good start - when you choose 4.0 output - we can do better. The soundcard supports variety of other channels like HDMI or Display Port. Also the Mic is non-functional with the default driver.

Some nice guy already wrote a script to exactly fix this soundcard of the X1C7 - including the mic - on 5.3 linux kernels. This script was originally written for ArchLinux but works beautifully on Linux Mint (and maybe other distributions as well).

Here are the installation steps for you:

curl -L https://gist.githubusercontent.com/sagi/c1553521f848926afb82926a62a3c11f/raw/d7acec9a696e4221acf4a6408d7550150d1d99cb/sof-audio-setup-carbonx1.sh -o /tmp/sof-audio-setup-carbonx1.sh
sudo bash /tmp/sof-audio-setup-carbonx1.sh

If everything went well, reboot now. When you're back, open a terminal, run alsamixer, press F6 to choose the soundcard (there should be one named sof-skl_hda_card) then press F4 and turn up all channels to 100. Do the same in the first view afterwards and tune up all channels to 100.

When you now open the Sound menu from the systray, you should see one speaker output and 3 HDMI/DP output devices. Also your microphone should be available now and working fine. You can check your microphone with Mic Test for example.

What you can also do in the Sound menu in the systray is to go to the Settings pane and slide the Amplification up to 150%. The speaker work pretty well with that setting and you can really get great sound of those 4 speakers.

From now on, also all of your special keys for speaker and microphone should work now.

Fix the volume up/down buttons

For me, with the new soundsystem in the X1C7 there is an issue with the volume up and down buttons on the keyboard. They seem to work - the slider goes left and right - but the sound is only on or off and it doesn't correctly goes louder and more quiet when you use them.

You can easily fix this as well by editing /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common.

Scrollt down until you see the [Element PCM] section. Right above it, add the following 3 lines:

[Element Master]
switch = mute
volume = ignore

Save, Exit and reboot. Now your volume up/down buttons should also work like intended.

Keep in mind, that you have to run this fix again when you do an upgrade of the pulseaudio package.

Enjoy the great sound of your X1 Carbon 7th Gen!