08-17-2016 02:12 AM
Did anybody succeed in running Linux on a Thinkpad Tablet 10 2nd gen?
How easy or difficult is it to boot Linux at all? Will the bootloader allow other operating systems than Win 10?
How is the support for a pen device?
Does auto-rotate based on the gyrometer work?
I would be most curious about Ubuntu although any experience with any other Linux flavor would also be appreciated.
PS: I'm running Ubuntu on a daily basis on several machines and I'm not scared of compiling a kernel or editing a few lines in the source code. My question is more about, how much effort is required to get it to run.
09-16-2016 08:47 PM
Yes. The BIOS on this machine is absolute rubbish, but there is nothing other than Lenovo and Intel's incompetence that prevents running Linux. Just make sure you use 64-bit UEFI as the other boot options are unavailable or broken.
The pen and gyroscope are working perfectly. The most annoying Linux issues are:
* random complete machine freezes due to buggy power management. There is a workaround which you probably need to apply before running the distribution's installer (or it will likely crash during installation). With systemd, this file in /etc/tmpfiles.d does the trick:
w /sys/devices/system/cpu/cpu0/cpuidle/state2/disable - - - - 1
w /sys/devices/system/cpu/cpu0/cpuidle/state3/disable - - - - 1
w /sys/devices/system/cpu/cpu0/cpuidle/state4/disable - - - - 1
w /sys/devices/system/cpu/cpu0/cpuidle/state5/disable - - - - 1
w /sys/devices/system/cpu/cpu1/cpuidle/state2/disable - - - - 1
w /sys/devices/system/cpu/cpu1/cpuidle/state3/disable - - - - 1
w /sys/devices/system/cpu/cpu1/cpuidle/state4/disable - - - - 1
w /sys/devices/system/cpu/cpu1/cpuidle/state5/disable - - - - 1
w /sys/devices/system/cpu/cpu2/cpuidle/state2/disable - - - - 1
w /sys/devices/system/cpu/cpu2/cpuidle/state3/disable - - - - 1
w /sys/devices/system/cpu/cpu2/cpuidle/state4/disable - - - - 1
w /sys/devices/system/cpu/cpu2/cpuidle/state5/disable - - - - 1
w /sys/devices/system/cpu/cpu3/cpuidle/state2/disable - - - - 1
w /sys/devices/system/cpu/cpu3/cpuidle/state3/disable - - - - 1
w /sys/devices/system/cpu/cpu3/cpuidle/state4/disable - - - - 1
w /sys/devices/system/cpu/cpu3/cpuidle/state5/disable - - - - 1
w /sys/class/mmc_host/mmc0/device/power/control - - - - on
w /sys/class/mmc_host/mmc1/device/power/control - - - - on
w /sys/class/mmc_host/mmc2/device/power/control - - - - on
(Some people use intel.max_cstate on the kernel command line instead but I have not tried)
* no battery monitor (and generally the built-in ACPI tables are complete garbage)
* no sound
Other things that don't work are NFC, Broadcom GPS, the fingerprint reader, and the cameras.
There is good information about Linux on TPT10 on http://nf.dpin.de/ and a mailing list at http://dpin.de/cgi-bin/mailman/listinfo/tpt10-linux.
05-04-2017 07:26 AM
I can happily report that quite some progress has been made in the Linux kernel to better support Baytrail devices since September '16.
The original question was, if it works at all. Yes, it does! Even installed in parallel to Win8.1/Win10.
Most standard Linux distros will still come with too old kernels so you might have to roll your own for best user experience.
All of the sensors (ambient light, gyro, inclination, rotation, compass) are working through Linux industrial I/O (IIO) subsystem. So a desktop environment could pick them up and rotate the screen, which is also well supported for Intel graphics.
The Intel graphics flavour in the TPT10 is well supported by the i915 Linux graphics drivers and stack. Also hardware accelerated video playback works nicely, including hardware accelerated decoding and display (vaapi). Playback of a full-HD video consumes about 20% CPU time which is impressive (low!).
The built-in Wifi and Bluetooth are working well, though the Bluetooth needs some extra tweaking (firmware blob must be loaded).
As of Linux kernel 4.10.xx sound is working too! At last! I am still working on getting the headphone jack detect to do something useful (like switching off the speakers and enabling the headphones) but at least my patch for enabling the jack detect is now upstream (maybe in 4.12.xx).
There is some vague hope to get the NFC supported too but there is no documentation from Broadcom for this chip, whatsoever. There are some software pieces in some Android sourcetrees which might be usable but I am yet unsure. I am working on a driver project but so far nothing is really working.
Concerning battery status information I have good news! Here is a standalone program to get some readings:
and here is a kind of drop in replacement for the Linux kernel ACPi battery driver:
Especially the latter is a bad hack! But like sb10q mentioned already the TPT10 ACPI DSDT table is plain broken. The DSDT description of the battery is a mess. There is a wrong section (BATC) still in there which is clearly a relict of an old Intel reference design. This BATC battery is not implemeted in the TPT10! But it is still in there and has valid methods so the kernel tries to query it - and fails. The second and truely existing battery ist BAT0 but it is described with a pretty unusual I2C operation region so that the Linux kernel can not talk to it.
My standalone program and the driver are based on the code from the ACPI DSDT for BAT0 and it can extract:
- current status (charging, AC, full, discharging)
- current voltage
- current capacity (in mWh)
- current charge/discharge wattage
Still completely open issues are:
- GPS/GNSS, also a Broadcom chip, no documentation available but it shows up on a serial UART interface, just no clue how to talk to it (no, it is far from being NMEA
- fingerprint reader, no documentation whatsoever
- cameras, these are connected via the Intel Image Signal Processor (ISP) for which there are currently no drivers in mainline Linux. The ISP is a highly complex thing running its own firmware (~1MB of binary code!) and the whole driver package for it is huge! There are ancient driver packages available for some Android kernels but no official support from Intel. It is unlikely that the ISP will be supported any time soon
I am running all of this on a TPT10 with Intel Z3795 CPU, 4GB RAM, 128GB eMMC - hint hint: Would love to try the new Z87xx based TPT10 version but can not afford one
Concerning power management Linux does pretty nicely during runtime (~2.8W with display on (low backlight), Wifi connected) but we are still pretty bad during sleep. The TPT10 with Linux will only last 3-3.5 days, then the battery will be flat (how long does Win10 last?).
Even with Linux kernel 4.11 I still exprience strange issues sometimes sooner or later after a sleep/wakeup cycle. Some spurious interrupts occuring, sluggish behaviour and sometimes drop out of I2C or MMC (which connects to the eMMC and Wifi!). I am still not sure why this happens.
Anyone interested in experience exchange concerning TPT10 and Linux is welcome on the mailinglist, like Sb10q already mentioned:
and here is an updated URL to the information pages of mine:
PS: The CPU C-state issues can easily be fixed by intel.max_cstate=0 on the kernel boot commandline.
08-22-2017 09:22 AM
I also have a TPT10 and using the following tool by Linuxium at http://linuxiumcomau.blogspot.com.au/2017/06/customizing-ubuntu-isos-documentation.html, I was able to successfully boot Ubuntu GNOME 17.04 with latest 4.13 kernel without issue. However, I am still having IIO related issues because it doesn't seem like the gyro is working and the screen doesn't rotate for me etc, am I missing any drivers? Also, the battery status is not working for me either, I have been trying to use your battery drivers @nicole_f however, I can't seem to get it to work. How do I disable the default battery driver? I built and installed the acpi_tpt10_battery.ko but it doesn't seem to do anything even after a restart. Wifi and bluetooth etc I have managed to get working though. Any assistance is much appreciated, thank you!
09-06-2017 07:46 AM
Sorry for the long silence....
In order to get the battery driver working you might need to take extra care that the default ACPi battery does not get loaded, which is the kernel module "battery". You might need to blacklist or simply remove it.
I created some downloadables here:
There is also kernel package for debian based distributions which *could* work out of the box. It includes my battery driver and also a ACPI DSDT table fix that removes the under linux non working APCI battery instance.
Hope this helps.
PS: If anyone from Lenovo is reading this, please help us / me to enhance functioniality of the TPT10 with Linux!
Especially please release a fix for the broken ACPI tables... there is even some cruft fom the old Intel reference design still in there...
Please get in contact with me and I will happily guide you.