{"id":667,"date":"2016-04-25T23:52:05","date_gmt":"2016-04-25T21:52:05","guid":{"rendered":"http:\/\/nf.dpin.de\/?p=667"},"modified":"2016-04-25T23:52:05","modified_gmt":"2016-04-25T21:52:05","slug":"thinkpad-10-z3795-1st-gen","status":"publish","type":"post","link":"https:\/\/www.dpin.de\/nf\/thinkpad-10-z3795-1st-gen\/","title":{"rendered":"Thinkpad 10 Z3795 (1st gen)"},"content":{"rendered":"<p>I described the hardware <a href=\"http:\/\/nf.dpin.de\/new-try-thinkpad-tablet-10-1st-gen\/\">here<\/a> in detail. The device <em>is<\/em> nice, the hardware really is what I am looking for. But getting Linux to run on it is a pain. Less painful as on the MIIX300 but still painful. After some research I decided to give Ubuntu 16.04 a try and at first was pretty happy with the installation process. Under Win8.1 I did a resize of the Windows main partition to about 55GB &#8211; less is not possible because of the NTFS structure. The Ubuntu 64bit install ISO can be put onto a USB stick simply by dd&#8217;ing it on &#8211; cool! One of the advantages of UEFI.<!--more--><\/p>\n<p>The installation went pretty fine almost until the end but then hung. A second try produced almost the same. But the system was already bootable albeit a little damaged, but fixable. The reason for the hang seem to be the old baytrail eMMC issue, sporadic hangs. I was not able to find out what it caused but I think I have it fixed now by upgrading to latest kernel 4.5.2, built from vanilla upstream kernel.org sources.<\/p>\n<p>Using the vanilla kernel pretty much is working already:<\/p>\n<ul>\n<li>display, graphics and acceleration, also backlight control including full blanking, i.e. backlight power off (saves power)<\/li>\n<li>touchscreen, seems to be an Atmel I2C connected touch<\/li>\n<li>Wacom I2C connected digtizer<\/li>\n<li>USB host port<\/li>\n<li>micro SD card slot<\/li>\n<li>most sensors are accessible through the Intel sensor hub and IIO interface, like ambient light, accel, gyro:<br \/>\n<table>\n<tbody>\n<tr>\n<td>IIO device<\/td>\n<td>Name<\/td>\n<td>Driver<\/td>\n<td>Status<\/td>\n<\/tr>\n<tr>\n<td>iio0<\/td>\n<td>accel_3d<\/td>\n<td>hid_sensor_accel_3d<\/td>\n<td>works<\/td>\n<\/tr>\n<tr>\n<td>iio1<\/td>\n<td>als<\/td>\n<td>hid_sensor_als<\/td>\n<td>works<\/td>\n<\/tr>\n<tr>\n<td>iio2<\/td>\n<td>gyro_3d<\/td>\n<td>hid_sensor_gyro_3d<\/td>\n<td>works<\/td>\n<\/tr>\n<tr>\n<td>iio3<\/td>\n<td>incli_3d<\/td>\n<td>hid_sensor_incl_3d<\/td>\n<td>works<\/td>\n<\/tr>\n<tr>\n<td>iio4<\/td>\n<td>magn_3d<\/td>\n<td>hid_sensor_magn_3d<\/td>\n<td>works<\/td>\n<\/tr>\n<tr>\n<td>iio5<\/td>\n<td>dev_rotation<\/td>\n<td>hid_sensor_rotation<\/td>\n<td>unclear,<br \/>\nprobably yes<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>WiFi is working using brcmfmac driver and an NVRAM File (<a href=\"http:\/\/nf.dpin.de\/wp-content\/uploads\/2016\/04\/brcmfmac43241b5-sdio.txt\">brcmfmac43241b5-sdio<\/a>) which can be copied from EFI. It also contains the MAC address so I replaced some digits in my copy<\/li>\n<li>Bluetooth is looking good too, using the 8250_dw quirk two UARTs ttyS4 and ttyS5 are detected and ttyS4 can be attached to the BlueZ stack using &#8218;btattach -B \/dev\/ttyS4 -P bcm&#8216;. It also need a binary patch which will be loaded by the kernel firmware loader from brcm\/BCM.hcd &#8211; this file should do the trick: <a href=\"http:\/\/nf.dpin.de\/wp-content\/uploads\/2016\/04\/BCM.zip\">BCM<\/a> (rename and copy the zip contents)<br \/>\nUpdate: Does not work yet using btattach, hangs on init, hciattach works almost but fails to load the fw patch and I assume that&#8217;s the reason why the device a detected properly but not air traffic is going in or out<br \/>\nUpdate: I managed to get hciattach to load the BCM HCD &#8222;patch&#8220; and tata! Bluetooth is now recognised, initialized and air traffic is going in and out!<\/li>\n<li>the WWAN (Sierra Wireless) is creating a network device. I have not tested this yet but I assume it should be possible to get this working though I wonder how to configure SIM PIN, APN and such stuff<\/li>\n<li>all buttons work &#8211; power, rotation lock, vol+\/vol- and windows button on front &#8211; at least all of them emit input events<\/li>\n<\/ul>\n<p>And now for the unpleasant part of non working stuff:<\/p>\n<ul>\n<li>sound is still not working because the TPT10 uses a codec that was introduced into the kernel for Cherrytrail but not Baytrail &#8211; well, I guess that can be hacked<br \/>\nI had a look at the ACPI DSDT yesterday and am confused as it states that the codec is RT5640 but it is pretty definitely a RT5672, the ID register gives proof for that:<br \/>\n<em>rt5640 i2c-10EC5640:00: Device with ID register 0x6271 is not rt5640\/39<\/em><\/li>\n<li>the cameras (front and back) will be a huge challenge. There does not seem to be any support for the IPS (Image Processing System) which they are connected to<\/li>\n<li>the fingerprint reader &#8211; well, i can live without it<\/li>\n<li>the NFC would be nice to have and maybe this is feasible<\/li>\n<li>the GPS is a little mystery to me since this seems to be a pretty unusual GPS device. My fear is that it requires a lot of userspace code, i.e. that pretty much of the resolution calculation is done in software and that the code for this will not be opensource.<\/li>\n<li>there is a vibration motor built into the device, I have no idea how to control it (yet)<\/li>\n<li>battery status, pretty important for a mobile device<br \/>\nUpdate: Unplugging and plugging the AC adapter emits APCI events for AC adapter and battery<\/li>\n<li>But worst of all the non working stuff is that I have no clue whatsoever how to put the device into a low power state and wake it up again. According to ACPI it does not support the most common S3 &#8211; suspend to RAM. There is only disk and freeze and the later does exactly what it says, it freezes the whole thing and never thaws again.<br \/>\nUpdate <a href=\"http:\/\/nf.dpin.de\/baytrail-s3-idle-and-freeze\/\">here<\/a><\/li>\n<\/ul>\n<p>I sincerely hope that I will find some clues on the remaining issues in the sources of Linux kernels for Android on Baytrail, like from the great <a href=\"https:\/\/sourceforge.net\/p\/android-x86\/kernel\/ci\/kernel-4.4\/tree\/\" target=\"_blank\">Android-X86 project<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I described the hardware here in detail. The device is nice, the hardware really is what I am looking for. But getting Linux to run on it is a pain. Less painful as on the MIIX300 but still painful. After some research I decided to give Ubuntu 16.04 a try and at first was pretty happy with the installation process&#8230;. <a href=\"https:\/\/www.dpin.de\/nf\/thinkpad-10-z3795-1st-gen\/\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,2],"tags":[],"class_list":["post-667","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-geek-stuff"],"_links":{"self":[{"href":"https:\/\/www.dpin.de\/nf\/wp-json\/wp\/v2\/posts\/667","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dpin.de\/nf\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dpin.de\/nf\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dpin.de\/nf\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dpin.de\/nf\/wp-json\/wp\/v2\/comments?post=667"}],"version-history":[{"count":0,"href":"https:\/\/www.dpin.de\/nf\/wp-json\/wp\/v2\/posts\/667\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dpin.de\/nf\/wp-json\/wp\/v2\/media?parent=667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dpin.de\/nf\/wp-json\/wp\/v2\/categories?post=667"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dpin.de\/nf\/wp-json\/wp\/v2\/tags?post=667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}