Difference between revisions of "Lenovo ThinkPad X230"

From ArchWiki
Jump to navigation Jump to search
m
(TPM chip is impossible to own)
 
(51 intermediate revisions by 11 users not shown)
Line 1: Line 1:
 
[[Category:Lenovo]]
 
[[Category:Lenovo]]
 +
[[ja:Lenovo ThinkPad X230]]
 
{{Related articles start}}
 
{{Related articles start}}
{{Related|fprint}}
+
{{Related|Laptop}}
{{Related|TrackPoint}}
+
{{Related|ThinkPad docks}}
 
{{Related|HiDPI}}
 
{{Related|HiDPI}}
 
{{Related articles end}}
 
{{Related articles end}}
  
[http://www.lenovo.com/hk/en/productcatalog/pdf/X230-datasheet.pdf Lenovo ThinkPad X230]
+
Lenovo ThinkPad X230 [https://pcsupport.lenovo.com/en/en/products/laptops-and-netbooks/thinkpad-x-series-laptops/thinkpad-x230 official page], [https://psref.lenovo.com/syspool/Sys/PDF/withdrawnbook/ThinkPad_X230.pdf datasheet], [https://us.download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles_pdf/x230_x230i_hmm_en_0b48666_01.pdf hardware maintenance manual], [https://www.thinkwiki.org/wiki/Category:X230 ThinkWiki].
  
 
== Configuration ==
 
== Configuration ==
  
 
=== Kernel ===
 
=== Kernel ===
 
+
Enable Intel [[kernel mode setting]] driver:
 
{{hc|/etc/mkinitcpio.conf|2=<nowiki>
 
{{hc|/etc/mkinitcpio.conf|2=<nowiki>
 
MODULES="i915"
 
MODULES="i915"
Line 17: Line 18:
 
}}
 
}}
  
After saving the above files, make sure to regenerate your init ram image by the command {{ic|mkinitcpio -p linux}}, and follow the steps in [[kernel parameters]].
+
After saving the above files, make sure to regenerate your initram image by the command {{ic|mkinitcpio -p linux}}, and follow the steps in [[kernel parameters]].
  
 
=== Screen ===
 
=== Screen ===
  
X230 has IPS or TN screen with 125.37 DPI. Refer to [[HiDPI]] page for more information.
+
X230 has IPS or TN screen with 125.37 DPI. Refer to [[HiDPI]] page for more information. It can be set with command {{ic|xrandr --dpi 125.37}} using {{ic|[[Xinit#xinitrc|.xinitrc]]}}, {{ic|[[Xsession|.xsession]]}} or other autostarts.
 +
 
 +
=== Brightness ===
 +
 
 +
If you experience that your brightness setting is not restored on resume from suspend, then create config:
 +
 
 +
{{hc|/usr/share/X11/xorg.conf.d/20-intel.conf|
 +
Section "Device"
 +
Identifier "card0"
 +
Driver "intel"
 +
Option "Backlight" "intel_backlight"
 +
BusID "PCI:0:2:0"
 +
EndSection
 +
}}
 +
 
 +
=== Suspend to ram ===
 +
 
 +
There is an issue with system shutdown with power saving tools that cannot distinguish sys devices. You will need to add to the systemd shutdown trigger on this machine or else you'll get a system reboot when you shutdown the machine. Put this in /etc/rc.local.shutdown and update and enable its service, if not already.
 +
 
 +
{{hc|/etc/rc.local.shutdown|2=<nowiki>
 +
#!/bin/bash
 +
# /etc/rc.local.shutdown: Local shutdown script.
 +
# A script to act as a workaround for the bug in the runtime power management module, which causes thinkpad laptops to restart after shutting down.
 +
# Bus list for the runtime power management module.
 +
buslist="pci i2c usb"
 +
for bus in $buslist; do                                                           
 +
  for i in /sys/bus/$bus/devices/*/power/control; do                             
 +
    echo on > $i
 +
  done
 +
done
 +
</nowiki>
 +
}}
 +
 
 +
{{hc|/usr/lib/systemd/system/rc-local-shutdown.service|2=<nowiki>
 +
[Unit]
 +
Description=/etc/rc.local.shutdown Compatibility
 +
ConditionFileIsExecutable=/etc/rc.local.shutdown
 +
DefaultDependencies=no
 +
After=rc-local.service basic.target
 +
Before=shutdown.target
 +
 
 +
[Service]
 +
Type=oneshot
 +
ExecStart=/etc/rc.local.shutdown
 +
StandardInput=tty
 +
RemainAfterExit=yes
 +
 
 +
[Install]
 +
WantedBy=shutdown.target
 +
</nowiki>
 +
}}
 +
 
 +
=== UMTS Modem ===
 +
::''Main article: [[ThinkPad mobile Internet]]''
 +
 
 +
{{Warning|Official UEFI comes with whitelist of PCI boards (e.g. Wi-Fi and UMTS miniPCI cards). After installing unapproved PCI device boot will be interrupted with error: {{ic|1802: Unauthorized network card is plugged in - Power off and remove the miniPCI network card (0AF0/7201). System is halted.}}}}
 +
 
 +
Some models come with an integrated USB UMTS modem.
 +
 
 +
{{hc|$ lsusb -d 0bdb:1926|
 +
Bus 003 Device 004: ID 0bdb:1926 Ericsson Business Mobile Networks BV H5321 gw Mobile Broadband Driver}}
 +
 +
In order for it to work with [[NetworkManager]], you will need to install [https://www.archlinux.org/packages/?name=modemmanager ModemManager] from the official repositories.
 +
 
 +
For it to be recognized by ModemManager, you also need to set the kernel module option to:
 +
 
 +
{{hc|/etc/modprobe.d/umts-modem.conf|output=
 +
options cdc_ncm prefer_mbim=N
 +
}}
 +
 
 +
== Input devices ==
 +
 
 +
=== TrackPoint ===
 +
::''Main article: [[TrackPoint]]''
 +
Laptop equipped with combined pointing device called [https://thinkwiki.org/wiki/UltraNav UltraNav™]. It incorporates small touchpad, three hardware buttons and TrackPoint.
  
 
=== Touchpad ===
 
=== Touchpad ===
 +
{{Note|[[Touchpad Synaptics]] superseded by [[libinput]].}}
  
The original configuration renders the touchpad quite useless, as it behaves very jumpily. [https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/+bug/1042069/comments/5 Ubuntu Bugtracker] offers a solution for this issue. Add the following
+
The original configuration renders the touchpad quite useless, as it behaves very jumpily. [https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/+bug/1042069/comments/5 Ubuntu Bugtracker] offers a solution for this issue. Add the following:
  
 
{{hc|/etc/X11/xorg.conf.d/50-synaptics.conf|2=<nowiki>
 
{{hc|/etc/X11/xorg.conf.d/50-synaptics.conf|2=<nowiki>
Line 51: Line 127:
 
         Option "HorizHysteresis" "100"
 
         Option "HorizHysteresis" "100"
 
         Option "VertHysteresis" "100"
 
         Option "VertHysteresis" "100"
 +
        # fix touchpad scroll speed
 +
        Option "VertScrollDelta" "500"
 +
        Option "HorizScrollDelta" "500"
 
EndSection
 
EndSection
 
</nowiki>
 
</nowiki>
 
}}
 
}}
  
Setting e.g. the motion-acceleration value in dconf to 2.8 works nicely.
+
Setting e.g. the motion-acceleration value in ''dconf'' to 2.8 works nicely.
  
=== Backlight control keys ===
+
=== Keyboard backlight control keys ===
 +
{{Accuracy|Working out of the box now?}}
 +
<!-- On my device keyboard lit keys {{ic|Fn+Space}} controlled by UEFI and working without an OS. Can be switched off by the kernel though. -->
 +
{{Note| On most X230 models, backlight works by default without any issues. Use below only in case of any problems.}}
  
{{Note| On most X230 models, backlight works by default without any issues. Use below only in case of any problems.}}
+
Due to an issue with the firmware of several ThinkPads the backlight control keys ({{ic|Fn}} + {{ic|F8/F9}} on the X230) sometimes don't work correctly. Setting the brightness via e.g. the GNOME power control panel or altering the brightness value in ''sysfs'' is possible. The issue can be temporarily and partially fixed in adding the {{ic|<nowiki>acpi_osi="!Windows 2012"</nowiki>}} [[kernel parameter]]. The fix is partial in that only 8 steps are accessible via the keys. See [https://bugzilla.kernel.org/show_bug.cgi?id=51231] for details.
  
Due to an issue with the firmware of several ThinkPads the backlight control keys (fn + F8/F9 on the X230) don't work correctly. Setting the brightness via e.g. the GNOME power control panel or altering the brightness value in sysfs is possible.
+
Power saving [[kernel parameters]] in addition to graphics card power saving, are shown below. {{ic|<nowiki>acpi_backlight=vendor</nowiki>}} loads the vendor specific [[Backlight#ACPI]] driver (i.e. thinkpad_acpi) so the brightness keys (Fn + F8 and Fn + F9) work correctly.
  
The issue can be temporarily and partially fixed in adding the acpi_osi="!Windows 2012" [[kernel parameter]]. The fix is partial in that only 8 steps are accessible via the keys. See [https://bugzilla.kernel.org/show_bug.cgi?id=51231] for details.
+
Note that the {{ic|<nowiki>acpi_backlight=vendor</nowiki>}} kernel option also works with the standard Arch kernel (currently 3.7.10-1) and has the additional bonus that ({{ic|Fn+Space}}) controls the keyboard lighting.
  
=== Suspend to ram ===
+
=== Sound control buttons ===
  
There is an issue with system shutdown with power saving tools that cannot distinguish sys devices. You will need to add to the systemd shutdown trigger on this machine or else you'll get a system reboot when you shutdown the machine. Put this in /etc/rc.local.shutdown and update and enable its service, if not already.
+
Red LED mute indicators light up automatically, if corresponding channel ''muted'' in {{ic|[[Advanced Linux Sound Architecture|alsamixer]]}}. Easiest way to make buttons work is to install [[pulseaudio]] and it's plugin for your [[desktop environment]].
  
{{hc|/etc/rc.local.shutdown|2=<nowiki>
+
* [[GNOME]] - works out of the box
#!/bin/bash
+
* [[XFCE]] - install {{pkg|pulseaudio}} {{pkg|xfce4-pulseaudio-plugin}}, add plugin to panel and reboot. Additionally  {{pkg|xfce4-pulseaudio-plugin}} uses {{pkg|pavucontrol}} as mixer and {{pkg|xfce4-notifyd}} for sound level popups
# /etc/rc.local.shutdown: Local shutdown script.
+
* Handle ACPI events with [[acpid]] the [https://makandracards.com/makandra/47162-how-to-enable-the-thinkpad-microphone-mute-key-on-ubuntu-16-04 hard way]. Some functions like {{ic|thinkpad-mutemic}} implemented in {{AUR|thinkpad-scripts}}
# A script to act as a workaround for the bug in the runtime power management module, which causes thinkpad laptops to restart after shutting down.  
+
* See also [[ThinkPad: Mute button]]
# Bus list for the runtime power management module.
 
buslist="pci i2c"
 
for bus in $buslist; do                                                           
 
  for i in /sys/bus/$bus/devices/*/power/control; do                             
 
    echo on > $i
 
  done
 
done
 
</nowiki>
 
}}
 
  
{{hc|/usr/lib/systemd/system/rc-local-shutdown.service|2=<nowiki>
+
=== Fingerprint reader ===
[Unit]
+
Supported by [[fprint]] out of the box. Used with [[PAM]] for authentication, eliminating necessity of password input (logon, sudo). Though it's impossible to turn laptop on and boot Arch right into a [[desktop environment]] by just one finger swipe.
Description=/etc/rc.local.shutdown Compatibility
 
ConditionFileIsExecutable=/etc/rc.local.shutdown
 
DefaultDependencies=no
 
After=rc-local.service basic.target
 
Before=shutdown.target
 
  
[Service]
+
=== X230T (tablet version) ===
Type=oneshot
+
==== Wacom tablet input ====
ExecStart=/etc/rc.local.shutdown
+
Works out of the box with {{Pkg|xf86-input-wacom}}. See [[Wacom tablet]].
StandardInput=tty
 
RemainAfterExit=yes
 
</nowiki>
 
}}
 
  
=== Microphone ===
+
==== Multitouch screen for the X230t ====
 +
Some X230t models have a multitouch screen in addition to the Wacom tablet. Works out of the box with {{Pkg|xf86-input-libinput}}.
  
If the built-in microphone is not detected when using PulseAudio, the steps here may fix the issue: [[PulseAudio/Troubleshooting#Microphone not detected by PulseAudio]].
+
== OpenCL ==
 +
Thinkpad X230 based on Intel [https://en.wikipedia.org/wiki/Ivy_Bridge_(microarchitecture) Ivy Bridge] (3rd generation) platform which meets [[OpenCL]] 1.2 specification. Unfortunately GPU support in Linux is broken, so {{pkg|beignet}} and {{AUR|intel-opencl}} won't work. Use CPU-only {{AUR|intel-opencl-runtime}} instead.
  
== Power Saving ==
+
OpenCL computation performance differ between CPU and GPU, depending on task. In many cases GPU is preferable. For ''Core(TM) i5-3210M'' CPU, which incorporates ''HD Graphics 4000'' GPU:
  
Follow the main article: [[Power saving]]
+
* GPU {{ic|[[hashcat]] -m2500 -b -D 2 --force}} reports 3095 H/s (checked in Windows)
 +
* CPU {{ic|[[hashcat]] -m2500 -b -D 1}} reports only 2660 H/s, which is the same as no-OpenCL {{ic|aircrack-ng -S}}
  
Power saving [[kernel parameters]] in addition to graphics card power saving, are shown below. {{ic|<nowiki>acpi_backlight=vendor</nowiki>}} loads the vendor specific [[Backlight#ACPI]] driver (i.e. thinkpad_acpi) so the brightness keys (Fn + F8 and Fn + F9) work correctly.
+
In this example OpenCL don't give any advantage and better look for other options like [[Makepkg#Building_optimized_binaries|building native binary]] for your system.
  
Note that the {{ic|<nowiki>acpi_backlight=vendor</nowiki>}} kernel option also works with the standard Arch kernel (currently 3.7.10-1) and has the additional bonus that (Fn + spacebar) controls the keyboard lighting.
+
== Power Saving ==
 +
::''Main article: [[Power saving]]''
  
 
=== TLP ===
 
=== TLP ===
 
+
Users of [[TLP]] need to pay attention to a hardware bug according to which it is recommended to only use either the upper or lower charging threshold. The following configuration is recommended by the developer of TLP.[http://thinkpad-forum.de/threads/184510-elementary-OS-Thinkpad-X230-einrichten?p=1865345&viewfull=1#post1865345]
Users of [[TLP]] need to pay attention to a hardware bug according to which it is recommended to only use either the upper or lower charging threshold. The following configuration is recommended by the developer of TLP.[http://thinkpad-forum.de/threads/184510-elementary-OS-Thinkpad-X230-einrichten?p=1865345&viewfull=1#post1865345 [1]]  
 
  
 
{{hc|/etc/default/tlp|2=<nowiki>
 
{{hc|/etc/default/tlp|2=<nowiki>
Line 121: Line 188:
 
}}
 
}}
  
== x230T (tablet version) ==
+
=== Charge thresholds ===
 +
In order to prolong battery lifespan, especially if laptop always connected to AC power supply, it's possible to keep battery charge between 40-80 %. You can use {{pkg|tpacpi-bat}} (written in Perl) for [[tp_smapi#2nd option, tpacpi-bat|setting charge thresholds]]. This tool was superseded by {{ic|[https://linrunner.de/en/tlp/docs/tlp-faq.html natacpi]}}, which included in kernel 4.17 and supported by [[TLP]]. Though it's possible to change thresholds directly. Values will be stored in battery microcontroller and will survive reboot, but reset if you remove the battery.
  
=== Multitouch screen for the x230t (tablet version) ===
+
# echo 40 > /sys/class/power_supply/BAT0/charge_start_threshold
 +
# echo 80 > /sys/class/power_supply/BAT0/charge_stop_threshold
  
{{Note| Some x230t models have a multitouch screen in addition to the wacom tablet.}}
+
=== Fan control ===
  
Works out of the box with {{Pkg|xf86-input-libinput}}.
+
To optimize fan control, install and setup [[Fan_speed_control#ThinkPad_laptops|thinkfan]]. Then use the following configuration:
  
=== Wacom tablet input ===
+
{{hc|/etc/thinkfan.conf|output=
  
Works out of the box with {{Pkg|xf86-input-wacom}}. See [[Wacom Tablet]]
+
tp_fan /proc/acpi/ibm/fan
 +
hwmon /sys/class/thermal/thermal_zone0/temp
  
== Not Working ==
+
(0, 0,  60)
 +
(1, 53, 65)
 +
(2, 55, 66)
 +
(3, 57, 68)
 +
(4, 61, 70)
 +
(5, 64, 71)
 +
(7, 68, 32767)
 +
}}
 +
 
 +
== UEFI ==
 +
Laptop incorporates InsydeH2O® UEFI BIOS with classic text interface. It supports [[Unified Extensible Firmware Interface|UEFI]] with [[Secure Boot]], UEFI-CSM and Legacy BIOS modes.
 +
 
 +
=== Boot configuration ===
 +
UEFI boot options can be safely (no bricking) set with {{pkg|efibootmgr}} or [[Unified Extensible Firmware Interface#UEFI Shell|UEFI Shell]] v2 (checked with ''BIOS 2.77 (G2ETB7WW) EC 1.15''). Though you can delete ''any'' boot variable, so be careful!
 +
 
 +
X230 in UEFI-non-CSM mode installed with [[EFISTUB]] on [[Solid state drive|SSD disk]] boots into [[Display manager|display manager]] in less than 25 seconds. Small [[EFI system partition|ESP]] (100 MiB fat32) also supported.
  
* Microphone on-off key does not work out of the box
+
=== USB UEFI update ===
 +
{{Tip|There are unofficial firmware available, such as [https://doc.coreboot.org/mainboard/lenovo/xx30_series.html Coreboot] or Heads in order to remove hardware whitelists and provide trusted boot.}}
  
{{Note| It works out of the box with GNOME.}}
+
All official updates, including Windows utility, Bootable CD and documentation can be found [https://pcsupport.lenovo.com/gb/en/downloads/ds029187 here]. You can use {{AUR|geteltorito}} to create bootable USB images from the Bootable CD:
 +
 
 +
$ geteltorito.pl g2uj24us.iso > update.img
 +
# dd bs=512K if=update.img of=/dev/sdX
 +
 
 +
Insert USB stick, reboot and press {{ic|F12}}, choose your USB. Follow the instructions.
 +
 
 +
=== Trusted Platform Module ===
 +
Laptop has dedicated [[Trusted Platform Module|TPM]] 1.2 chip onboard[https://www.st.com/en/secure-mcus/st33tpm12lpc.html][https://trustedcomputinggroup.org/membership/certification/tpm-certified-products/]. It doesn't looks like it can be upgraded to TPM 2.0. Chip itself disabled by default sometimes, also owner clearing won't appear without ''Supervisor password'' set:
 +
 
 +
# Enter Thinkpad UEFI Setup by pressing {{ic|F1}}
 +
# Set ''Security > Password'' > ''Supervisor password''
 +
# Set ''Security > Security Chip > Security Chip [Active]''
 +
# Save settings by pressing F10 and reboot
 +
# '''Turn laptop off''', turn on and UEFI option ''Security > Security Chip > Clear Security Chip'' eventually will appear.
 +
 
 +
Process described in "ThinkPad X230 and X230i User Guide", ''Chapter 4. Security > Setting the security chip''.
 +
 
 +
== Known issues ==
 +
* There is a BIOS bug that gets in the way of the boot process with [[LUKS]] and full-disk encryption. The user is stuck at the "Loading initial ramdisk" step, and does not see a password prompt to unlock the encrypted device. You can actually enter your password at this step, and boot-up will continue. However, updating the BIOS will resolve this completely.
 +
* UEFI option to clear [[TPM]] not working. STM chip datasheet describes physical presence pin, which, probably, can be used as workaround.
  
 
== See also ==
 
== See also ==
 
 
* [https://gist.github.com/bassu/8478346 A Hacker's Ongoing Review for Lenovo ThinkPad X230]
 
* [https://gist.github.com/bassu/8478346 A Hacker's Ongoing Review for Lenovo ThinkPad X230]
 +
* [http://osresearch.net/Installing-Heads.html Installing "Heads" and using TPM]

Latest revision as of 12:34, 1 December 2019

Lenovo ThinkPad X230 official page, datasheet, hardware maintenance manual, ThinkWiki.

Configuration

Kernel

Enable Intel kernel mode setting driver:

/etc/mkinitcpio.conf
MODULES="i915"

After saving the above files, make sure to regenerate your initram image by the command mkinitcpio -p linux, and follow the steps in kernel parameters.

Screen

X230 has IPS or TN screen with 125.37 DPI. Refer to HiDPI page for more information. It can be set with command xrandr --dpi 125.37 using .xinitrc, .xsession or other autostarts.

Brightness

If you experience that your brightness setting is not restored on resume from suspend, then create config:

/usr/share/X11/xorg.conf.d/20-intel.conf
Section "Device"
Identifier "card0"
Driver "intel"
Option "Backlight" "intel_backlight"
BusID "PCI:0:2:0"
EndSection

Suspend to ram

There is an issue with system shutdown with power saving tools that cannot distinguish sys devices. You will need to add to the systemd shutdown trigger on this machine or else you'll get a system reboot when you shutdown the machine. Put this in /etc/rc.local.shutdown and update and enable its service, if not already.

/etc/rc.local.shutdown
#!/bin/bash
# /etc/rc.local.shutdown: Local shutdown script.
# A script to act as a workaround for the bug in the runtime power management module, which causes thinkpad laptops to restart after shutting down. 
# Bus list for the runtime power management module.
buslist="pci i2c usb"
for bus in $buslist; do                                                             
  for i in /sys/bus/$bus/devices/*/power/control; do                              
    echo on > $i
  done
done
/usr/lib/systemd/system/rc-local-shutdown.service
[Unit]
Description=/etc/rc.local.shutdown Compatibility
ConditionFileIsExecutable=/etc/rc.local.shutdown
DefaultDependencies=no
After=rc-local.service basic.target
Before=shutdown.target

[Service]
Type=oneshot
ExecStart=/etc/rc.local.shutdown
StandardInput=tty
RemainAfterExit=yes

[Install]
WantedBy=shutdown.target

UMTS Modem

Main article: ThinkPad mobile Internet
Warning: Official UEFI comes with whitelist of PCI boards (e.g. Wi-Fi and UMTS miniPCI cards). After installing unapproved PCI device boot will be interrupted with error: 1802: Unauthorized network card is plugged in - Power off and remove the miniPCI network card (0AF0/7201). System is halted.

Some models come with an integrated USB UMTS modem.

$ lsusb -d 0bdb:1926
Bus 003 Device 004: ID 0bdb:1926 Ericsson Business Mobile Networks BV H5321 gw Mobile Broadband Driver

In order for it to work with NetworkManager, you will need to install ModemManager from the official repositories.

For it to be recognized by ModemManager, you also need to set the kernel module option to:

/etc/modprobe.d/umts-modem.conf
options cdc_ncm prefer_mbim=N

Input devices

TrackPoint

Main article: TrackPoint

Laptop equipped with combined pointing device called UltraNav™. It incorporates small touchpad, three hardware buttons and TrackPoint.

Touchpad

Note: Touchpad Synaptics superseded by libinput.

The original configuration renders the touchpad quite useless, as it behaves very jumpily. Ubuntu Bugtracker offers a solution for this issue. Add the following:

/etc/X11/xorg.conf.d/50-synaptics.conf
Section "InputClass"
        Identifier "touchpad"
        MatchProduct "SynPS/2 Synaptics TouchPad"
        # MatchTag "lenovo_x230_all"
        Driver "synaptics"
        # fix touchpad resolution
        Option "VertResolution" "100"
        Option "HorizResolution" "65"
        # disable synaptics driver pointer acceleration
        Option "MinSpeed" "1"
        Option "MaxSpeed" "1"
        # tweak the X-server pointer acceleration
        Option "AccelerationProfile" "2"
        Option "AdaptiveDeceleration" "16"
        Option "ConstantDeceleration" "16"
        Option "VelocityScale" "20"
        Option "AccelerationNumerator" "30"
        Option "AccelerationDenominator" "10"
        Option "AccelerationThreshold" "10"
	# Disable two fingers right mouse click
	Option "TapButton2" "0"
        Option "HorizHysteresis" "100"
        Option "VertHysteresis" "100"
        # fix touchpad scroll speed
        Option "VertScrollDelta" "500"
        Option "HorizScrollDelta" "500"
EndSection

Setting e.g. the motion-acceleration value in dconf to 2.8 works nicely.

Keyboard backlight control keys

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: Working out of the box now? (Discuss in Talk:Lenovo ThinkPad X230#)
Note: On most X230 models, backlight works by default without any issues. Use below only in case of any problems.

Due to an issue with the firmware of several ThinkPads the backlight control keys (Fn + F8/F9 on the X230) sometimes don't work correctly. Setting the brightness via e.g. the GNOME power control panel or altering the brightness value in sysfs is possible. The issue can be temporarily and partially fixed in adding the acpi_osi="!Windows 2012" kernel parameter. The fix is partial in that only 8 steps are accessible via the keys. See [1] for details.

Power saving kernel parameters in addition to graphics card power saving, are shown below. acpi_backlight=vendor loads the vendor specific Backlight#ACPI driver (i.e. thinkpad_acpi) so the brightness keys (Fn + F8 and Fn + F9) work correctly.

Note that the acpi_backlight=vendor kernel option also works with the standard Arch kernel (currently 3.7.10-1) and has the additional bonus that (Fn+Space) controls the keyboard lighting.

Sound control buttons

Red LED mute indicators light up automatically, if corresponding channel muted in alsamixer. Easiest way to make buttons work is to install pulseaudio and it's plugin for your desktop environment.

Fingerprint reader

Supported by fprint out of the box. Used with PAM for authentication, eliminating necessity of password input (logon, sudo). Though it's impossible to turn laptop on and boot Arch right into a desktop environment by just one finger swipe.

X230T (tablet version)

Wacom tablet input

Works out of the box with xf86-input-wacom. See Wacom tablet.

Multitouch screen for the X230t

Some X230t models have a multitouch screen in addition to the Wacom tablet. Works out of the box with xf86-input-libinput.

OpenCL

Thinkpad X230 based on Intel Ivy Bridge (3rd generation) platform which meets OpenCL 1.2 specification. Unfortunately GPU support in Linux is broken, so beignet and intel-openclAUR won't work. Use CPU-only intel-opencl-runtimeAUR instead.

OpenCL computation performance differ between CPU and GPU, depending on task. In many cases GPU is preferable. For Core(TM) i5-3210M CPU, which incorporates HD Graphics 4000 GPU:

  • GPU hashcat -m2500 -b -D 2 --force reports 3095 H/s (checked in Windows)
  • CPU hashcat -m2500 -b -D 1 reports only 2660 H/s, which is the same as no-OpenCL aircrack-ng -S

In this example OpenCL don't give any advantage and better look for other options like building native binary for your system.

Power Saving

Main article: Power saving

TLP

Users of TLP need to pay attention to a hardware bug according to which it is recommended to only use either the upper or lower charging threshold. The following configuration is recommended by the developer of TLP.[2]

/etc/default/tlp
START_CHARGE_THRESH_BAT0=67
STOP_CHARGE_THRESH_BAT0=100

Charge thresholds

In order to prolong battery lifespan, especially if laptop always connected to AC power supply, it's possible to keep battery charge between 40-80 %. You can use tpacpi-bat (written in Perl) for setting charge thresholds. This tool was superseded by natacpi, which included in kernel 4.17 and supported by TLP. Though it's possible to change thresholds directly. Values will be stored in battery microcontroller and will survive reboot, but reset if you remove the battery.

# echo 40 > /sys/class/power_supply/BAT0/charge_start_threshold
# echo 80 > /sys/class/power_supply/BAT0/charge_stop_threshold

Fan control

To optimize fan control, install and setup thinkfan. Then use the following configuration:

/etc/thinkfan.conf
tp_fan /proc/acpi/ibm/fan
hwmon /sys/class/thermal/thermal_zone0/temp

(0, 0,  60)
(1, 53, 65)
(2, 55, 66)
(3, 57, 68)
(4, 61, 70)
(5, 64, 71)
(7, 68, 32767)

UEFI

Laptop incorporates InsydeH2O® UEFI BIOS with classic text interface. It supports UEFI with Secure Boot, UEFI-CSM and Legacy BIOS modes.

Boot configuration

UEFI boot options can be safely (no bricking) set with efibootmgr or UEFI Shell v2 (checked with BIOS 2.77 (G2ETB7WW) EC 1.15). Though you can delete any boot variable, so be careful!

X230 in UEFI-non-CSM mode installed with EFISTUB on SSD disk boots into display manager in less than 25 seconds. Small ESP (100 MiB fat32) also supported.

USB UEFI update

Tip: There are unofficial firmware available, such as Coreboot or Heads in order to remove hardware whitelists and provide trusted boot.

All official updates, including Windows utility, Bootable CD and documentation can be found here. You can use geteltoritoAUR to create bootable USB images from the Bootable CD:

$ geteltorito.pl g2uj24us.iso > update.img 
# dd bs=512K if=update.img of=/dev/sdX

Insert USB stick, reboot and press F12, choose your USB. Follow the instructions.

Trusted Platform Module

Laptop has dedicated TPM 1.2 chip onboard[3][4]. It doesn't looks like it can be upgraded to TPM 2.0. Chip itself disabled by default sometimes, also owner clearing won't appear without Supervisor password set:

  1. Enter Thinkpad UEFI Setup by pressing F1
  2. Set Security > Password > Supervisor password
  3. Set Security > Security Chip > Security Chip [Active]
  4. Save settings by pressing F10 and reboot
  5. Turn laptop off, turn on and UEFI option Security > Security Chip > Clear Security Chip eventually will appear.

Process described in "ThinkPad X230 and X230i User Guide", Chapter 4. Security > Setting the security chip.

Known issues

  • There is a BIOS bug that gets in the way of the boot process with LUKS and full-disk encryption. The user is stuck at the "Loading initial ramdisk" step, and does not see a password prompt to unlock the encrypted device. You can actually enter your password at this step, and boot-up will continue. However, updating the BIOS will resolve this completely.
  • UEFI option to clear TPM not working. STM chip datasheet describes physical presence pin, which, probably, can be used as workaround.

See also