I've recently installed ArchLinux + GNOME 3 on the ThinkPad Helix 2, and mostly everything works out of the box.
My biggest remaining issue is suspend; a bug report has been filed to fix it but they're still seeking more information. (So perhaps trying it yourself will help! ;)) The pen works wonderfully, palm rejection is perfect in Xournal. A few things need a little work to get working, namely:
Sound and microphone support. Just run the following script which unmutes the speaker, headphones, and mic, and enables the appropriate devices:
#!/bin/sh
#speakers (SPO)
amixer -c 1 cset numid=24 on
amixer -c 1 cset numid=25 on
#headphones (HPO)
amixer -c 1 cset numid=26 on
amixer -c 1 cset numid=27 on
#microphone (ADC0 Capture Switch / ADC0 Capture Vol / ADC0 Mux / ADC 1 Mux / Mic Vol)
amixer -c 1 cset numid=8 "on,on"
amixer -c 1 cset numid=9 "127"
amixer -c 1 cset numid=19 "2"
amixer -c 1 cset numid=20 "2"
amixer -c 1 cset numid=4 "30,30"
You'll need to run alsactl store
as root when the keyboard is not docked, for for reasons I can't discern this command has issues when the keyboard is connected, and will not run automatically.
LTE support. For some reason, I suppose because the Sierra Wireless EM7345 card is still fairly recent, mbim (which the kernel defaults to) is not supported out of the box with Network Manager + ModemManager. I had to add a file with the following contents in my /etc/modprobe.d
options cdc_ncm prefer_mbim=N
And then NetworkManager picked up on my SIM card and connected just fine. (Using T-Mobile.) Otherwise, NetworkManager was connecting but only locally.
Autorotate tablet into laptop mode and back when docked. This isn't so much of an issue as it is 'something nice to have', but I felt it deserved a mention. When the tablet is docked, an ACPI event is registered, and you can take advantage of that to autorotate the tablet. Using the script helix-rotate available via the AUR I made two scripts which I added to my /etc/acpi/actions
directory (requires installing acpid from the community repo):
rotate-laptop.sh:
#!/bin/sh
export XAUTHORITY=/run/user/1000/gdm/Xauthority
export DISPLAY=:0
current_orientation="$(xrandr --query --verbose | awk 'NR==2 { if ($2 = /connected/) print $6}')"
if [ "$current_orientation" = "right" ] && [ -z "$1" ]; then
helix-rotate left
elif [ "$current_orientation" = "inverted" ] && [ -z "$1" ]; then
helix-rotate flip
elif [ "$current_orientation" = "left" ] && [ -z "$1" ]; then
helix-rotate right
fi
rotate-tablet.sh:
#!/bin/sh
XAUTHORITY=/run/user/1000/gdm/Xauthority DISPLAY=:0 helix-rotate left
Then in my handler.sh (this should be under case "$1"):
ibm/hotkey)
case "$4" in
00004013)
/etc/acpi/actions/rotate-tablet.sh
logger 'Tablet detached'
;;
00004012)
/etc/acpi/actions/rotate-laptop.sh
logger 'Tablet docked'
;;
esac
;;
You'll need to enable the acpid daemon with systemctl enable acpid.service
(as root) for any of the above to work.
Bluetooth. I had to reset the device before it worked, though you might not need to. The command to do so is hciconfig -a hci0 reset
. You might also want to install pulseaudio-bluetooth for sound support.
There are a few other tweaks I probably did, but those are all the important ones I can recall. Some software I highly recommend are pstate-frequency-git, tlp, Easystroke, and the aforementioned Xournal.
I'm sorry this post is rather lengthy and better suited to an ArchWiki page, but I would like to flesh this out a bit before posting it to the ArchWiki, and at the same time wanted to provide you with something substantial enough that you could get started, without hopefully feeling too intimidated, preferably with ArchLinux. ;) Best of luck to you!
As an aside, one thing I find super neat is that the Quickshot Cover (a $50 accessory) works in Linux (closing the cover suspends the tablet), but alas due to the aforementioned suspend issue one cannot resume from suspend. :( So I have temporarily disabled suspend via the lid/cover in GNOME via the GNOME Tweak Tool, and it only dims the display while covered instead.
PS: I just realized that this was posted in 2014, not 2015, so though what I've posted is applicable to your model, there was no reason to rush. XD Nonetheless, I hope this information helps someone.