Jump to content

Lenovo YOGA Tablet 8/10 (lenovo-blade)

From postmarketOS Wiki
🚧 This page is a work-in-progress. Some information contained within may be inaccurate or incomplete.
Lenovo YOGA Tablet 8
10
Manufacturer Lenovo
Name YOGA Tablet 8
10
Codename lenovo-blade
Model B6000-F: 60043; Z0AF
B6000-H: 60044; Z0AG
B6000-HV: 60045; Z0AH
B8000-F: 60046; Z0AL
B8000-H: 60047; Z0AJ
Released 2013
Type tablet
Hardware
Chipset MediaTek MT8125
MediaTek MT8389
CPU 4x 1.2 GHz Cortex-A7
GPU PowerVR SGX544 @ 256 MHz (MT8389: 286 MHz?)
Display 1280 x 800 IPS
Storage 16 GB + microSD
Memory 1 GB
Architecture armv7
Software
Original software
The software and version the device was shipped with.
Android 4.2 / 4.4
Extended version
The most recent supported version from the manufacturer.
Android
FOSS bootloader no
postmarketOS
Category testing
Mainline
Instead of a Linux kernel fork, it is possible to run (Close to) Mainline.
yes
pmOS kernel
The kernel version that runs on the device's port.
7.1 (fork)
Features
Flashing
Whether it is possible to flash the device with pmbootstrap flasher.
Untested
USB Networking
After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system).
Works
Internal storage
eMMC, SD cards, UFS...
Partial
SD card
Also includes other external storage cards.
Partial
Battery
Whether charging and battery level reporting work.
Broken
Screen
Whether the display works; ideally with sleep mode and brightness control.
Partial
Touchscreen
Broken
Multimedia
3D Acceleration
Broken
Audio
Audio playback, microphone, headset and buttons.
Broken
Camera
Broken
Camera Flash
Broken
Connectivity
WiFi
Broken
Bluetooth
Broken
GPS
Broken
Modem
Calls
Broken
SMS
Broken
Mobile data
Broken
Miscellaneous
FDE
Full disk encryption and unlocking with unl0kr.
Untested
USB OTG
USB On-The-Go or USB-C Role switching.
Broken
Sensors
Accelerometer
Handles automatic screen rotation in many interfaces.
Works
Magnetometer
Sensor to measure the Earth's magnetism
Works
Ambient Light
Measures the light level; used for automatic screen dimming in many interfaces.
Broken
Haptics
Broken
Power Sensor
Sensor to monitor current, voltage and power. Not fuel gauge!
Broken

This page is currently unorganized, but please do not edit it for now. User:akku will take care of it.

SoC

MT8125/MT8389 is almost the same as the MT6589. The Wi-Fi version is equipped with the MT8125, while the 3G version is equipped with the MT8389. The kernel source code for MT8125/MT8389 is the same as that of MT6589.

Codename

use blade

B8000-F : blade10_row_wifi
B6000-H : blade8_row_3gdata

non-blade codename examples
A3000-H : a3000_row_call
B8080-H : MSM8226
YT-K606F (Yoga Tab 13): bladex_row_wifi

Variants

YOGA Tablet 8 (8-inch display)
B6000-F  : Wi-Fi
B6000-H  : Wi-Fi + 3G (Data only)
B6000-HV : Wi-Fi + 3G (Voice)

YOGA Tablet 10 (10-inch display)
B8000-F  : Wi-Fi
B8000-H  : Wi-Fi + 3G (Data only)

Contributors

Users owning this device

How to enter flash mode

Power + Volume Down + Volume Up -> Select Fastboot

Installation

Using pmbootstrap

Work in progress.

  1. download latest release
  2. build latest kernel
  3. unpack boot.img
  4. replace kernel with latest kernel
  5. replace busybox with busybox-static and remove bin (symlink), mv usr/bin bin (hack)
  6. replace around /bin/busybox --install -s in /init with:
export PATH=/usr/bin:/bin:/usr/sbin:/sbin
/bin/busybox --install -s
chmod +x /lib/ld-musl-armhf.so.1 /bin/* /sbin/* /usr/bin/* /usr/sbin/*
rm usr/bin
mv bin usr/bin
/usr/bin/busybox ln -s usr/bin bin
/bin/busybox --install -s
/bin/busybox-extras --install -s

(CarlivImageKitchen seems to strip the execution permissions from /lib!?)

  1. repack_mtk
  2. fastboot flash boot boot.img
  3. show login prompt

boot.img packed by pmbootstrap seems to be broken...

Kernel

The official source code (JellyBean, KitKat, Raw archive ) is fake/broken, and didn't boot after building, (GPL violation XD), so mainline and near downstream forked from aquaris-5 are the targets. You can find out about porting status here.

U-Boot

Boots. But the port is incomplete. You can check the progress of the port here.

Development is stopped until the kernel exceeds the size of the boot partition.

Components

see MediaTek's Mobile Processor Lines 2019-01-18 and TeamYogaBlade2 Linux wiki

Device Data

Memory Map

(KitKat, b8000 Wi-Fi)

# cat /proc/iomem
11006000-110060ff : mtk-uart.0
11007000-110070ff : mtk-uart.1
11008000-110080ff : mtk-uart.2
11009000-110090ff : mtk-uart.3
1100d000-1100d070 : mt-i2c.0
  1100d000-1100d070 : mt-i2c
1100e000-1100e070 : mt-i2c.1
  1100e000-1100e070 : mt-i2c
1100f000-1100f070 : mt-i2c.2
  1100f000-1100f070 : mt-i2c
11010000-11010070 : mt-i2c.3
  11010000-11010070 : mt-i2c
11011000-11011070 : mt-i2c.4
  11011000-11011070 : mt-i2c
11012000-11012070 : mt-i2c.5
  11012000-11012070 : mt-i2c
11013000-11013070 : mt-i2c.6
  11013000-11013070 : mt-i2c
11016000-11016028 : mt-spi.0
  11016000-11016028 : mt-spi
11230000-11230108 : mtk-msdc.0
  11230000-11230108 : mtk-msdc
11240000-11240108 : mtk-msdc.1
  11240000-11240108 : mtk-msdc
11260000-11260108 : mtk-msdc.3
  11260000-11260108 : mtk-msdc
15000000-1500e000 : camera-isp.0
  15000000-1500e000 : camera-isp
80000000-bf5fffff : System RAM
  80008000-8090bfff : Kernel code
  80942000-80c2b52f : Kernel data
bf600000-bfffffff : mtkfb.0

(b6000 3g [1])

root@B6000:/ # cat /proc/iomem
11006000-110060ff : mtk-uart.0
11007000-110070ff : mtk-uart.1
11008000-110080ff : mtk-uart.2
11009000-110090ff : mtk-uart.3
1100d000-1100d070 : mt-i2c.0
1100d000-1100d070 : mt-i2c
1100e000-1100e070 : mt-i2c.1
1100e000-1100e070 : mt-i2c
1100f000-1100f070 : mt-i2c.2
1100f000-1100f070 : mt-i2c
11010000-11010070 : mt-i2c.3
11010000-11010070 : mt-i2c
11011000-11011070 : mt-i2c.4
11011000-11011070 : mt-i2c
11012000-11012070 : mt-i2c.5
11012000-11012070 : mt-i2c
11013000-11013070 : mt-i2c.6
11013000-11013070 : mt-i2c
11016000-11016028 : mt-spi.0
11016000-11016028 : mt-spi
11230000-11230108 : mtk-msdc.0
11230000-11230108 : mtk-msdc
11240000-11240108 : mtk-msdc.1
11240000-11240108 : mtk-msdc
11260000-11260108 : mtk-msdc.3
11260000-11260108 : mtk-msdc
15000000-1500e000 : camera-isp.0
15000000-1500e000 : camera-isp
80000000-bbffffff : System RAM
80008000-80930fff : Kernel code
8096a000-80c5b12f : Kernel data
bd800000-bf5fffff : System RAM
bf600000-bfffffff : mtkfb.0

mediatek/platform/mt6589/kernel/core/Makefile.boot

   zreladdr-y	:= 0x80008000
params_phys-y	:= 0x80000100
initrd_phys-y	:= 0x82600000

Bootloader data

$ fastboot getvar all
(bootloader) 	partition-size:userdata: 32000000
(bootloader) 	partition-type:userdata: ext4
(bootloader) 	partition-size:cache: 7e00000
(bootloader) 	partition-type:cache: ext4
(bootloader) 	partition-size:system: 40000000
(bootloader) 	partition-type:system: ext4
(bootloader) 	partition-size:fac: c800000
(bootloader) 	partition-type:fac: ext4
(bootloader) 	partition-size:expdb: a00000
(bootloader) 	partition-type:expdb: raw data
(bootloader) 	partition-size:ebr2: 80000
(bootloader) 	partition-type:ebr2: raw data
(bootloader) 	partition-size:logo: 300000
(bootloader) 	partition-type:logo: raw data
(bootloader) 	partition-size:misc: 80000
(bootloader) 	partition-type:misc: raw data
(bootloader) 	partition-size:sec_ro: 600000
(bootloader) 	partition-type:sec_ro: ext4
(bootloader) 	partition-size:recovery: 600000
(bootloader) 	partition-type:recovery: raw data
(bootloader) 	partition-size:boot: 600000
(bootloader) 	partition-type:boot: raw data
(bootloader) 	partition-size:uboot: 60000
(bootloader) 	partition-type:uboot: raw data
(bootloader) 	partition-size:seccfg: 20000
(bootloader) 	partition-type:seccfg: raw data
(bootloader) 	partition-size:protect_s: a00000
(bootloader) 	partition-type:protect_s: ext4
(bootloader) 	partition-size:protect_f: a00000
(bootloader) 	partition-type:protect_f: ext4
(bootloader) 	partition-size:nvram: 500000
(bootloader) 	partition-type:nvram: raw data
(bootloader) 	partition-size:pro_info: 300000
(bootloader) 	partition-type:pro_info: raw data
(bootloader) 	partition-size:pmt: 400000
(bootloader) 	partition-type:pmt: raw data
(bootloader) 	partition-size:ebr1: 80000
(bootloader) 	partition-type:ebr1: raw data
(bootloader) 	partition-size:mbr: 80000
(bootloader) 	partition-type:mbr: raw data
(bootloader) 	partition-size:preloader: 600000
(bootloader) 	partition-type:preloader: raw data
(bootloader) 	kernel: lk
(bootloader) 	product: BLADE10_ROW_WIFI
(bootloader) 	version: 0.5
all: Done!!
Finished. Total time: 0.004s

cmdline

(b8000-f, twrp)

~ # cat /proc/cmdline
console=ttyMT0,921600n1 vmalloc=530M slub_max_order=0 lcm=1-cm_hx8896a01_dsi_vdo_boe fps=5797 bootprof.pl_t=3598 bootprof.lk_t=3631 printk.disable_uart=1 boot_reason=1

Panel

check panel driver reversing

ProjectConfig.mk

The ProjectConfig.mk contained in the downstream kernel is fake.

https://gist.github.com/akku1139/ad961f42623679f5d86335a052ea1975

See also