To use Thunderbolt 3, go into BIOS and enable BIOS Assist mode (Thunderbolt 3 -> Enable BIOS assist mode)
As of writing, a bug exists where the battery data can appear corrupt, wildly incorrect, or seem to change drastically from boot to boot. To workaround this bug you should add battery to the
Remember to regenerate the initramfs for these changes to take effect.
As of Linux 5.2.9, the Nouveau driver can cause quite a lot of kernel panics when using the webcamera.
OLED screens have no backlight, brightness cannot be controlled by changing backlight power in the traditional way. Instead, it can be controlled using PWM by enabling following option:
echo "options i915 enable_dpcd_backlight=1" >> /etc/modprobe.d/i915.conf
Alternatively, you can add a kernel parameter. For example, if you are using GRUB, edit /etc/default/grub with
Do not forget to update the grub configuration to apply the changes.
Brightness control is not yet supported by standard tools. You can try this oneAUR
Hybrid Graphics (also known as Nvidia Optimus) Allows the system to use the integrated Intel graphics and the Nvidia GPU interchangeably without rebooting.
Brightness control under Hybrid Graphics should work "out of the box" with no kernel command line options necessary. If you notice brightness controls cease working, check that your BIOS settings are still for "Hybrid Graphics" and not "Discrete Graphics".
Discrete graphics means only the Nvidia GPU is available to the system (i.e. "Discrete Graphics" selected in BIOS).
If you are having issues with trackpad functionality not working after a sleep and resume, like non-smooth tracking or tap clicking not registering, you can switch back to the older communication protocol:
echo "options psmouse synaptics_intertouch=0" > /etc/modprobe.d/trackpad.conf
More details on what this does are here 
If your WiFi card is occasionally not detected after reboots, this may be related to a known bug that is related to windows fastboot. Workarounds are to completely shutdown the machine (no suspend or reboot), on next boot it works for me. Alternatives suggested are to first boot into windows, and/or disable windows fastboot in the bios.
If you have issues with a gigabit connection being capped at 100 MB/s and you are using the e1000e driver, try adding pcie_aspm=off to the kernel boot parameters.
Additionally, run the following to get a more slight network performance improvement:
ethtool -s <INTERFACE> autoneg on speed 1000 duplex full
The latest BIOS version is highly recommended. All information on this page should assume the latest BIOS unless explicitly stated otherwise.
error: failed to save storage - write protected), it may help to reset the BIOS to factory defaults (F9) and/or upgrade your BIOS.
Check BIOS version
From Lenovo's firmware readme, to check the system's installed BIOS version:
DETERMINING WHICH VERSION IS INSTALLED [Checking on ThinkPad Setup] 1. Turn on the computer. 2. While the "To interrupt normal startup, press Enter" message is displayed at the lower-left area or lower-center of the screen, press the F1 key. The ThinkPad Setup menu will be displayed. If a password prompt appears, type the correct password. 3. Locate the UEFI BIOS Version line. "UEFI BIOS version (BIOS ID)" will be shown on the UEFI BIOS Version line. 4. Turn off the computer.
Alternatively, use fwupdmgr from fwupd without rebooting:
$ fwupdmgr get-devices
... ├─System Firmware: │ Current version: 0.1.30 ...
Disabling Absolute Persistence
Lenovo offers two BIOS versions with their releases; Absolute Persistence and Non-absolute Persistence. Absolute Home & Office (originally known as CompuTrace, and LoJack for Laptops) is a proprietary laptop theft recovery software (laptop tracking software) with features including the abilities to remotely lock, delete files from, and locate the stolen laptop on a map. More information about its functionality and vulnerabilities can be read here
If you do not subscribe to this service and have no use for it, you can flash an alternate BIOS provided by Lenovo listed as "Non-Absolute Persistence". The BIOS versions are identified by their letter at the end of the .cab file. Versions ending in W include Absolute's features and versions ending in P remove it. The Non-Absolute version is included in the zip file containing BIOS updates from Lenovo's website or you can directly download it from fwupd.org.
To install the Non-Absolute Persistence BIOS, you must first permanently disable Computrace in the BIOS. Once done, you can flash the Non-Absolute Persistence (P version) with the same instructions.
$ su # fwupdmgr install <filename>.cab
Then reboot immediately to finish the upgrade.
Reverting to previous versions
To downgrade your bios, you can use the --allow-older flag with fwupd.