These are my installation-tricks and notes for running Linux on a 2021 Thinkpad P14s Gen2 with 11th gen Intel Core i7-1185G7. It should also be suitable for the Thinkpad T14 Gen2 with Intel as they are technically the same model.
Additionally you may find more AMD specific tips on the gist I've forked. I decided to keep this gist forked as I have used some of the tips they shared and because they inspired me to create my note in the first place.
Sadly there is no entry in the arch-wiki for Intel specific model, but some of the info from AMD one were useful for me. Other useful sources are mentioned in the document in their respective chapters.
Not everything in this doc may be 100% correct as I'm writing this note after having my PC set up and I might have forgotten some of the stuff. I will update it I ever decide to reinstall the OS on my PC.
- Host: ThinkPad P14s Gen 2i (20VYS2FD01)
- Resolution: 1920x1080 (touch)
- CPU: 11th gen Intel Core i7-1185G7
- GPU: Intel Iris Xe Graphics G7 96EU and NVIDIA Quadro T500 Mobile
- Memory: 16 GB (soldered + 1 empty DDR4 slot available)
- SSD: 1 TB (Samsung)
- Network: Intel AX201 (Wi-Fi 6)
- Docking station: Lenovo ThinkPad Thunderbolt 4 WorkStation Dock (40B00300EU)
I've chosen Manjaro as my work PC distro, because I wanted to have a rolling-release distro and Manjaro looked kinda noob friendly as I'm not very into Linux. I can do some stuff but I only use it for work. It's not my first installation tho - I've used Manjaro on my old PC as well.
IIRC I have installed Manjaro with default settings everywhere beside the partitioning where I created the SDD layout manually. I needed my installation to be fully-encrypted so I sticked with the basic possible layout while keeping the WinRE_DRV partition:
- 512 MiB fat32 partition with mounting point
/boot/efi - all remaining space formatted with ext4 with LUKS encryption mounted as
/ - 1000 MiB default WinRE_DRV partition.
I have tried to have better layout with separate /boot partition, but I couldn't make it work without being asked for a password twice. Additionally Manjaro installer still doesn't support LUKS2. After the installation I have found this tutorial for Ubuntu which might help you with better partition management while keeping the installation fully-encrypted. If I were to reinstall the system I would certainly use the suggested layout from that tutorial.
The drawbacks to my layout:
- Decrypting the drive happens before the kernel is loaded and because of that it takes a lot longer (about 1 min)
- It uses LUKS1 encryption which is slower and less secure
- Because there is no swap partition a hibernation doesn't work out-of-the-box (I prefer using the swap file anyway, but it has to be manually set up after the installation)
After the installation I was actually pleasantly surprised by the fact that almost everything worked out-of-the-box and I could have used the PC just fine. However there was some stuff that needed tweaking.
I haven't tried using the S0ix sleep on this machine - I had gone thru the BIOS even before I installed the OS and I had changed the sleep mode to "Linux" (which is S3 type of sleep). I don't remember anything else that have to be changed in the BIOS but I might be wrong (I think I have turned off the secure boot, but I don't know if that is required).
The S3 sleep works just fine after this change and I don't see any reason to have the S0ix sleep tbh (S0ix offers worse battery efficiency and the only benefit is faster waking up time if I understand it correctly).
The first thing I did after the installation was going thru the firmware update with fwupd. I believe this package might require manual installation but I'm not sure. You may find the info on how to use it here.
I believe the main reason to do the firmware update was to check if the docking station has the up-to-date firmware. After the issues I had with a dedicated docking station for HP EliteBook 840 G3 I was very skeptical about the idea of having the Thunderbolt docking station under Linux but it turns out literally everything works perfectly with this dock. No more issues with external displays or missing USB devices, oh yeah!
Looks like the Intel Turbo is working OK on Manjaro. To check if it is enabled use:
cat /sys/devices/system/cpu/intel_pstate/no_turboValue 0 means it's enabled, to disable set it as 1.
As my device is almost exclusively used connected to the docking station (and AC) it is a good idea to limit battery charging to 80%. I was able to achieve that with the tlp. The tutorial for installation is here, but it's in German.
To install tlp use the command (for recent ThinkPads you will also need acpi_call):
sudo pacman -S tlp tlp-rdw acpi_callTo turn on the tlp you need to start the tlp service.
sudo systemctl enable tlp.service && systemctl start tlp.serviceAfter the installation reboot might be required, but I don't remember.
The configuration for tlp is set using the file /etc/tlp.conf. For battery conservation mode you need to set up the params (explained here):
START_CHARGE_THRESH_BAT0=75
STOP_CHARGE_THRESH_BAT0=80
With this config the battery will always be between 75 and 80%. If you have two batteries you may also set the same values for BAT1.
After setting up tlp battery charging threshold might be reconfigured via KDE system settings under "Advanced power settings" tab.
I think the audio works out-of-the-box but I installed the sof-firmware package as suggested on arch-wiki.
A decent tutorial about setting up the swap file is available on arch-wiki so I'm not gonna put the instruction here.
During this set up there is a step to add mkinitcpio HOOKS so I went thru the hooks I had on my old Manjaro installation and my current list looks like that:
HOOKS="base udev autodetect modconf block keyboard keymap consolefont encrypt filesystems fsck resume"It's also a good moment to go thru the GRUB settings and eg. hide it when Linux is the only OS the machine.
This is a first hardware think that I found that doesn't work out-of-the-box. Looks like the solution is to append blacklist raydium_i2c_ts to /etc/modprobe.d/unneeded-modules.conf. It may be done using
echo "blacklist raydium_i2c_ts" | sudo tee /etc/modprobe.d/unneeded-modules.confI found the solution here while it's also mentioned on arch-wiki for AMD model.
I don't like the cooling system in this laptop at all. The intakes are all from the bottom of the device which may result in overheating when the device is placed incorrectly. Additionally the default fan curves are made in a way that the device has fans turned off for a long time and turns them on on 100% when some temperature is hit. It's kinda annoying because you get a sudden change in the fan noise and this fan is really loud when running on 100%.
It turns out that it might be fixed (to some degree) using the thinkfan. The installation process is described here.
However the thinkfan requires you to create your own config file where you specify the sensors that should be taken into the account and create a fan curve. I found this nice tutorial for my Thinkpad with already prepared config file.
The fan curve from that tutorial looks OK-ish, but I decided to change it based on the one suggested here. It keeps the device hotter but I don't mind it as I'm using it mostly docked. In the end I changed the first threshold to 30 to keep the fan on the first level always on because turning on this fan is always very lound.
I'm attaching the config file I'm using to this gist as a separate file.
There might be some additional setup required to get the best possible from my BT headphones, but I will be configuring it later. When I have some more tips I will share it here.
I will check later if the fingerprint scanner works and how to setup it.
This notebook is a really nice device. Works fine on Linux. I hope that working on it will be a lot nicer experience than my old HP. I will do the battery test later but now it seems that 6h of battery life when using only chrome and vscode might be possible.