Lenovo ThinkPad T450s

From ArchWiki
Jump to navigation Jump to search

Model description

Lenovo ThinkPad T450s


PCI (lspci) Driver
Intel Corporation Broadwell-U Host Bridge -OPI (rev 09) bdw_uncore
Intel Corporation Broadwell-U Integrated Graphics (rev 09) i915
Intel Corporation Broadwell-U Audio Controller (rev 09) snd_hda_intel
Intel Corporation Wildcat Point-LP USB xHCI Controller (rev 03) xhci_hcd; xhci_pci
Intel Corporation Wildcat Point-LP MEI Controller #1 (rev 03) mei_me
Intel Corporation Ethernet Connection (3) I218-LM (rev 03) e1000e
Intel Corporation Wildcat Point-LP High Definition Audio Controller (rev 03) snd_hda_intel
Intel Corporation Wildcat Point-LP PCI Express Root Port (rev e3) pcieport; shpchp
Intel Corporation Wildcat Point-LP USB EHCI Controller (rev 03) ehci-pci; ehci_pci
Intel Corporation Wildcat Point-LP LPC Controller (rev 03) lpc-ich; lpc_ich
Intel Corporation Wildcat Point-LP SATA Controller [AHCI Mode] (rev 03) ahci
Intel Corporation Wildcat Point-LP SMBus Controller (rev 03) i801_smbus; i2c_i801
Intel Corporation Wildcat Point-LP Thermal Management Controller (rev 03)
Realtek Semiconductor Co., Ltd. RTS5227 PCI Express Card Reader (rev 01) rtsx_pci
Intel Corporation Wireless 7265 (rev 59) iwlwifi
USB (usb-devices/lsusb) Driver
Intel Corporation USB root hub hub
Validity Sensors Fingerprint Reader
Intel Corporation Bluetooth btusb
Chicony Electronics Integrated Camera uvcvideo


Device Working
Intel graphics Yes
Wireless network configuration Manual
Touchpad Manual
Trackpad Yes
Webcam Yes


Kernel version

The followin errors are encountred on boot since the version 4.10 of the kernel

Error parsing PCC subspaces from PCCT (bug report)

ACPI Error: Needed type [Reference], found [Integer]

Add loglevel=0 to your kernel parameter to hide these errors.

Intel ucode

Be sure to install intel ucode for ucode update on intel CPUs and regenerate your boot loader. See Microcode for details.

pacman -S intel-ucode


(Is this still applicable ? No flicker problem (tearing only) with recent linux-lts Feb 2018)

The Intel display is run with the i915 driver, which has become unstable in the 4.2+ series of kernels. Regrettably, this instability has found its way into the current linux-lts kernel (see this forum thread). A working fix is to downgrade your kernel to version 4.1.21-1, and wait for the problem to be fixed.

This was easy for me to do, because I had previously downloaded the package in /var/cache/pacman/pkg. All I needed to do was navigate to that directory as root and run pacman -U linux-lts-4.1.21-1-x86_64.pkg.tar.xz and it Just Worked. If you do not have the package already downloaded, you can find it in the Arch Linux Archive.

I also edited /etc/pacman.conf and added linux-lts and linux-lts-headers to my IgnorePkg line, so they would not be inadvertently upgraded when I do system updates.


You can get rid of video tearing by creating /etc/X11/xorg.conf.d/20-intel.conf and adding this:

Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option      "AccelMethod"  "uxa"

If symptoms persist try this also

Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option      "TearFree"    "true"


The T450s comes with two wireless card configurations: a Realtek chip that's run with the rtl8192ee driver, and an intel chip upgrade that I read somewhere didn't play well with Linux, so I chose the realtek driver.


The stock driver under the 4.x kernel is not reliable, frequently dropping connections and requiring to be re-set. One solution is to install this updated driver, which contains device-specific fixes and will ultimately be integrated into the kernel around version 4.7.

In order to build and install the new drivers, all that is required is to have your kernel headers installed-- meaning linux-headers or linux-lts-headers -- make sure the version of headers installed matches your currently installed kernel-- and then pull the git repository, make, and sudo make install. After a reboot you will be running the new, improved driver.

Note- this driver still has some problems for me: I have found that I have to modprobe -r rtl8192ee before suspend, and then modprobe rtl8192ee after suspend, in order to connect to some/most access points. However, the new driver no longer drops connections unexpectedly.


You can install xf86-input-libinput and see Libinput for configuration.


Make sure to install alsa-utils/ or that it is installed.

See ALSA#Set the default sound card to set the default sound card to Intel PCH (speakers and headphones).

options snd_hda_intel index=1,0

make sure to reboot after these changes.

Fingerprint Reader

I compiled libfprint-git from the AUR, although it is possible that the version from the repos might work. Then set up Fprint or Fingerprint-gui.

As of version 0.7.0-1, the fprintd package from Extra repo works out of the box (no need to compile it yourself).

Function Keys

All "special" keys either function or map to Xorg special key classes out of the box. Mappings are below:

Key Console Keycode XF86 Keysym Windows 7 Function Needs script
F1 113 XF86AudioMute Mute speakers No
F2 114 XF86AudioLowerVolume Decreases the speaker volume No
F3 115 XF86AudioRaiseVolume Increases the speaker volume No
F4 190 XF86AudioMicMute Mutes/unmutes microphone No
F5 224 XF86MonBrightnessDown Darkens display No
F6 225 XF86MonBrightnessUp Brightens display No
F7 227 XF86Display Switch between internal and external display No
F8 238 XF86WLAN Enable/disable wireless Yes
F9 171 XF86Tools Open "Control Panel" No
F10 217 XF86Search Open "Windows Search" No
F11 120 XF86LaunchA View open programs No
F12 144 XF86Explorer Open "Computer" No
Fn+4 142 XF86Sleep Enters sleep mode NO
Fn+p 119 Pause Pause Yes
Fn+s 56+99 Sys_Req SysReq Yes
Fn+K 70 Scroll_Lock Scroll Lock Yes
Fn+B 29+119 Break Break Yes
Fn+Spacebar NONE XF86Wakeup Adjusts keyboard backlight No

Note that there is a BIOS option to change the function keys so that F1 - F12 are the primary and the listed functions are only triggered by the "Fn" key.

Power Management

Be sure to install tlp or powertop.

sudo pacman -S tlp
sudo systemctl enable tlp.service
sudo systemctl start tlp.service

You can use tlp and powertop together (launch powertop as a service), but delete all the options on tlp and leave only the battery parameters

# Set to 0 to disable, 1 to enable TLP.

# Dirty page values (timeouts in secs).

# Battery charge thresholds (ThinkPad only, tp-smapi or acpi-call kernel module
# required). Charging starts when the remaining capacity falls below the
# START_CHARGE_TRESH value and stops when exceeding the STOP_CHARGE_TRESH value.
# Main / Internal battery (values in %)
# Ultrabay / Slice / Replaceable battery (values in %)

NB: with the version 4.17 of the kernel tlp should not be necessary anymore to set up the thresholds:


To enable power save mode on the audio:

options snd_hda_intel power_save=1

To decrease the consumption of the intel chipset add i915.enable_psr=1 to your kernel parameters (details here).

You can try to undervolt your system (look for intel undervolt). I only managed to undervolt the CPU (i7-5600U).


If you have an SSD installed, either add the discard option in the fstab for all partitions,

/dev/sda1       /boot   vfat    relatime,discard,errors=remount-ro 0 1
/dev/sda2       /       ext4    relatime,discard,errors=remount-ro 0 2
/sev/sda3       none    swap    sw,discard                         0 0

or use fstrim.

sudo systemctl enable fstrim.timer;
sudo systemctl start fstrim.timer


There are six LEDs. All work out of the box. See the Lenovo manual for location and functionality of LEDs.

Intel Rapid Start Technology (IRST)

The T450s has firmware support for IRST. This will only be available if the T450s has an SSD rather than a traditional spinning-disc drive. The 16GB M.2 cache SSD can also be used for the IRST partition.

Per Matthew Garrett,

"[t]he concept of IRST is pretty simple. There's a firmware mechanism for setting a sleep timeout. If you suspend your computer and this timeout expires, it'll resume. However, instead of handing control back to the OS, the firmware just copies the entire contents of RAM to a special partition and turns the computer off. Next time you hit the power button, the firmware dumps the partition contents back into RAM and resumes as if nothing had changed. This takes a few seconds longer than resume from S3 but is far faster than resume from hibernation since it starts the moment the system gets power."

More specifically:

"[t]he first thing to know about this feature is that it's entirely invisible unless your hard drive is set up correctly. There needs to be a partition that's at least the size of your system's physical RAM. For GPT systems, this needs to have a type GUID of D3BFE2DE-3DAF-11DF-BA-40-E3A556D89593. For MBR systems, you need a partition type of 0x84. If the firmware doesn't find an appropriate partition then the OS will get no indication that the firmware supports it."

If you are not wiping and repartitioning your disk entirely as you prepare your drive for Arch installation, merely retain the existing IRST partition. It should show up as an unformatted partition whose size is equal to that of the T450s's RAM.

If you are wiping and repartitioning your disk, then create an empty partition with a size equal to your T450s's RAM. Then set the flag for the partition to "irst" using parted or GParted.

Now if you leave your T450s suspended to RAM for a certain period of time (3 hours is the default in BIOS) it will automatically wake back up after the configured period, copy the contents of RAM to the IRST partition, and turn itself off. When you power the laptop back up, instead of the regular boot process, it will copy the contents of the partition to RAM and resume from where you left off.

Note: Depending on the size of you RAM and the speed of your SSD, the IRST hibernation process can take 20-60 seconds. The process is completed when the power LED stops blinking.

See also