Here is my endevor on installing Gentoo Linux on the 'Walmart Special' eFun Nextbook 8" Windows 8.1 edition.

Nextbook 8/Atom Gentoo The Nextbook 8" Windows (NXW8QC16G, not the plain Nextbook8 which has a 4:3 1024x768 display and an ARM) is an Intel Atom Z3735G based "Bay Trail" tablet. At 0.35" thick it's one of the thinner tablets out there. With a 4Ah battery it's fairly large for its size. It unfortunately has an older, non IPS display, but despite some really bad reviews on this display, I don't find it horrible, but then again I use a lot of regular TN TFT displays. It is definitely nowhere close to an IPS (like my Asus phone) in terms of viewing angle but it gets the job done.

Intel AtomZ3735 "Bay Trail" Quad Core CPU 1.33GHz turboboost 1.8GHz, minimum ACPI P-states speed 500MHz
Intel HD4000 Graphics controller
InsydeH2O UEFI32 firmware
Realtek RTL8723BS 802.11 B/G/N, Bluetooth, FM Receiver - SDIO
8" 16:10 1280x800 Twisted Nematic TFT 5-point Touch screen LCD
Bluetooth 4.0
Front 300K (GC310) and back 2M (HM2056) cameras (both are fixed focus)
MicroHDMI port
MicroSD card port (came with extra 16GB MicroSD card)
MicroUSB port for charging and host (unsure about as a target device yet as a true OTG device, uses XHCI (USB2) protocol)
3-axis accelerometer for rotation control
One speaker that you can easily muffle if you forget to silence
Stereo 1/8" headphone jack

Fedora "Fedlet" effort of porting to Dell Venue 8
HP Stream Ubuntu effort
Ubuntu porting effort
I noticed some people want some things but don't care about other things working. Sorry, but I want ALL of it working...

The OEM is apparently the Chinese company "Shenzhen YiFang Digital" model M890. YiFang got transliterated to E-Fun.

The first problem when trying to run Linux with these 'Bay Trail' tablets out there is that the firmware is fscked up and only has 32-bit UEFI. Because of this, getting into 64 bit mode will be hard. Apparently building the 32-64 Linux option does work - tried it once - but I opted to go back to 32 bit to save pointer memory. It does NOT support MBR boot images - a UEFI boot partition is needed. Also note that the MicroSD card does not appear to work during boot despite a similar path is used for the onboard eMMC.

December 14, 2014
I had been building a 32-bit Gentoo stage 4 for in QEMU on my server over several days anticipating installation onto a tablet, and copied it onto a USB flash disk. I emulated a quad core Atom N270 to build. I built EFI Grub2 and also stuck rEFInd on the flash disk. I used a USB hub, OTG adaptor, and external keyboard along with the USB flash drive to boot the machine. Apparently this machine appears to ignore 'delete', 'F1' to get into BIOS, but some testing seems to indicate 'F12' does something, or it might just be due to aboring the initial windows boot tells the machine to go into recovery mode - where you can change the boot image.

When I finally got into the diagnostic mode, it showed a screen with 6 buttons on them - to change EFI boot partition, select a EFI boot file, change configuration options, and even disable/enable secure boot. They can only be selected by the keyboard, but in any case, Jackpot. Actually it looks like Secure boot was disabled from the get-go.

Using the "Boot EFI file" option the table it went into a "file manager mode" and allowed to select the disk and directory of EFI applications. It happily loaded the Grub2 EFI image. However the Grub2 image lacked disk drivers and could not access any files or images. Boo.

Using the same mechanism I was able to load rEFInd. It was a bit more promising - it found the Linux kernel image! Alas it froze after reading the image.

Next steps: Fix the kernel image. Hopefully booting by PARTUUID will work, then I could install the kernel on the EFI partition?!!!

December 18, 2014
Not much time to work on this thing. I tried booting a few more variations of the kernel, and 3.18.1 - all still have no response. Still thinking a kernel build problem but no way to tell what's wrong.

December 20, 2014
Downloaded Fedora Tablet preliminary 20141209 - Fedlet - test release. Finally found a blank dvdrw to burn it on. Tried booting.
No dice.
The tablet appear to have problems supporting CD/DVD drives in firmware on the 4 port hub... The DVD drive is an external so it shouldn't be sucking up power like the USB Flash media and keyboard are, but nevertheless.
Alas, so I tried copying files from the DVD's EFI directory to a 128MB SD card as that was the only one I had handy. Tried booting this, and as before, it was able to boot Grub-EFI and I see options! One was to boot Fedlet, and some test/recovery modes. I tried the recovery modes...
Not a good sign, perhaps this thing doesn't want to run Linux. Ugh. Anyway I continued hacking: I tried to get to command line mode of Grub. Fedora-Tablet did a better job building fedlet grub, and it was able to read the partitions on the tablet! Though it does not support NTFS, I saw four hard drives... which is weird. One was the SD card which popped up as hd0. The others are probably the eMMC:
hd1,gpt1 - SYSTEM - 102400KiB - Probably ESP
hd1,gpt2 - ? - 103424KiB - Windows boot partition or ???
hd1,gpt3 - ? - 131072KiB - ???
hd1,gpt4 - ? - 11496448KiB - Probably Windows root partition
hd2 ???
hd3 ???

After seeing that using grub's ls command, for the heck of it, I tried to see what happens if I ran a few grub commands. After inspecting the command lines that are stored using the 'e' edit command, I noted that it used the "linuxefi" command to load kernels instead of the "linux" command that I thought should be used. Note taken. Then I tried:

grub> linuxefi /isolinux/vmlinuz0

Of course I didn't expect much, as there's no root partition or anything but who knows...

Ugh... it hung there...

This was kind of scary... I let it sit there a few moments to see if Google had spidered any more information about this tablet as it was starting to look a bit grim. But to my surprise, when I looked at the tablet again... the grub command prompt came back!

Oops. I forgot, the "linux" or "linuxefi" commands only select and load the kernel. Well, this just means the SD card and USB are slow. The moment of truth comes...

grub> boot

It sat there for a second... uh oh... Trembling in fear I couldn't look... but after that almost seemingly long wait, four penguins showed up and the linux boot init messages started scrolling by!


Though it eventually crashed with panic, VFS cannot mount root, of course that was to be expected as I never had a root partition ready for it to load.

This experiment finally settles a lot of questions and yes, this thing should be able to run a full Linux install!!!

Now I still need to find the special sauce that Fedlet used to build the kernel and hopefully I can reproduce this on a self compiled Gentoo kernel to use with the Gentoo root I had prepared.

A bit more hacking and it looks like the Nextbook 8 will load the EFI system disk off of USB if the Windows button and the power button are pressed at the same time... this will make things a lot easier, I've been forcing the machine into maintenance mode by aborting the Win8 boot.

December 27, 2014

I found out that video mode setting was indeed causing problems. Disabling KMS but enabling EFI framebuffer and Intel drivers allowed it to stop crashing on boot. This problem exists on 3.16.5-gentoo and 3.18.1, and will have to see if overriding the mode will do the job.
I had not set xHCI_hcd on my kernels but this is mandatory - the Bay Trail Valleyview seems to have an USB3 controller despite it not having a USB3 connector - USB2 only, go figure. USB1 keyboards work fine, USB2 hubs work fine, and in EFI FW, USB2 disks work fine too (though it seems very slow, then again it may just be due to slow SD cards). But mass storage break in Linux.

It looks like the internal eMMC on the machine is handled by the MMC module and not SATA emulation as I thought. Enabling the MMC options allowed /dev/mmcblk0* to show up and be accessable. This shall be the main way of backing up the MMC device (and thus Windows) once I find a way to move large amounts of data in and out of the device. It looks like mmcblk1 is the MicroSD card slot and looks a whole hell of a lot better than getting usb_storage working.

However this would mean I have to boot a kernel off of USB and then root on /dev/mmcblk1 which is a bit awkward. No such luck on EFI detecting the MicroSD card as a possible boot device, unfortunately - means I will have to hack the UEFI boot manager to add in more boot options if I don't want to carry an extra external USB boot device to load Linux.

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 55
model name	: Intel(R) Atom(TM) CPU  Z3735G @ 1.33GHz
stepping	: 8
microcode	: 0x81c
cpu MHz		: 498.000
cache size	: 1024 KB
physical id	: 0
siblings	: 4
core id		: 0
cpu cores	: 4
apicid		: 0
initial apicid	: 0
fdiv_bug	: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms
bugs		:
bogomips	: 2662.40
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:
lspci is pretty sparse:
00:00.0 Host bridge: Intel Corporation Atom Processor Z36xxx/Z37xxx Series SoC Transaction Register (rev 0f)
00:02.0 VGA compatible controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display (rev 0f)
00:14.0 USB controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series USB xHCI (rev 0f)
00:1a.0 Encryption controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Trusted Execution Engine (rev 0f)
00:1f.0 ISA bridge: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Power Control Unit (rev 0f)

December 28, 2014
Now using an external 1GB card that contains the kernel/initramfs and using the root microsd card inside the tablet. This seems to be the most reliable way to boot the device as of now due to usb-storage being very flaky on xhci-hcd. Now, if only the size of the device was larger, 16GB isn't very much...

Finally took a peek at /dev/mmcblk0p? - and it looks like mmcblk0p1=ESP (100MB), mmcblk0p2=Windows Reserved (which continues to be a mystery, 100MB)), mmcblk0p3=Windows Root disk (11.9GB, about 5.5GB free), mmcblk0p4=Recovery (3.5GB). There are also other mmcblk0boot0, mmcblk0boot1, and mmcblk0rpmb (all three are 4MB each) partitions that appear to hold private keys for secure boot? Replay Protected Memory Block?

Now my nomodesetting option is hurting me as it prohibits starting X11. The wifi driver at seems to be a valid dkms, and using it, at least the RTL8723BS WIFI IS WORKING! Got ~4MB/sec through scp, I didn't expect that much because it appears they use SDIO probably through SoC SPI and doubt it can get that fast.

December 30, 2014
ARGH. The touch screen is really driving me nuts. I went to Walmart to look at their Nextbook 10.1/Windows and it used a Goodix Touch HID. Which sounded familiar as there were other tablets using this not-in-kernel HID touch screen. Alas when I looked in the ACPI tables, this device does not exist and the driver I downloaded for the Goodix didn't work.. It may end up having to do the inevitable and simply run Windows and see what devices the device manager comes up with.

One surprise while groking the ACPI structures in Linux is that there is a GPS on this device. Or is there? No idea. ACPI says there's a Broadcom BCM4752.

January 1, 2014
Still no dice on the touch screen. The touch screen by far is the most important input device that must work for this thing to be 'useful' else I'd rather just carry the larger ultrabook (14" Envy4t) or even the real netbook (9" eeePC 900A - which I find way too slow nowadays) around and not have to tote a nonattached keyboard. I can deal with no rotation control (currently it's working in portrait mode only), no sound, and even no battery gauge, etc., but having no touch screen makes it broken.

Some interesting things discoverred on the Windows partition:
Some people complain the eMMC on these things are just too small. Yes they are, but after looking at the 16GB disk, and this doesn't totally add up due to rounding and missed files,

  • 3.5GB goes to the recovery partition
  • 11GB goes to the root partition
  • 0.2GB goes to misc partitions (ESP, NFSBOOT)
  • What's surprising is that the base Windows 8.1 install is "only" 1.1GB, and hiberifle.sys/pagefile.sys/OEMOffice15 are what uses so much eMMC space. If you never need office, you can nuke the install files! You may also be able to chop down on pagefile.sys as well if you know you won't use that much virtual memory.

    Another weird problem: ntfs and ntfs3g do not support reading many of the files on the eMMC for some reason. Suspecting they may be COW files that point to the 3.5GB partition, but no idea...

    January 3, 2014
    I tried Android-x86. It seemed to boot the first time but fails boot all subsequent times. Ugh. However that one time it booted, I don't know if I was imagining things but... the touchscreen worked? Need to reproduce that result somehow...

    January 4, 2014
    Success? I ended up compiling all the drivers available in the kernel and my touchscreen got detected! So much for trying to individually enable what's needed.
    Now the solution to the High Precision Event Timer (HPET) is direly needed.

    Video of current status: Temp Link

    January 6, 2015
    Things seem to be less stable today. Hum. I tried building a 3.19.0-rc3 kernel and pulled the new rtl8723bs code. Today they compiled fine together. No time to test unfortunately. I built 3.19.0-rc3 with a dangerous hack to enable hpet even though a safeguard failed. Can't learn anything without trying eh? Alas the modeset driver still blanks out the screen while I wait for rootfs to rsync.

    January 7, 2015
    Tried the new kernel. Still broken as before. With the hack for enabling HPET it still did not use it - fell into the next HPET disable trap for all Baytrail (BYT) machines. This is sort of discouraging - what timer is reliable? Do we have to go back to 8254 periodic ticks?

    January 8, 2015
    Tried hacking the kernel to ignore the fact I'm on BYT hardware and see what it it will do... Booting it... *WOW* It works! At least the clock seems to update correctly and it's actually using the HPET now. Strange, not sure why someone submitted a patch to disable the HPET for BYT.

    January 10, 2015
    Tried messing with Bluetooth - The RTL8723BS BT appears to use a UART serial interface. Could it possibly be hooked up to the SOC /dev/ttyS0 ? It says "URT1" after all. Also there are reports that it uses the "3-wire" or "H5" protocol, but a bit misleading. I found out that for some reason, even with the bluez stack around, Google and Broadcom made an alternate bluetooth stack "bluedevil" - and there appears to be another H5 driver and there are reports that the rtl8723bs working in Android, perhaps with bluedevil...
    One thing that's really irking me is that I can't seem to turn the backlight off and on, with or without the power button. Maybe this is the main thing I need now to really start being able to use this computer, other than getting battery life remaining...

    January 14, 2015
    Upgraded to 3.19.0-rc4 and pulled the latest rtl8723bs driver. No real differences detected. First time I booted rc4 the graphics subsystem loaded right up, but subsequent runs stopped working. The newer kernel seems to work better, as the touch screen occasionally froze up before, but now it seems more reliable. One thing I did notice is that Gnome seems to crash occasionaly as well as mutter. No indication of fault in dmesg (so no segfault) so there are likely touch bugs in Gnome.

    January 15, 2015
    A tip that seems to work:
    When running
    xrandr --output DSI1 --rotate right
    xrandr --output DSI1 --rotate normal
    Even when stuck in blackout mode, this seems to make the display come up. Not only this seems to work, it also appears to hook the touch screen rotation to work with the new translated coordinates. Now I need the accelerometer to work. Then again mutter seems to crash often.

    March 13, 2015
    Due to work, haven't had much time to work on this. I tried building Linux 4.0.0rc3 and things weren't much different than before. In fact, worse - the rtl8723bs driver will no longer build on this kernel. I tried hacking it a bit to make it compile but it's now really unstable. I had also updated the Gentoo install to Gnome 3.14.

    March 21, 2015
    Tried 4.0.0rc4. Could not get it to boot to the command prompt... ouch. Not sure if I fubarred a config or what.

    April 6, 2015
    I tried 4.0.0rc5, and still broken. Hmm... The problem is that it spews errors so much that systemd's journald is overwhelmed. I also tried to set systemd to log to a different virtual console than /dev/console but to no avail. Need to try another build to see what's going on with this.
    I also tried suspend/resume on 4.0.0rc3. The backlight stayed on during "suspend". I wondered what button to push to resume, though it was pretty slow at resuming as I fumbled through the four buttons... And the touchscreen as well as wifi stopped working on resume. Bleah.

    April 8, 2015
    I tried kernel 4.0.0rc7 with a fresh .config from my last known working config, from kernel 3.19rc4, and it started working again. With the "new" rtl8723bs driver, it worked. However my HPET hack stopped working - I will need to see why it stopped using the hacked-to-work hpet driver once more. So the current belief is that my old 4.0.0rc4 and rc5 .configs were broken somehow.
    With HPET broken, the machine's gui is slow as molasses once more. However it does get into Gnome fine and I was able to use the touchscreen. I did not try suspend/resume again ... yet ...

    April 14, 2015
    Linux 4.0.0 was released. I tried it... alas, no dice, still not working perfectly. I used my 4.0.0rc7 config and rebuilt the rtl8723bs driver. HPET doesn't work (even with my hack). TSC is unstable and stuck with refined jiffies. Sound doesn't work. Backlight doesn't turn off. Screen usually shuts off during boot, requiring xrandr to reenable. Power button isn't registerred. Bluetooth still MIA. rtl8723bs is somewhat flaky. Suspend resume causes devices to stop working. No battery level reporting.

    Isn't this perfect?

    May 5, 2015
    I saw that Linux 4.1-rc2 had been released. I built it but haven't quite run it yet. There seems to be more drivers but who knows if it has the ones I need now.

    May 6, 2015
    Tried booting 4.1-rc2 - ouch, got jammed in journald once more. Grr. Running "quiet" in the kernel command line at least got it to stop spamming but it still got stuck trying to write to 'persistent' storage. Alas, the ext4 journal never got committed when I had to hard reboot the tablet to regain control - I was hoping something got written to help debug kernel config. Need to scour the kernel .config to see what option shouldn't be set.

    May 7, 2015
    Accelerometer is working with the iio subsystem! The driver is kxcjk1013 (acpi i2c-SMO8500) and data can be extracted from /sys/module/kxcjk_1013/drivers/i2c:kxcjk1013/i2c-SMO8500:00/iio:device0/in_accel_*_raw .
    Found that the BMBT battery subsystem is apparently causing the hang by spamming the logs. Need to figure out how to disable this in the kernel. However something was very strange in this last debug - though it still reports the battery at 100%, it also said something about "LOW" (which actually could be accurate as I haven't charged the battery in a while.)
    I will let the battery recharge overnight.

    May 8, 2015
    I hacked up autorot that someone could use to auto-rotate landscape/portrait on the Nextbook 8. I have a problem with my timer source so I have "timeout" set very low (1 sec) but you may want to increase this to save some power and inadvertent screen flipping, since xrandr is slow. But this little script (run as autorot & in a shell) seems to work. Not the best of solutions but I can safely now say: YES AUTOMATIC SCREEN ORIENTATION WORKS!!!

    May 12, 2015
    I built Linux 4.1-rc3 and found the kernel config that was causing systemd's journald spam -> CONFIG_POWER_SUPPLY_DEBUG ... finally rootcaused. I found that simply forcing TSC seems to work ok for the timer - not great but at least the clock is correct. No additional hardware seems to be working, and gzipping/xz'ing kernel modules makes systemd puke...

    June 1, 2015
    Built Linux 4.1-rc6. No improvement. When I set clocksource=tsc on the cmdline, the rtl8723bs doesn't work. Horrible horrible.

    June 16, 2015
    Built Linux 4.1-rc8. No improvement. I also pulled the new rtl8723bs code. It looks like this newest pull is worse and hangs one thread of the cpu. Grr. So, overall it's a regression.
    I also forgot that I had forced PMIC to control the backlight which apparently is wrong. Removing the command line option hopefully allowed the LPSS to control the backlight, alas, still no backlight control.

    June 18, 2015
    I had the link for but finally got a chance to try it. However, no dice. I tried hciattach /dev/ttyS[0-2] rtk_h5 but it still didn't detect the bluetooth device. I'm not certain which device has the bluetooth connected, and even more baffled at the firmware and how it gets incorporated.

    June 28, 2015
    Looks like Linux-4.1.0 was released. I pulled a new version of the rtl8723bs wifi code and built the new release kernel and ran it on the tablet. It looks about the same as all previous versions, nothing new, maybe a bit weird behavior with gnome-shell which seems to be eating a lot of cpu - but unsure if it was like this before the kernel bump. Oh well, at least I can blow away all the older kernels and keep 4.1.0 as the baseline.

    July 19, 2015
    I let Windows boot on this machine for the first time. Alas it was a "free" license. I did not activate it however, but it did boot the UI.
    There were some interesting things:
    GPIO HID keyboard... wtf?
    GPIO HID Consumer Control Device, System Controller, and Sideband GPIO Buttons Injection Device...
    HM2056 and GC310(Realtek I2S Audio Codec shares I2C port) cameras
    Realtek provided the driver for the Bluetooth UART attachment. The (HS)UART attached is a PCI device and is using memory range 0x5091B000-0x5091BFFF, IRQ 0x27, DMA 2 and 3. Weird - but this is clearly /dev/ttyS1 .
    The other (HS)UART is at memory range 0x5091D000-0x5091DFFF, IRQ 0x28, DMA 4 and 5. Nothing is attached according to Windows. This would be the "phantom" /dev/ttyS2 .
    The ISA bridge serial port UART (COM1:) appears unassociated, /dev/ttyS0.

    I also have to hand it to Microsoft, they did think about the keyboard problem and worked on it. It's better than the Gnome3 solution by far. Caribou is deer dung compared to Microsoft's keyboard.

    July 20, 2015
    I found some interesting code at, strangely enough, at the Android Asus Zenfone5 GitHub page (the 5 being a 5" phone). This being "weird" more of "ironic" that I had gotten an Asus Zenfone 2 (the 2 being more of a roman numeral II) recently as well. It figures, both of these phones and the Nextbook8 are Intel based, and it looks Intel and Asus have been writing drivers for the Android fork. Sigh. I wonder when these will be backported to mainline, as I may have to also run a real Linux on the ZF2 someday as well instead of this dopey Android... Yes I still would rather run Maemo on my dying Nokia N900 than use this ZF2 right now. I hate Android, Maemo has the right balance between network use, power consumption, and being a true smartphone. Android is a freaking personal tracking device, constantly chatting with the mother ship.

    July 21, 2015
    More experimentation in Windows.
    This thing is definitely fast enough to do general stuff. And yes it looks like this thing (windows that is) tries to call home often. It automatically "activated" itself and downloaded updates without my authorization. Boo. Oh well, it was mine, not like I pirated it. I just didn't want to activate it. I suppose now I have 6 months to use the 1 year of Office 365, which I might well just delete from the SSD for more space as I don't want anything that mucks with my data and depends on the network and shouldn't need to be so. That's just asking for problems.
    I also tried World of Warcraft on it. Using a 64GB MicroSDXC card, it was able to play the game just fine. It is slower than my HP Envy4 but still very usable...that is, if you had a mouse and keyboard. It's impossible to play the game with the touchscreen. I hope to someday see how this runs in Linux, but the HD4000 seems pretty capable. I wonder if the PowerVR would work for WoW on my Zenfone2.
    Playing HD video through VLC seems to work fine too. One issue I had with my Asus eeePC 900A with its Atom N270 and 945GM chipset is that it's too slow. The quadcore "out of order" Silvermont Z3735G is faster than the Diamondville.

    July 27, 2015
    Well I finally found out why HPET was disabled on BYT. Sounds like there was a bug or issue where if the machine enters a really low power state, it will halt and thus time is no longer accurate. I guess I never hit the low power state and thus never hit the bug...

    Remaining work to be done (and some critical and serious (for me at least) problems that need to be resolved before usability):

    BOOT: break into boot process Seems pressing a button and holding it while turning tablet on, it will boot off of USB UEFI disks.
    BOOT: Grub/UEFI Boot/Secure Boot Disable
    LINUX: Get Linux Command Line (initrd or real userland)
    I/O: Access storage devices Micro SD card works.
    LINUX: systemd Systemd works
    NET: 802.11b/g/n wifi Wifi is working
    SYSTEM: clocksource Timer doesn't work correctly - HPET fails to initialize due to improper interrupts, TSC is unstable, jiffies and refined-jiffies is left but they lose time and thus no good. Hacked HPET to work, will have to use this as this so far seems the most stable clock source. But is broken in kernel 4.x May be forced to use TSC and deal with instability.
    HID: Touch screen on-screen keyboard - i2c touchscreen Working now, though poorly. Enabled all options in kernel setup. After using it for a few minutes, it tends to freeze up needing a reboot to restore. BAD... though it's gotten a little better recently.
    SYSTEM: HPET must be fixed, since TSC and refined-jiffies does NOT work correctly to give accurate system time.
    HPET seems to somewhat work on this platform! Had to do a kernel hack to back out HPET disable. HPET doesn't work anymore...
    OUTPUT: X11 Graphics - it seems that I can get into X11 after quitting Xorg once. Sometimes can get lucky and it will boot KMS just fine, hinting at some initialization issue.
    HID: Accelerometer for screen rotation Auto rotate NOW WORKING using custom script! (see above)
    I/O: IIO subsystem. This will enable the accelerometer and ambient light sensor - but these should be i2c devices... IIO seems to work as Accelerometer is working
    HID: Ambient Light Sensor
    Screen animates very slow, due to clocksource
    Currently only portrait mode, when I switched to landscape mode, the mouse seeems to work all funny. Need to use xinput to fix this, but ignoring it for now until I get the accelerometer to work. Wrote bash script to autorotate, but need to manually run every login
    ACPI: Getting Battery Life Remaining - says 100% left all of the time
    ACPI: Suspend/ResumeACPI S3 is broken. Really need to be using low power state which is better for this platform. The "Windows Land" name for this is "Connected Standby" and this requires both OS, Application, and hardware support. This may be the only area where the Android kernel and environment has a one-up on mainline kernels and standard Linux environment.
    HID: Power button does not give any indication to userland
    ACPI: Enter C7 state, or at least power down the LCD (and tell the rest of the computer to enter as low power state as possible).
    OUTPUT: Sound - Driver is loaded but doesn't work
    HID: Volume buttons and "windows" buttons - working now, but have limited use due to sound not working (GPIO buttons)
    SYSTEM: USB OTG as peripheral and Charging while running Linux - it does charge when Windows is running.
    NET: Bluetooth - part of the RTL8723BS... UART? H5-3wire? doesn't work...
    BOOT: efibootmgr, when I'm ready to commit the install to disk.
    DEV: Cameras do not work
    EXTRA: FM Radio, also part of RTL8723BS. Likely not available
    EXTRA: BCM4752 GPS??? Does one exist? Probably not, but according to ACPI it would be connected to /dev/ttyS2.