Difference between revisions of "Lenovo ThinkPad Helix"

From ArchWiki
Jump to: navigation, search
(Ambient light sensor)
(update Pkg/AUR templates)
(Tag: wiki-scripts)
 
(24 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
[[Category:Lenovo]]
 
[[Category:Lenovo]]
== Model description ==
+
{| class="wikitable"
 +
|+ Hardware Information
 +
! Form Factor
 +
| Tablet/Ultrabook Convertible (detachable keyboard dock)
 +
|-
 +
! Display
 +
| 11.6" 1920x1080 LCD with Capacitive and Pen Digitizers
 +
|-
 +
! CPU
 +
| 3rd Generation (Ivy Bridge) Core i5-3427U or i7-3667U
 +
|-
 +
! RAM
 +
| 4GiB (i5) or 8GiB (i7) DDR3L RAM (dependent upon CPU)
 +
|-
 +
! Storage
 +
| 128/160/256GB mSATA SSD
 +
|-
 +
! WiFi
 +
| Intel Centrino Advanced-N 6205S mPCI WLAN
 +
|-
 +
! Bluetooth
 +
| Broadcom BCM20702 Bluetooth 4.0 (USB connected)
 +
|-
 +
! Camera
 +
| 5MP Rear and 2MP Front (also USB)
 +
|}
  
Lenovo ThinkPad Helix, 3rd Generation Core i5/i7
+
== Installation ==
This model comes without optical drive,.
+
Has UEFI BIOS with BIOS-legacy fallback mode.
+
Has Windows 8 pre-installed.
+
  
== Installation method ==
+
{{Note|As this model includes no physical recovery media, it's highly recommended to create a Windows reinstallation flash drive just in case using the recovery media creation tool included with your preinstalled Windows system.}}
 
+
{{Note|If you'd like to create Windows recovery flash drive, do it before Arch installation with the help of autorun located at recovery partition, from your installed Windows system.}}
+
  
 
Due to the fact that there is no optical drive, you need to [[USB Installation Media|install Arch from USB stick]].
 
Due to the fact that there is no optical drive, you need to [[USB Installation Media|install Arch from USB stick]].
  
=== Legacy-BIOS ===
+
The Arch install media will happily boot under UEFI, so it is recommended to disable legacy boot in the system setup utility. If legacy boot is needed for some reason, it does work fine as well.
 +
 
 +
Booting using [[Systemd-boot]] works perfectly. Again, if legacy boot is needed, [[GRUB]] is perfectly functional as well.
 +
 
 +
== Hardware Configuration ==
 +
 
 +
To fully support all hardware in X, one needs to ensure that the following driver packages are installed:
 +
 
 +
*{{Pkg|xf86-input-synaptics}} (for the clickpad)
 +
*{{Pkg|xf86-input-wacom}} (for the digitizers)
 +
*{{Pkg|xf86-video-intel}} (for the GPU)
 +
*{{Aur|iio-sensor-proxy}} (accelerometer/gyroscope, ambient light sensor, digital campass)
 +
 
 +
=== Bluetooth ===
 +
 
 +
If the Broadcom USB device isn't showing up, you likely need to turn it on with {{ic|echo 1 > /sys/devices/platform/thinkpad_acpi/rfkill/rfkill0/state}}
 +
 
 +
=== Digitizers ===
 +
 
 +
The Lenovo Helix comes with the following input devices (the ids may not be the same on your system):
 +
 
 +
$ xinput list
 +
⎡ Virtual core pointer                    id=2 [master pointer  (3)]
 +
⎜  ↳ Virtual core XTEST pointer              id=4 [slave  pointer  (2)]
 +
⎜  ↳ Wacom ISDv4 EC Pen stylus              id=15 [slave  pointer  (2)]
 +
⎜  ↳ Atmel Atmel maXTouch Digitizer          id=16 [slave  pointer  (2)]
 +
⎜  ↳ SynPS/2 Synaptics TouchPad              id=18 [slave  pointer  (2)]
 +
⎜  ↳ TPPS/2 IBM TrackPoint                  id=19 [slave  pointer  (2)]
 +
⎜  ↳ Wacom ISDv4 EC Pen eraser              id=21 [slave  pointer  (2)]
 +
 
 +
A Wacom USB device recognized by the {{Pkg|xf86-input-wacom}} driver will create multiple X input devices from a single kernel device.  In the Lenovo Helix's case, three such X input devices are created when properly configured:
 +
 
 +
* Wacom ISDv4 EC Pen stylus
 +
* Wacom ISDv4 EC Pen eraser
 +
* Atmel Atmel maXTouch Digitizer
 +
 
 +
The '''Wacom ISDv4 EC Pen stylus''' xinput device is recognized by the {{Pkg|xf86-input-wacom}} driver out of the box.  However, additional [[Udev]] and [[Xorg]] configuration is required to recognize the '''Atmel Atmel maXTouch Digitizer''' touchscreen device as well as '''Wacom ISDv4 EC Pen eraser''' input if using a pen with an eraser function.
 +
 
 +
==== Udev Configuration ====
 +
 
 +
With an up-to-date Arch install, install the following packages:
 +
 
 +
*{{Pkg|libwacom}}
 +
*{{AUR|wacom-udev}}{{Broken package link|{{aur-mirror|wacom-udev}}}}
 +
 
 +
The {{AUR|wacom-udev}}{{Broken package link|{{aur-mirror|wacom-udev}}}} package installs the additional [[Udev]] rules.  The {{Pkg|libwacom}} package is suggested by some graphics applications to see the additional inputs.
 +
 
 +
[[Udev]] should automatically detect the changes if already running.  But, you may want to reboot your system to verify the changes stick.
 +
 
 +
Additionally, you may want to read the [[Wacom Tablet#Dynamic with udev]] section to ensure the two wacom input devices are found.  On this Helix system, it looks like this:
 +
 
 +
$ ls -l /dev/input/wacom*
 +
lrwxrwxrwx 1 root root 6 Jan 20 15:32 /dev/input/wacom -> event5
 +
lrwxrwxrwx 1 root root 6 Jan 20 15:32 /dev/input/wacom- -> event5
 +
 
 +
These two inputs are the pen and eraser, respectfully.
 +
 
 +
You can also see if the touchscreen was detected properly:
 +
 
 +
$ ls -l /dev/input/tablet-*
 +
lrwxrwxrwx 1 root root      6 Jan 20 15:32 tablet-tpc-ec- -> event5
  
This procedure is far less involved then UEFI and works perfectly.
+
With these three inputs, you can continue to the next section to configure Xorg.
  
In order to turn off UEFI booting you will need to boot into your BIOS and change the boot mode to Legacy. Afterward, follow the [[Beginner's Guide]] for standard installation instructions.
+
==== Xorg Configuration ====
  
=== UEFI ===
+
Next, you'll need to tell [[Xorg]] to use the new inputs.  The {{Pkg|xf86-input-wacom}} driver package has an up-to-date list of devices that the Helix has.  But, the package does not install the updated list by default.  You'll need to link it for Xorg to see them:
  
Installation from UEFI bootable USB works with the default bootloader, so rEFInd is unnecessary. In the BIOS under Startup, set "UEFI/Legacy Boot" to UEFI only.  
+
# ln -s /usr/share/X11/xorg.conf.d/50-wacom.conf /etc/X11/xorg.conf.d/50-wacom.conf
The default partition table (and Windows installation) uses MBR. For UEFI, reformat the disk as GPT.
+
  
Booting using an [[UEFI Bootloaders#Using efibootmgr entry|efibootmgr entry]] works well. The warnings about incompatibility and embedding arguments to do not apply.
+
Once done with all the above, reboot and you verify {{ic|xinput list}} looks the same as the above.
  
== Hardware ==
+
==== Touchscreen / Wacom Tips & Tricks ====
  
Almost everything works out of the box except for the wacom screen due to the digitizer; the helix uses the Atmel Atmel maXTouch Digitizer. although this isn't a wacom digitizer it does work with the wacom drivers, you just have to tell it to.
+
If you find yourself frustrated by the capacitive digitizer while trying to use the pen, there are a few options as outlined below that can help.
  
Make sure to install {{ic|xf86-input-wacom}}
+
===== thinkpad-helix-utils: Toggle Touch =====
  
=== Wacom ===
+
The {{AUR|thinkpad-helix-utils}} package contains a script located at {{ic|/usr/bin/helix-toggle-touch}} that will toggle the capacitive digitizer on and off with a simple command using Xorg's '''xinput''' function.  It also installs a {{ic|desktop}} file called '''Toggle Touch''' that can be used to toggle xinput on and off with the pen.
  
Make sure you check that the screen does in fact use the Atmel digitizer with {{ic|xinput}} or {{ic|lsusb}} then update the xorg configuration:
+
Once activated, it disables the touchscreen xinput device until it is ran again to re-activate it.
  
{{hc|/etc/X11/xorg.conf.d/50-wacom.conf|
+
===== xnohands =====
Section "InputClass"
+
    Identifier "Wacom class"
+
    MatchProduct "Wacom|WACOM|Hanwang|PTK-540WL|Atmel"
+
    MatchDevicePath "/dev/input/event*"
+
    Driver "wacom"
+
EndSection
+
  
Section "InputClass"
+
Another option that also uses Xorg's '''xinput''' is [http://sourceforge.net/projects/xournal/files/xnohands/ xnohands].  This utility disables the touch device in a system when a stylus is detected (either pen or eraser) and re-enables the touchscreen once then stylus is pulled away from the screen.  It does this by listening to the digitizer's "presence" event, which the Helix's Wacom ISDv4 EC input devices support.  You'll need to download and extract it.  Follow the README for instructions as it outlines how to set it up.
    Identifier "Wacom serial class"
+
    MatchProduct "Serial Wacom Tablet"
+
    Driver "wacom"
+
EndSection
+
  
Section "InputClass"
+
NOTE: You must have followed the udev and xorg configuration instructions earlier to have both the Pen and Eraser detected, as well as the touchscreen (all three must be detected); or else, this tool will not work.
    Identifier "Wacom serial class identifiers"
+
    MatchProduct "WACf|FUJ02e5|FUJ02e7|FUJ02e9"
+
    Driver "wacom"
+
EndSection
+
  
# Waltop tablets
+
If you want it always running, install the desktop file in your autostart to have it run on startup:
Section "InputClass"
+
    Identifier "Waltop class"
+
    MatchProduct "WALTOP"
+
    MatchIsTablet "on"
+
    MatchDevicePath "/dev/input/event*"
+
    Driver "wacom"
+
EndSection
+
  
# N-Trig Duosense Electromagnetic Digitizer
+
$ cp xnohands.desktop ~/.config/autostart/
Section "InputClass"
+
    Identifier "Wacom N-Trig class"
+
    MatchProduct "HID 1b96:0001|N-Trig Pen"
+
    MatchDevicePath "/dev/input/event*"
+
    Driver "wacom"
+
    Option "Button2" "3"
+
EndSection
+
  
Section "InputDevice"
+
Please note that you can have both the thinkpad-helix-utils '''Toggle Touch''' and '''xnohands''' installed; but, do not use both at the same time.  '''xnohands''' will "re-activate" the touchscreen as soon as you pull the pen away from the screen, defeating the purpose of '''Toggle Touch''' to keep touch disabled at all times.
    Driver "wacom"
+
    Identifier "stylus"
+
    Option "USB" "on"
+
    Option "Device" "/dev/input/wacom"
+
    Option "Type" "stylus"
+
    Option "Threshold" "5"
+
    Option        "Mode"        "Relative"
+
EndSection
+
  
Section "InputDevice"
+
=== Sensors ===
    Driver        "wacom"
+
    Identifier    "eraser"
+
Option "USB" "on"
+
    Option        "Device"      "/dev/input/wacom" 
+
    Option        "Type"        "eraser"
+
    Option        "Mode"        "Relative"
+
    Option        "Threshold"    "5" 
+
EndSection
+
  
Section "InputDevice"
+
For X11 to utilize, install the AUR package {{Aur|iio-sensor-proxy}} to expose the dbus events. For example, {{Grp|gnome}} will automatically utilize the dbus events exposed by the {{Aur|iio-sensor-proxy}} package to:
    Driver        "wacom"
+
    Identifier    "cursor"
+
    Option "USB" "on"
+
    Option        "Device"      "/dev/input/wacom"  
+
    Option        "Type"        "cursor"
+
    Option        "Mode"        "Relative"
+
EndSection
+
}}
+
  
Notice that I added Atmel to the MatchProduct entry in the first section.
+
* Adjust the display brightness when moving from dark to bright lighting
Also notice the three input devices at the bottom stylus, eraser, and cursor.
+
* Automatically rotate the display based on orientation.
  
After a reboot if listing wacom devices comes up empty, refer to [[Wacom Tablet]] to manually confugure. Upon rebooting I had a soft link to the proper input in /dev/input/ if setting up manually make sure your device option in the above config points to the proper event.
+
See the upstream source for more information about {{Aur|iio-sensor-proxy}} and how to configure/test its functionality.
  
To list wacom devices run:
+
=== Screen Rotation ===
  
{{bc|xsetwacom --list devices}}
+
If you have both digitizers configured through the {{Pkg|xf86-input-wacom}} driver and the {{Aur|iio-sensor-proxy}} package, they will automatically rotate with the display.
  
Once you have that set up and your devices are being listed you should have full wacom functionality including pressure sensitivty. I tested this with xournal for note taking, and mypaint/gimp.
+
Alternatively, you can use a simple command like {{ic|xrandr --output eDP1 --rotate left}} to rotate the screen with ease.
  
===Trackpad===
+
If you want to use the bezel buttons (or some other hotkey) to cycle through orientations (or toggle between two specific ones), {{ic|helix-rotate}}, also from from {{AUR|thinkpad-helix-utils}}, provides an easy-to-bind command that may serve your needs well.
If you cannot get the synaptics driver to recognize a 3-finger click, this bug is probably the culprit:  https://bugs.freedesktop.org/show_bug.cgi?id=55365  You can fix it by commenting out the call to clickpad_guess_clickfingers in the synaptics driver:
+
  
{{hc|fixing synaptics manually|
+
There is also [https://launchpad.net/magick-rotation/ Magick Rotation], which is supposed to automatically rotate the screen based on input events, but it only seems to respond to docking/undocking the tablet.
git clone git://anongit.freedesktop.org/xorg/driver/xf86-input-synaptics
+
vi src/synaptics.c
+
./autogen.sh
+
make
+
sudo make install
+
}}
+
  
It will be installed in /usr/local/lib/xorg/modules/input by default, though.
+
=== Enable SSD TRIM ===
  
===Screen Rotation===
+
The built in 128 GB and 256 GB mSATA SSDs included with the Helix all support SSD TRIM functions.
  
The next issue was how to rotate the screen when in tablet modes. Well there are two ways to do this, the first is [https://launchpad.net/magick-rotation/ Magick Rotate] an originally Ubuntu based auto rotation utility. It does setup automatic rotation based on events and detaching the screen triggered the rotation.
+
Follow the [[Solid State Drives#TRIM]] instructions to enable trim. For example, one could use '''fstrim''' and set it up weekly like so:
  
If you don't want the screen to automatically rotate, you can manually do it through side buttons or an icon using this script:
+
# systemctl enable fstrim.timer
{{hc|Screen rotation script|
+
# systemctl start fstrim.timer
#!/bin/sh
+
  
#Gets the current mode of the screen
+
If using {{ic|fstrim.timer}}, you can check the history of when the timer was run with:
mode="$(xrandr -q --verbose | grep 'connected' | egrep -o '\) (normal|left|inverted|right) \(' | egrep -o '(normal|left|inverted|right)')"
+
  
case "$mode" in
+
$ journalctl -u fstrim.service
  normal)
+
-- Logs begin at Thu 2016-01-07 15:55:34 EST, end at Mon 2016-02-01 15:28:22 EST. --
  #toggle rotate to the left
+
Jan 25 00:48:58 kodiak systemd[1]: Starting Discard unused blocks...
  xrandr -o left
+
Jan 25 00:49:00 kodiak systemd[1]: Started Discard unused blocks.
  xsetwacom set "Atmel Atmel maXTouch Digitizer touch" Rotate ccw
+
-- Reboot --
  xsetwacom set "Wacom ISDv4 EC Pen stylus" Rotate ccw
+
Feb 01 00:07:13 kodiak systemd[1]: Starting Discard unused blocks...
  xsetwacom set "Wacom ISDv4 EC Pen eraser" Rotate ccw
+
Feb 01 00:07:19 kodiak systemd[1]: Started Discard unused blocks.
  ;;
+
  left)
+
  #toggle rotate to normal
+
  xrandr -o normal
+
  xsetwacom set "Atmel Atmel maXTouch Digitizer touch" Rotate none
+
  xsetwacom set "Wacom ISDv4 EC Pen stylus" Rotate none
+
  xsetwacom set "Wacom ISDv4 EC Pen eraser" Rotate none
+
  ;;
+
esac
+
}}
+
  
First it grabs the current rotation, and will then toggle the state between left and normal states. Feel free to add to this for inverted or right rotations as well.
+
== BIOS/Firmware Updates ==
  
Using {{ic|xsetwacom --list devices}} rename the wacom devices in the script.
+
Helpfully, Lenovo now provides [http://support.lenovo.com/en_US/downloads/detail.page?DocID=DS034628 bootable ISO images] for the purpose of installing BIOS updates. While it is not stated on their site, these bootable images also include updated firmware for the keyboard dock MPU. It is uncertain as to whether the USB hub firmware is also updated via this utility.
  
===Screen brightness and ambient light sensor===
+
{{Note|While the update utility states that all expansion units should be disconnected, it is only referring to external (USB and DisplayPort) devices. Ensure that the tablet is in the dock and connected only to AC power and the utility boot media before starting the process.}}
This machine has an ambient light sensor, but it's not showing up as an ACPI device yet.  [https://wiki.archlinux.org/index.php/Backlight#Calise Calise] is one alternative for managing the screen brightness using the camera to detect ambient light.
+
  
You can control the brightness by writing various numbers into /sys/class/backlight/acpi_video0/brightness, however the firmware seems to ignore values which are not multiples of 5.  It's probably for the same reason that when using the Fn+F5/F6 keys to decrement/increment the brightness, it takes some time for the key repeat to hit one of the values that triggers a brightness change.
+
If you do not have access to a USB optical drive and writable media, the information on [http://www.thinkwiki.org/wiki/BIOS_Upgrade/X_Series ThinkWiki] is extremely helpful.

Latest revision as of 06:25, 22 August 2016

Hardware Information
Form Factor Tablet/Ultrabook Convertible (detachable keyboard dock)
Display 11.6" 1920x1080 LCD with Capacitive and Pen Digitizers
CPU 3rd Generation (Ivy Bridge) Core i5-3427U or i7-3667U
RAM 4GiB (i5) or 8GiB (i7) DDR3L RAM (dependent upon CPU)
Storage 128/160/256GB mSATA SSD
WiFi Intel Centrino Advanced-N 6205S mPCI WLAN
Bluetooth Broadcom BCM20702 Bluetooth 4.0 (USB connected)
Camera 5MP Rear and 2MP Front (also USB)

Installation

Note: As this model includes no physical recovery media, it's highly recommended to create a Windows reinstallation flash drive just in case using the recovery media creation tool included with your preinstalled Windows system.

Due to the fact that there is no optical drive, you need to install Arch from USB stick.

The Arch install media will happily boot under UEFI, so it is recommended to disable legacy boot in the system setup utility. If legacy boot is needed for some reason, it does work fine as well.

Booting using Systemd-boot works perfectly. Again, if legacy boot is needed, GRUB is perfectly functional as well.

Hardware Configuration

To fully support all hardware in X, one needs to ensure that the following driver packages are installed:

Bluetooth

If the Broadcom USB device isn't showing up, you likely need to turn it on with echo 1 > /sys/devices/platform/thinkpad_acpi/rfkill/rfkill0/state

Digitizers

The Lenovo Helix comes with the following input devices (the ids may not be the same on your system):

$ xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Wacom ISDv4 EC Pen stylus               	id=15	[slave  pointer  (2)]
⎜   ↳ Atmel Atmel maXTouch Digitizer          	id=16	[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              	id=18	[slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                   	id=19	[slave  pointer  (2)]
⎜   ↳ Wacom ISDv4 EC Pen eraser               	id=21	[slave  pointer  (2)]

A Wacom USB device recognized by the xf86-input-wacom driver will create multiple X input devices from a single kernel device. In the Lenovo Helix's case, three such X input devices are created when properly configured:

  • Wacom ISDv4 EC Pen stylus
  • Wacom ISDv4 EC Pen eraser
  • Atmel Atmel maXTouch Digitizer

The Wacom ISDv4 EC Pen stylus xinput device is recognized by the xf86-input-wacom driver out of the box. However, additional Udev and Xorg configuration is required to recognize the Atmel Atmel maXTouch Digitizer touchscreen device as well as Wacom ISDv4 EC Pen eraser input if using a pen with an eraser function.

Udev Configuration

With an up-to-date Arch install, install the following packages:

The wacom-udevAUR[broken link: archived in aur-mirror] package installs the additional Udev rules. The libwacom package is suggested by some graphics applications to see the additional inputs.

Udev should automatically detect the changes if already running. But, you may want to reboot your system to verify the changes stick.

Additionally, you may want to read the Wacom Tablet#Dynamic with udev section to ensure the two wacom input devices are found. On this Helix system, it looks like this:

$ ls -l /dev/input/wacom* 
lrwxrwxrwx 1 root root 6 Jan 20 15:32 /dev/input/wacom -> event5
lrwxrwxrwx 1 root root 6 Jan 20 15:32 /dev/input/wacom- -> event5

These two inputs are the pen and eraser, respectfully.

You can also see if the touchscreen was detected properly:

$ ls -l /dev/input/tablet-*
lrwxrwxrwx 1 root root       6 Jan 20 15:32 tablet-tpc-ec- -> event5

With these three inputs, you can continue to the next section to configure Xorg.

Xorg Configuration

Next, you'll need to tell Xorg to use the new inputs. The xf86-input-wacom driver package has an up-to-date list of devices that the Helix has. But, the package does not install the updated list by default. You'll need to link it for Xorg to see them:

# ln -s /usr/share/X11/xorg.conf.d/50-wacom.conf /etc/X11/xorg.conf.d/50-wacom.conf

Once done with all the above, reboot and you verify xinput list looks the same as the above.

Touchscreen / Wacom Tips & Tricks

If you find yourself frustrated by the capacitive digitizer while trying to use the pen, there are a few options as outlined below that can help.

thinkpad-helix-utils: Toggle Touch

The thinkpad-helix-utilsAUR package contains a script located at /usr/bin/helix-toggle-touch that will toggle the capacitive digitizer on and off with a simple command using Xorg's xinput function. It also installs a desktop file called Toggle Touch that can be used to toggle xinput on and off with the pen.

Once activated, it disables the touchscreen xinput device until it is ran again to re-activate it.

xnohands

Another option that also uses Xorg's xinput is xnohands. This utility disables the touch device in a system when a stylus is detected (either pen or eraser) and re-enables the touchscreen once then stylus is pulled away from the screen. It does this by listening to the digitizer's "presence" event, which the Helix's Wacom ISDv4 EC input devices support. You'll need to download and extract it. Follow the README for instructions as it outlines how to set it up.

NOTE: You must have followed the udev and xorg configuration instructions earlier to have both the Pen and Eraser detected, as well as the touchscreen (all three must be detected); or else, this tool will not work.

If you want it always running, install the desktop file in your autostart to have it run on startup:

$ cp xnohands.desktop ~/.config/autostart/

Please note that you can have both the thinkpad-helix-utils Toggle Touch and xnohands installed; but, do not use both at the same time. xnohands will "re-activate" the touchscreen as soon as you pull the pen away from the screen, defeating the purpose of Toggle Touch to keep touch disabled at all times.

Sensors

For X11 to utilize, install the AUR package iio-sensor-proxyAUR to expose the dbus events. For example, gnome will automatically utilize the dbus events exposed by the iio-sensor-proxyAUR package to:

  • Adjust the display brightness when moving from dark to bright lighting
  • Automatically rotate the display based on orientation.

See the upstream source for more information about iio-sensor-proxyAUR and how to configure/test its functionality.

Screen Rotation

If you have both digitizers configured through the xf86-input-wacom driver and the iio-sensor-proxyAUR package, they will automatically rotate with the display.

Alternatively, you can use a simple command like xrandr --output eDP1 --rotate left to rotate the screen with ease.

If you want to use the bezel buttons (or some other hotkey) to cycle through orientations (or toggle between two specific ones), helix-rotate, also from from thinkpad-helix-utilsAUR, provides an easy-to-bind command that may serve your needs well.

There is also Magick Rotation, which is supposed to automatically rotate the screen based on input events, but it only seems to respond to docking/undocking the tablet.

Enable SSD TRIM

The built in 128 GB and 256 GB mSATA SSDs included with the Helix all support SSD TRIM functions.

Follow the Solid State Drives#TRIM instructions to enable trim. For example, one could use fstrim and set it up weekly like so:

# systemctl enable fstrim.timer
# systemctl start fstrim.timer

If using fstrim.timer, you can check the history of when the timer was run with:

$ journalctl -u fstrim.service
-- Logs begin at Thu 2016-01-07 15:55:34 EST, end at Mon 2016-02-01 15:28:22 EST. --
Jan 25 00:48:58 kodiak systemd[1]: Starting Discard unused blocks...
Jan 25 00:49:00 kodiak systemd[1]: Started Discard unused blocks.
-- Reboot --
Feb 01 00:07:13 kodiak systemd[1]: Starting Discard unused blocks...
Feb 01 00:07:19 kodiak systemd[1]: Started Discard unused blocks.

BIOS/Firmware Updates

Helpfully, Lenovo now provides bootable ISO images for the purpose of installing BIOS updates. While it is not stated on their site, these bootable images also include updated firmware for the keyboard dock MPU. It is uncertain as to whether the USB hub firmware is also updated via this utility.

Note: While the update utility states that all expansion units should be disconnected, it is only referring to external (USB and DisplayPort) devices. Ensure that the tablet is in the dock and connected only to AC power and the utility boot media before starting the process.

If you do not have access to a USB optical drive and writable media, the information on ThinkWiki is extremely helpful.