GNU/Linux on Tolino Tab 8
Table of Contents
Editors note: The following is a guest post by Benjamin, who wrote in because he found an old blog post of mine aboout tablets that mentioned the Tolino Tab 8 - an Intel Bay Trail-powered device I ultimately gave up on. He did not, and here's what he did. Maybe this can help others and also Benjamin to get more features working. If you have feedback, feel free to reach out on the fediverse or email - I'll happily publish it and/or pass it on to Benjamin.
Why? Because why not! Although this device is old, it is powerful enough to run modern Linux. Since the original Android firmware is no longer supported, it would be a good idea to breathe some fresh life into this device. I didn't realise how difficult it would be. This blog post summarises the steps I took over several months to get a partially functioning Fedora 32 up and running on this device.
I accidentally wiped the internal storage using a combination of fastboot commands and adb with root access. The device boots in to a UEFI Shell if it can't find an OS (Android / Droidboot). Now the tablet can boot an OS from a USB flash drive. But it has Secure Boot enabled and to the extend of my knowledge no way to disable it without re-flashing the UEFI.
Some things I found out
Some things I found out:
- Bios can be accessed by pressing the esc key on a USB keyboard during power up: Sadly it is locked down and not many options are available like boot configuration or secure boot
- Windows 10 BSOD's on boot due to an acpi error (Yes, I've tried for fun)
- Linux cant change UEFI boot order or write in any way to it
- Very strict secure boot
- Use a externally powered USB hub or the USB port will turn off when multiple devices are connected
- Legacy booting is not supported (blocked by secure boot?)
- No other iso wants to boot and install
- Device will randomly power off during updates and installation
- Firmware is brain-dead after wiping and charging dose not work reliable any more
Steps to reproduce
- Overwrite internal EMMC using dd (adb root shell)
- Flash Fedora 32 (link under Bootable ISO files) to a USB drive
- Plug USB drive, using externally powered adapter, in to the Tolino Tab 8
- After a short while, Grub and then the installer will show up
- Install to the internal emmc (around 16 GB)
- Reboot
- Setup User
- Done
Hardware/Software compatibility
What works:
- Touch screen (surprisingly!)
- Changing screen brightness
- Sleep when pressing the power button
- Graphics acceleration
- The Tolino Home button opens the Gnome overview
- All 4 cores and 2GB of RAM
- Rebooting and powering off after adding "intel_idle.max_cstate=1; processor.max_cstate=1" to GRUB_CMDLINE_LINUX in grub.cfg; otherwise, battery has to be unplugged to power off device
- Enrolling custom Secure Boot keys
- External WiFi / Ethernet over usb
Does not work:
- Wi-Fi (detected, but has problems loading firmware blobs)
- Bluetooth (detected, but has problems loading firmware blobs)
- Audio (detected and configurable in Linux, but no audio output, only a pop on boot)
- Camera
- Microphone (even though recognised and configurable in Linux)
- Battery indicator does not display percentage (even though recognized and can report being on AC or battery)
- cat /sys/class/power_supply/ADP1/online returns "1" when plugged into AC
- cat /sys/class/power_supply/TIBT/status returns "Unknown"
- cat /sys/class/power_supply/TIBT/capacity returns "File not found"
- cat /sys/class/power_supply/TIBT/voltage_now: returns "No device found"
- cat /sys/class/power_supply/TIBT/current_now returns "No device found"
- Volume buttons:
Other Operating Systems
Windows 10:
- BSOD on boot due to ACPI error
Ubuntu
- 20.04: Boots into installer, but can't be installed due to a grub-install error
- 20.04 / 21.10: Black screen after GRUB
Linux Mint
- Black screen after GRUB
Final Thoughts
Was it worth it? No. Was it fun? Partially. It's such a shame to see a device so locked down. As the original post said, it should be illegal! Otherwise, if you have the patience and are crazy enough, go for it! I hope this post helps me find someone with the knowledge required to get Wi-Fi, Bluetooth and audio working on this Intel Bay Trail device.
Logs
Audio
aplay:
**** List of PLAYBACK Hardware Devices ****
card 0: Audio [Intel HDMI/DP LPE Audio], device 0: HdmiLpeAudio [Intel HDMI/DP LPE Audi]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Audio [Intel HDMI/DP LPE Audio], device 1: HdmiLpeAudio [Intel HDMI/DP LPE Audi]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: bytcrrt5640 [bytcr-rt5640], device 0: 1 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: bytcrrt5640 [bytcr-rt5640], device 1: Deep-Buffer Audio (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
dmesg:
[ 20.030317] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4334-sdio for chip BCM4334/3
[ 20.030431] usbcore: registered new interface driver brcmfmac
[ 20.037459] brcmfmac mmc0:0001:1: Direct firmware load for brcm/brcmfmac4334-sdio.To be filled by O.E.M.-To be filled by O.E.M..txt failed with error -2
[ 20.037521] brcmfmac mmc0:0001:1: Direct firmware load for brcm/brcmfmac4334-sdio.txt failed with error -2
[ 20.601784] iTCO_vendor_support: vendor-support=0
[ 20.609148] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.11
[ 20.609312] iTCO_wdt: Found a Bay Trail SoC TCO device (Version=3, TCOBASE=0x0460)
[ 20.610303] iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
[ 20.651529] input: gpio-keys as /devices/platform/INTCFD9:00/gpio-keys.2.auto/input/input6
[ 20.652052] input: gpio-keys as /devices/platform/INTCFD9:00/gpio-keys.3.auto/input/input7
[ 21.036056] input: chtdc_ti_pwrbtn as /devices/platform/80860F41:04/i2c-4/i2c-INT33F5:00/chtdc_ti_pwrbtn/input/input8
[ 21.043300] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50
[ 21.268504] bytcr_rt5640 bytcr_rt5640: quirk IN3_MAP enabled
[ 21.268510] bytcr_rt5640 bytcr_rt5640: quirk realtek,jack-detect-source 2
[ 21.268515] bytcr_rt5640 bytcr_rt5640: quirk realtek,over-current-threshold-microamp 2000
[ 21.268519] bytcr_rt5640 bytcr_rt5640: quirk realtek,over-current-scale-factor 1
[ 21.268523] bytcr_rt5640 bytcr_rt5640: quirk DIFF_MIC enabled
[ 21.268527] bytcr_rt5640 bytcr_rt5640: quirk SSP0_AIF2 enabled
[ 21.268531] bytcr_rt5640 bytcr_rt5640: quirk MCLK_EN enabled
[ 21.288361] bytcr_rt5640 bytcr_rt5640: snd-soc-dummy-dai <-> media-cpu-dai mapping ok
[ 21.288423] bytcr_rt5640 bytcr_rt5640: snd-soc-dummy-dai <-> deepbuffer-cpu-dai mapping ok
[ 21.291482] bytcr_rt5640 bytcr_rt5640: rt5640-aif2 <-> ssp0-port mapping ok
[ 21.311850] input: bytcr-rt5640 Headset as /devices/platform/80860F28:00/bytcr_rt5640/sound/card1/input9
[ 21.482145] audit: type=1130 audit(1760523357.079:86): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 21.779420] intel_rapl_common: Found RAPL domain package
[ 21.779423] intel_rapl_common: Found RAPL domain core
WiFi and Bluetooth
dmesg:
[ 15.417256] systemd-journald[615]: Received client request to flush runtime journal.
[ 15.426224] systemd-journald[615]: File /var/log/journal/4a1c3312c931454693867cffc0a4af2a/system.journal corrupted or uncleanly shut down, renaming and replacing.
[ 16.642137] kauditd_printk_skb: 36 callbacks suppressed
[ 16.642142] audit: type=1130 audit(1585761834.512:81): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=systemd-journal-flush comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 17.001745] audit: type=1130 audit(1585761834.871:82): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=systemd-udevd comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 18.078742] mei_txe 0000:00:1a.0: can't derive routing for PCI INT A
[ 18.078747] mei_txe 0000:00:1a.0: PCI INT A: no GSI
[ 18.315147] input: Intel HDMI/DP LPE Audio HDMI/DP,pcm=0 as /devices/pci0000:00/0000:00:02.0/hdmi-lpe-audio/sound/card0/input2
[ 18.315383] input: Intel HDMI/DP LPE Audio HDMI/DP,pcm=1 as /devices/pci0000:00/0000:00:02.0/hdmi-lpe-audio/sound/card0/input3
[ 18.405302] Bluetooth: Core ver 2.22
[ 18.405359] NET: Registered protocol family 31
[ 18.405362] Bluetooth: HCI device and connection manager initialized
[ 18.405370] Bluetooth: HCI socket layer initialized
[ 18.405374] Bluetooth: L2CAP socket layer initialized
[ 18.405390] Bluetooth: SCO socket layer initialized
[ 18.406778] Goodix-TS i2c-GDIX1001:00: i2c-GDIX1001:00 supply AVDD28 not found, using dummy regulator
[ 18.406842] Goodix-TS i2c-GDIX1001:00: i2c-GDIX1001:00 supply VDDIO not found, using dummy regulator
[ 18.407368] Goodix-TS i2c-GDIX1001:00: ID 9110, version: 1050
[ 18.412056] input: Goodix Capacitive TouchScreen as /devices/platform/80860F41:03/i2c-3/i2c-GDIX1001:00/input/input4
[ 18.467124] Bluetooth: HCI UART driver ver 2.3
[ 18.467128] Bluetooth: HCI UART protocol H4 registered
[ 18.467129] Bluetooth: HCI UART protocol BCSP registered
[ 18.467165] Bluetooth: HCI UART protocol LL registered
[ 18.467167] Bluetooth: HCI UART protocol ATH3K registered
[ 18.467193] Bluetooth: HCI UART protocol Three-wire (H5) registered
[ 18.467280] Bluetooth: HCI UART protocol Intel registered
[ 18.467452] Bluetooth: HCI UART protocol Broadcom registered
[ 18.467476] Bluetooth: HCI UART protocol QCA registered
[ 18.467478] Bluetooth: HCI UART protocol AG6XX registered
[ 18.467537] Bluetooth: HCI UART protocol Marvell registered
[ 18.479902] hci_uart_bcm serial0-0: serial0-0 supply vbat not found, using dummy regulator
[ 18.480088] hci_uart_bcm serial0-0: serial0-0 supply vddio not found, using dummy regulator
[ 18.519472] intel_sst_acpi 80860F28:00: Detected Baytrail-CR platform
[ 18.519736] intel_sst_acpi 80860F28:00: LPE base: 0x91000000 size:0x200000
[ 18.519740] intel_sst_acpi 80860F28:00: IRAM base: 0x910c0000
[ 18.519769] intel_sst_acpi 80860F28:00: DRAM base: 0x91100000
[ 18.519780] intel_sst_acpi 80860F28:00: SHIM base: 0x91140000
[ 18.519790] intel_sst_acpi 80860F28:00: Mailbox base: 0x91144000
[ 18.519807] intel_sst_acpi 80860F28:00: DDR base: 0x20000000
[ 18.520553] intel_sst_acpi 80860F28:00: Got drv data max stream 25
[ 18.569387] dw_dmac INTL9C60:00: DesignWare DMA Controller, 8 channels
[ 18.595303] dw_dmac INTL9C60:01: DesignWare DMA Controller, 8 channels
[ 18.866569] Bluetooth: hci0: BCM: chip id 68
[ 18.867282] Bluetooth: hci0: BCM: features 0x0f
[ 18.868619] Bluetooth: hci0: BCM4334B0
[ 18.868627] Bluetooth: hci0: BCM4334B0 (002.001.013) build 0000
[ 18.884139] bluetooth hci0: Direct firmware load for brcm/BCM4334B0.hcd failed with error -2
[ 18.884146] Bluetooth: hci0: BCM: Patch brcm/BCM4334B0.hcd not found
[ 19.085525] audit: type=1130 audit(1585761836.955:83): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=systemd-backlight@backlight:intel_backlight comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 19.349720] audit: type=1130 audit(1585761837.219:84): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=lvm2-pvscan@179:3 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 19.354771] input: PC Speaker as /devices/platform/pcspkr/input/input5
[ 19.392492] audit: type=1130 audit(1585761837.262:85): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=lvm2-monitor comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 19.534862] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 19.536783] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 19.783013] mmc0: queuing unknown CIS tuple 0x80 (2 bytes)
[ 19.784838] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)
[ 19.786395] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)
[ 19.789180] mmc0: queuing unknown CIS tuple 0x80 (7 bytes)
[ 19.794180] mmc0: queuing unknown CIS tuple 0x80 (14 bytes)
[ 19.795443] mmc0: queuing unknown CIS tuple 0x80 (2 bytes)
[ 19.925633] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4334-sdio for chip BCM4334/3
[ 19.925758] usbcore: registered new interface driver brcmfmac
[ 19.964551] brcmfmac mmc0:0001:1: Direct firmware load for brcm/brcmfmac4334-sdio.To be filled by O.E.M.-To be filled by O.E.M..txt failed with error -2
[ 19.964614] brcmfmac mmc0:0001:1: Direct firmware load for brcm/brcmfmac4334-sdio.txt failed with error -2
[ 20.247589] iTCO_vendor_support: vendor-support=0
[ 20.256900] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.11
[ 20.257024] iTCO_wdt: Found a Bay Trail SoC TCO device (Version=3, TCOBASE=0x0460)
[ 20.257404] iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
[ 20.274798] input: gpio-keys as /devices/platform/INTCFD9:00/gpio-keys.2.auto/input/input6
[ 20.280252] input: gpio-keys as /devices/platform/INTCFD9:00/gpio-keys.3.auto/input/input7
[ 20.594287] input: chtdc_ti_pwrbtn as /devices/platform/80860F41:04/i2c-4/i2c-INT33F5:00/chtdc_ti_pwrbtn/input/input8
[ 20.879790] bytcr_rt5640 bytcr_rt5640: Overriding quirk 0x643423 => 0x10b
[ 20.879838] bytcr_rt5640 bytcr_rt5640: quirk map 0xb is not supported, microphone input will not work
[ 20.879841] bytcr_rt5640 bytcr_rt5640: Invalid routing, bytcr detected but no SSP0-based quirk, audio cannot work with SSP2 on bytcr
[ 20.896810] bytcr_rt5640 bytcr_rt5640: snd-soc-dummy-dai <-> media-cpu-dai mapping ok
[ 20.896872] bytcr_rt5640 bytcr_rt5640: snd-soc-dummy-dai <-> deepbuffer-cpu-dai mapping ok
[ 20.897240] bytcr_rt5640 bytcr_rt5640: rt5640-aif1 <-> ssp2-port mapping ok
[ 20.965551] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50
[ 21.025350] audit: type=1130 audit(1585761838.895:86): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 21.256816] intel_rapl_common: Found RAPL domain package
[ 21.256821] intel_rapl_common: Found RAPL domain core
[ 21.576962] audit: type=1130 audit(1585761839.447:87): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=systemd-udev-settle comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 21.741691] audit: type=1130 audit(1585761839.612:88): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=dmraid-activation comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 21.741811] audit: type=1131 audit(1585761839.612:89): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=dmraid-activation comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 21.893544] audit: type=1130 audit(1585761839.763:90): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=systemd-fsck@dev-disk-by\x2duuid-72755cc7\x2da21d\x2d4c7c\x2dae1c\x2d9039aaefef56 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 21.912441] audit: type=1130 audit(1585761839.782:91): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=systemd-fsck@dev-disk-by\x2duuid-7F8B\x2d8309 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 21.926989] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
[ 22.023146] audit: type=1130 audit(1585761839.893:92): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=dracut-shutdown comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 22.045712] audit: type=1130 audit(1585761839.916:93): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=plymouth-read-write comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 22.148209] audit: type=1130 audit(1585761840.018:94): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=import-state comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 22.448678] audit: type=1130 audit(1585761840.318:95): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=systemd-tmpfiles-setup comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 22.498489] audit: type=1305 audit(1585761840.368:96): op=set audit_enabled=1 old=1 auid=4294967295 ses=4294967295 subj=system_u:system_r:auditd_t:s0 res=1
[ 22.566431] RPC: Registered named UNIX socket transport module.
[ 22.566434] RPC: Registered udp transport module.
[ 22.566436] RPC: Registered tcp transport module.
[ 22.566438] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 23.571002] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 23.571006] Bluetooth: BNEP filters: protocol multicast
[ 23.571014] Bluetooth: BNEP socket layer initialized
Bootable Iso files
Images







