Linux on TPT10

Mailinglist

If you are interested in getting Linux to work on this pretty cool machine, join our mailinglist:
http://dpin.de/cgi-bin/mailman/listinfo/tpt10-linux

Status

Using the vanilla kernel pretty much is working already:

  • display, graphics and acceleration, also backlight control including full blanking, i.e. backlight power off (saves power)
  • GUI acceleration works, OpenGL and motion video (vaapi)
  • touchscreen, Atmel I2C connected touch controller
  • Wacom I2C connected digtizer
  • USB2 host port, USB3 host port on docking station
  • micro SD card slot
  • most sensors are accessible through the Intel sensor hub and IIO interface, like ambient light, accel, gyro:
    IIO device Name Driver Status
    iio0 accel_3d hid_sensor_accel_3d works
    iio1 als hid_sensor_als works
    iio2 gyro_3d hid_sensor_gyro_3d works
    iio3 incli_3d hid_sensor_incl_3d works
    iio4 magn_3d hid_sensor_magn_3d works
    iio5 dev_rotation hid_sensor_rotation unclear,
    probably yes
  • WiFi is working using brcmfmac driver and an NVRAM File (brcmfmac43241b5-sdio) which can be copied from EFI. It also contains the MAC address so I replaced some digits in my copy
  • 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 ‚btattach -B /dev/ttyS4 -P bcm‘. It also needs a binary patch which will be loaded by the kernel firmware loader from brcm/BCM.hcd – this file should do the trick: BCM (rename and copy the zip contents)
    Update: Does not work yet using btattach, hangs on init, hciattach works almost but fails to load the fw patch and I assume that’s the reason why the device a detected properly but not air traffic is going in or out
    Update: I managed to get hciattach to load the BCM HCD „patch“ and tata! Bluetooth is now recognised, initialized and air traffic is going in and out!
  • the WWAN (Sierra Wireless) is creating a network device and is working, control using mbimcli, using a WIN10 utility additional USB serial interfaces can be activated which expose an AT command interface and GPS. The GPS has pretty poor quaility and outputs non-NMEA data.
  • all buttons work – power, rotation lock, vol+/vol- and windows button on front – at least all of them emit input events

And now for the unpleasant part of non working stuff:

  • sound is still not working because the TPT10 uses a codec that was introduced into the kernel for Cherrytrail but not Baytrail – well, I guess that can be hacked
    I 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 RT5671, the ID register gives proof for that:
    rt5640 i2c-10EC5640:00: Device with ID register 0x6271 is not rt5640/39
  • 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
  • the fingerprint reader – well, i can live without it
  • the NFC would be nice to have and maybe this is feasible
  • 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.
  • there is a vibration motor built into the device, I have no idea how to control it (yet)
  • battery status, pretty important for a mobile device
    Update: Unplugging and plugging the AC adapter emits APCI events for AC adapter and battery
  • 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 – 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.
    Update here