Difference between revisions of "Lenovo ThinkPad X230"

From ArchWiki
Jump to: navigation, search
(Cleaned sleep.sh a bit)
(Screen: nothing new here, refer to Intel article)
 
(98 intermediate revisions by 23 users not shown)
Line 1: Line 1:
 
[[Category:Lenovo]]
 
[[Category:Lenovo]]
{{Article summary start}}
+
{{Related articles start}}
{{Article summary text|Lenovo Thinkpad X230's basic test setup and configuration. It is more of a review!
+
{{Related|fprint}}
<pre style="font-size:8px !important;">
+
{{Related|TrackPoint}}
              +               
+
{{Related|HiDPI}}
              #               
+
{{Related articles end}}
              ###              Test Setup Configuration
+
            #####             
+
            ######           
+
            ; #####;     
+
          +##.#####           
+
          +##########          Distro: Arch Linux
+
        #############;        Kernel: 3.7.1-3-ck
+
        ###############+        Uptime: 12 day, 6:49
+
      #######  #######        Window Manager: Xfwm
+
    .######;    ;###;`".      Desktop Environment: Xfce
+
    .#######;    ;#####.      Shell: /bin/bash
+
    #########.  .########`    Terminal: xterm
+
  ######'          '######    Packages: 1048
+
  ;####                ####;  CPU: i5-3210M CPU @ 2.50GHz
+
  ##'                    '##  RAM: 1402 MB / 3676 MB
+
#'                        `#  Disk: 6G / 103G
+
</pre>
+
}}
+
{{Article summary end}}
+
 
+
 
+
Lenovo ThinkPad X230 comes off with a wide range of available configurations. Since Lenovo's acquisition of ThinkPad brand from IBM, it has received lots of negative critics for not maintaining the original quality and compromising the brand itself. Regardless, ThinkPad still is one of the first preferences for many geeks, students (mainly due to student discounts) and Linux users. It is the standard option available in Lenovo's X Series under 12-13 inches display category.
+
=== Review ===
+
Few things that are not liked:
+
* The build "looks like" fairly cheap. It seems to be okay but not something extra-ordinary. Thinkpads are known for sturdiness and ruggedness; X230 is also but there is a 'plastic' feel.
+
* The color at the bottom of wrist pad started to fade at small places cause of scratches in normal use - by placing it on hard surfaces like raw wood and marble.
+
* X230 has a new keyboard. I have no complains about it except that of function keys. They are raised few millimeters higher than other keys and one can willingly manage to peel them off cause of their half-open bottoms.
+
* [[Wikipedia:Touchpad|Touch pad]] is totally useless. It is small. Though the cursor movement works but not the buttons because the [[Wikipedia:Touchpad|touch pad]] itself is one big pushable button. Its designers perhaps struggled with  space availability due to [[Wikipedia:Trackpoint|Trackpoint]] buttons leaving very less space for the touch pad. For [[Wikipedia:Trackpoint|Trackpoint]] users and fans, it may not be much of a deal breaker as the [[Wikipedia:Trackpoint|Trackpoint]] is more productive for them.
+
* There are some parts that are not rigid, give away a feeling that they might not be well manufactured and are press-able -- like area under Thinkpad logo on top lid and hollow express card slot.
+
* The audio is not that loud for its tiny speakers. I carry SoundBlaster headphones anyway.
+
* Smaller resolution of 1366x768. Not that of an issue for me because smaller screen size of 12.5 inches still gives some good working space resolution but I could make use of more if it was 1080p or higher. But again, it still seems to be a standard screen resolution from other vendors as well, currently!
+
 
+
  
Pros:
+
[http://www.lenovo.com/hk/en/productcatalog/pdf/X230-datasheet.pdf Lenovo ThinkPad X230]
* Steel hinges that hold the top lid. Eases the lid movement.
+
* Of course, the 180 degrees bending LCD.
+
* Crunchy IPS display.
+
* [[Wikipedia:TrackPoint|TrackPoint]] -- the pointing stick.
+
* Island-style keys give a grip for touch typing.
+
* Good inner chassis can be found if you disassemble this laptop.
+
* Ambient system temperatures and the uptime with Arch!
+
  
=== Hardware ===
+
== Configuration ==
Below is the short list for this setup. ''After-market RAMs and SSD were bought'' because Lenovo is apparently charging a lot for these.
+
==== Tested Configuration ====
+
{| class="wikitable sortable"
+
! Feature !! Configuration
+
|-
+
|System||X230 2306CTO
+
|-
+
|CPU||Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
+
|-
+
|Graphics||Intel HD 4000 - Ivy Bridge
+
|-
+
|Ram||3.5GB (Kingston)
+
|-
+
|Disk||Crucial M4 120GB SSD
+
|-
+
|Display||12.5" IPS
+
|-
+
|Wireless||2x2 Centrino Wireless-N 2200
+
|-
+
|Built-in Battery||9 Cell
+
|-
+
|Additional Plugable Battery||6 Cell 19+
+
|-
+
|Backlit Keyboard||No
+
|-
+
|ThinkLight||Yes
+
|-
+
|Fingerprint Scanner||Yes
+
|-
+
|Bluetooth||Yes
+
|-
+
|Cam||Yes
+
|}
+
  
==== Compatibility ====
+
=== Kernel ===
{{Tip| A closed-source pre-compiled biometric device driver emerged at [http://volker.de/2012/12/fingerprint-gui-und-das-thinkpad-t430s/ volker.de], reported by [https://bbs.archlinux.org/viewtopic.php?pid&#61;1214579#p1214579 Warnaud], successfully tested and found to be functioning by [https://bbs.archlinux.org/viewtopic.php?pid&#61;1214874#p1214874 Bassu].}}
+
Everything works fine out-of-box except the biometric / fingerprint scanner cause of missing driver. X230 comes with a newer model of chip from Upek. Its manufacturer Authentec was contacted and we found that they only support Windows operating system. So for now, the Upek model with PCIE ID 147e:2020 or newer will remain unsupported in Linux until someone writes an open source driver.
+
  
=== System Configuration ===
 
==== Systemd ====
 
Configured as usual with readahead and the below services.
 
* NetworkManager
 
* cups
 
* slim
 
* sshd
 
* syslog-ng
 
* vnstat
 
* cronie
 
* atd
 
Boot time was as roughly ~4-5 seconds.
 
==== Kernel ====
 
{{Note|You may want to run 'linux-ck' instead of the default kernel to conserve power and to fix iwlwifi issue with system sleep and wakeup. See power saving section below}}
 
If you really want to cut power then neither the stock kernel nor the Arch supplied kernel is optimized to run on any laptop efficiently. Try the patched kernels like linux-ck or linux-pf instead.
 
 
{{hc|/etc/mkinitcpio.conf|2=<nowiki>
 
{{hc|/etc/mkinitcpio.conf|2=<nowiki>
 
MODULES="i915"
 
MODULES="i915"
BINARIES="badblocks"
 
FILES="/etc/modprobe.d/modprobe.conf"
 
HOOKS="base udev autodetect block filesystems usbinput fsck plymouth"
 
 
</nowiki>
 
</nowiki>
 
}}
 
}}
{{hc|/etc/modprobe.d/modprobe.conf|2=<nowiki>
 
options i915 i915_enable_rc6=1 i915_enable_fbc=1 lvds_downclock=1
 
options iwlwifi 11n_disable=1
 
</nowiki>
 
}}
 
The {{ic|badblocks}} binary helps fix logical bad blocks if detected by fsck during system startup. First line in modprobe.conf file enables different Intel HD power saving options. To see what each of the parameters does, issue a command {{ic|modinfo i915}}. The second line disables the wifi N mode as Intel wireless driver suffers connection loss due to possible bugs. You can comment on this line if you want to transfer data at wireless N speeds. After saving the above files, make sure to regenerate your init ram image by command {{ic|mkinitcpio -p linux && mkinitcpio -p linux-ck}}.
 
  
==== TrackPoint ====
+
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]].
Pretty much self-explanatory.
+
 
{{hc|/etc/X11/xorg.conf.d/20-thinkpad.conf|2=<nowiki>
+
=== Screen ===
 +
 
 +
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 .xinitrc or other autostarts.
 +
 
 +
See [[Intel]] for driver choice.
 +
 
 +
=== Touchpad ===
 +
 
 +
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>
 
Section "InputClass"
 
Section "InputClass"
    Identifier "Trackpoint Wheel Emulation"
+
        Identifier "touchpad"
    MatchProduct     "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device"
+
        MatchProduct "SynPS/2 Synaptics TouchPad"
    MatchDevicePath     "/dev/input/event*"
+
        # MatchTag "lenovo_x230_all"
    Option     "EmulateWheel"       "true"
+
        Driver "synaptics"
    Option     "EmulateWheelButton" "2"
+
        # fix touchpad resolution
    Option     "Emulate3Buttons"   "false"
+
        Option "VertResolution" "100"
    Option     "XAxisMapping"   "6 7"
+
        Option "HorizResolution" "65"
    Option     "YAxisMapping"       "4 5"
+
        # 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"
 
EndSection
 
EndSection
 
</nowiki>
 
</nowiki>
 
}}
 
}}
  
==== Power Saving ====
+
Setting e.g. the motion-acceleration value in dconf to 2.8 works nicely.
Use [[Powerdown]] to save power. On this setup, it gave 14+ hours on a 9 cell battery and 6+ hours on plugable 6 cell external battery, with normal usage of cmus, firefox and thunderbird.
+
Power saving kernel parameters in addition to graphics card power saving, are as under.
+
{{hc|grep GRUB_CMDLINE /etc/default/grub|2=<nowiki>
+
GRUB_CMDLINE_LINUX_DEFAULT="quiet ipv6.disable=1 elevator=bfq"
+
GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd pcie_aspm=force acpi_backlight=vendor"
+
</nowiki>
+
}}
+
The parameter {{ic|<nowiki>elevator=bfq</nowiki>}} enables the [[Wikipedia:Brain Fuck Scheduler|Brain Fuck Scheduler]] written by [[Wikipedia:Con Kolivas|Con Kolivas]], part of [[Linux-ck]] and [[Linux-pf]] kernel forks. {{ic|<nowiki>pcie_aspm=force</nowiki>}} forcefully enables the [[Laptop#PCI-e_ASPM|PCIE Active State Power Management]] and {{ic|<nowiki>apci_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. After editing the grub file, make sure to regenerate your grub configuration by command {{ic|grub-mkconfig -o /boot/grub/grub.cfg}}.
+
  
Note that the {{ic|<nowiki>apci_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.
+
=== Backlight control keys ===
  
==== Suspension ====
+
{{Note| On most X230 models, backlight works by default without any issues. Use below only in case of any problems.}}
{{Warning|If you suspend your system quite often, it is inevitable that you will stumble upon a wireless driver iwlwifi bug with errors 'fifo queues full' in dmesg. It is caused by weird PCIEM power control behaviors and is inhibited in all default kernels (as of writing 3.7.1-3). The only fix is to either enable PREEMPT & BFS with custom compiled kernel or use an optimized kernel like '''[[Linux-ck]]''' as reported by forum user [[User:Bassu|Bassu]]. Default kernels are not suitable for power-conservation anyway. Check https://bbs.archlinux.org/viewtopic.php?pid&#61;1209357 for details.}}
+
Sleep/suspension and unsuspension can be easily managed by systemd without setting it up in Desktop Environment applet or pm-utils. But there are some modules that must be loaded off and on every time the system is put to sleep or is awaken. There's also a need to kill wpa_supplicant by adding {{ic|<nowiki>systemctl restart wpa_supplicant.service</nowiki>}} in below {{ic|<nowiki>sleep.sh</nowiki>}} file. And it is quite fast with systemd anyway.
+
  
{{hc|/usr/lib/systemd/system-sleep/sleep.sh|2=<nowiki>
+
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.
#!/bin/bash
+
if [ "$1" = "pre" ]; then
+
killall -9 wpa_supplicant #nm-applet bug's workaround
+
fi
+
  
if [ "$1" = "post" ]; then
+
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.
        /sbin/modprobe -rvf iwldvm
+
        /sbin/modprobe -rvf iwlwifi
+
/sbin/modprobe -v iwldvm
+
/sbin/modprobe -v iwlwifi
+
  
fi
+
=== 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.
  
</nowiki>
 
}}
 
Put vboxdrv in it too, if you use VirtualBox.
 
There is also 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>
 
{{hc|/etc/rc.local.shutdown|2=<nowiki>
 
#!/bin/bash
 
#!/bin/bash
Line 194: Line 100:
 
</nowiki>
 
</nowiki>
 
}}
 
}}
 +
 +
== Power Saving ==
 +
 +
Follow the main article: [[Power saving]]
 +
 +
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.
 +
 +
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.
 +
 +
=== 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 [1]]
 +
 +
{{hc|/etc/default/tlp|2=<nowiki>
 +
START_CHARGE_THRESH_BAT0=67
 +
STOP_CHARGE_THRESH_BAT0=100
 +
</nowiki>
 +
}}
 +
 +
== x230T (tablet version) ==
 +
 +
=== Multitouch screen for the x230t (tablet version) ===
 +
 +
{{Note| Some x230t models have a multitouch screen in addition to the wacom tablet.}}
 +
 +
Works out of the box with {{Pkg|xf86-input-libinput}}.
 +
 +
=== Wacom tablet input ===
 +
 +
Works out of the box with {{Pkg|xf86-input-wacom}}. See [[Wacom Tablet]]
 +
 +
== Not Working ==
 +
 +
* Microphone on-off key does not work out of the box
 +
 +
{{Note| It works out of the box with GNOME.}}
 +
 +
== See also ==
 +
 +
* [https://gist.github.com/bassu/8478346 A Hacker's Ongoing Review for Lenovo ThinkPad X230]

Latest revision as of 01:09, 4 August 2016

Related articles

Lenovo ThinkPad X230

Configuration

Kernel

/etc/mkinitcpio.conf
MODULES="i915"

After saving the above files, make sure to regenerate your init ram 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 or other autostarts.

See Intel for driver choice.

Touchpad

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"
EndSection

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

Backlight control keys

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) 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.

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"
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

Power Saving

Follow the main article: Power saving

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 + spacebar) controls the keyboard lighting.

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.[1]

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

x230T (tablet version)

Multitouch screen for the x230t (tablet version)

Note: Some x230t models have a multitouch screen in addition to the wacom tablet.

Works out of the box with xf86-input-libinput.

Wacom tablet input

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

Not Working

  • Microphone on-off key does not work out of the box
Note: It works out of the box with GNOME.

See also