Jump to content

ASUS Eee Pad Transformer (asus-tf101)

From postmarketOS Wiki
ASUS Eee Pad Transformer
ASUS Eee Pad Transformer
ASUS Eee Pad Transformer
Manufacturer ASUS
Name Eee Pad Transformer
Codename asus-tf101
Released 2011
Hardware
Chipset Nvidia Tegra 2 (T20)
CPU Dual-core 1 GHz
GPU ULP GeForce
Display 1280x800 IPS
Storage 16/32 GB
Memory 1 GB
Architecture armv7
Software
Original software Android 3.0 on Linux 2.6.36
FOSS bootloader yes
postmarketOS
Category testing
Pre-built images no
Mainline yes
Unixbench Whet/Dhry score 442.8
Features
Flashing
Partial
USB Networking
Works
Internal storage
No data
SD card
No data
Battery
Works
Screen
Works
Touchscreen
Works
Keyboard
Works
Touchpad
Works
Multimedia
3D Acceleration
Partial
Audio
Works
Camera
Broken
Camera Flash
No data
Connectivity
WiFi
Works
Bluetooth
Works
GPS
Partial
Miscellaneous
FDE
Partial
USB-A
Works
HDMI/DP
Works
Sensors
Accelerometer
Works
Magnetometer
Works
Ambient Light
Works
Hall Effect
Works
Haptics
No data
U-Boot
Primary Bootloader
Works
Secondary Bootloader
Works
Mainline
Works
Internal Storage
Works
SD card
Works
USB Host
Works
USB Peripheral
Works
Display
Works
Keyboard
Broken
Buttons
Works


Basic Information

The Eee Pad is a tablet computer with a 10.1" IPS multi-touch screen with a resolution of 1280 × 800 and an Nvidia Tegra 2 system-on-a-chip (SoC). It has an 802.11b/g/n Wi-Fi module.

Requirements

The Eee Pad Transformer TF101 already comes with an unlocked bootloader, so no previous requirements are needed.

A custom recovery such as TWRP is not even needed neither.

Mainline Informations

Installation

Note If you haven't ever customized your TF101, please go here first.
Warning WARNING: This mainline installation does not work for TF101G or SL101 variants! Please use downstream installation instead or use this method.

We give first priority to U-Boot flashed devices than existing support to the old bootloader. In addition, these steps will format ALL the partitions of the TF101's partition table and then recreate them but with u-boot bootloader flashed on it, instead of the proprietary Asus Bootloader.

Make sure you backup your data before continuing. Note also that you won't be able to boot Android back easily.
Note A Linux computer is required (virtual machine won't work). Furthermore, this installation process has not been verified by a TF101 SBK2 version but it should also work.

Use the latest 9.2.1 firmware available, so upgrade if you need it here (mirror here).

You must know which SBK version your tablet has. For the asus-tf101, there are two versions only: sbkv1 and sbkv2.

However there is a caveat: two proprietary tools are needed, Wheelie (although source code is available on GitHub, some key features are missing, such as `--sbk` option) and Nvflash (proprietary Nvidia flash tool). So, a custom setup is available to get this working a little bit easier.

1. Go through the pmbootstrap installation method: `pmbootstrap init`, select your device (asus -> tf101), the interface or UI (XFCE, MATE or LXQT are recommended), `pmbootstrap export` and flash the resulting image to your Micro SD Card.

2. Now connect the device to the computer. This USB to 40 Pin cable is required.

3. Put your device into APX mode: First of all, power off the device and then press the power button + volume up button for 3 to 5 seconds.

4. Download U-Boot Tools for Asus Eee Pad Transformer TF101 here. Please read the release notes for instructions.

  • If you are unsure which SBK version you have, please try both flashing methods.
Warning WARNING: Do not unplug the USB under any circumstance.

5. Some operations will be executed on the tablet. Please be patient, wait from 5 to 10 minutes. Formatting Partition 15 (UDA) can also take some time. In case you don't know the SBK version of your tablet, you will see some errors, or the device not booting at all. In that case, please try the other SBK version.

Expected output (SBK1 example):

user@mycomputer:~$ ./uboot_sbkv1.sh 
Wheelie 0.1 - Preflight for nvflash.
Copyright (c) 2011-2012 androidroot.mobi
========================================

Using SBK type 1.
Using bootloader: 'bootloader.bin'.
Using BCT: 'transformer.bct'.
----------------------------------------

[=] Chip UID: YourHardwareID
[=] RCM Version: 0x20001

[=] CPU Model: Tegra 2
[=] Secure Boot Key Set: Yes
[+] Sending BCT
Sending file: 100 %
[+] Sending ODMData 0x300D8011
[+] Sending bootloader...
Sending file: 100 %
[!] Done - your device should now be ready for nvflash
Nvflash started
[resume mode]
setting device: 2 3
creating partition: BCT
creating partition: PT
creating partition: EBT
creating partition: SOS
creating partition: LNX
creating partition: BAK
creating partition: GP1
creating partition: APP
creating partition: CAC
creating partition: MSC
creating partition: USP
creating partition: PER
creating partition: YTU
creating partition: UDA
creating partition: GPT
Formatting partition 2 BCT please wait.. done!
Formatting partition 3 PT please wait.. done!
Formatting partition 4 EBT please wait.. done!
Formatting partition 5 SOS please wait.. done!
Formatting partition 6 LNX please wait.. done!
Formatting partition 7 BAK please wait.. done!
Formatting partition 8 GP1 please wait.. done!
Formatting partition 9 APP please wait.. done!
Formatting partition 10 CAC please wait.. done!
Formatting partition 11 MSC please wait.. done!
Formatting partition 12 USP please wait.. done!
Formatting partition 13 PER please wait.. done!
Formatting partition 14 YTU please wait.. done!
Formatting partition 15 UDA please wait.. done!
Formatting partition 16 GPT please wait.. done!
done!
sending file: u-boot.bin
- 565989/565989 bytes sent
u-boot.bin sent successfully
Nvflash started
[resume mode]

8. Now press the power button for a few seconds to reboot the device. After that, disconnect the USB from the device. It should be booting PostmarketOS!

WiFi and Bluetooth setup

If, for any reason, the WiFi or Bluetooth connections are not detected properly on the device, you may need to do these additional steps:

$ sudo cp /lib/firmware/postmarketos/brcm/* /lib/firmware/brcm/

Downstream informations

Installation

You have to flash a recovery like TWRP before doing this.

$ pmbootstrap install
$ pmbootstrap export

Now reboot the device in recovery

$ adb push /tmp/postmarketOS-export/boot.img-asus-tf101 /cache
$ adb push /tmp/postmarketOS-export/asus-tf101.img /cache

The following should be executed within adb shell:

$ adb shell
# dd if=/cache/boot.img-asus-tf101 of=/dev/block/mmcblk0p4
# dd if=/cache/asus-tf101.img of=/dev/block/mmcblk0p1

WiFi setup

WiFi is provided by the firmware-aosp-broadcom-wlan package. A very similar process can be found in https://wiki.postmarketos.org/wiki/Medion_Lifetab_S9714_(medion-kai)#How_bonsaiblue_made_wifi_work.


If the package is not installed, install it. Then, rename firmware files for detection:

# mv /lib/firmware/postmarketos/bcmdhd/bcm4329/fw_bcm4329.bin /lib/firmware/postmarketos/bcmdhd/bcm4329/fw_bcmdhd.bin
# mv /lib/firmware/postmarketos/bcmdhd/bcm4329/fw_bcm4329_abg.bin /lib/firmware/postmarketos/bcmdhd/bcm4329/fw_bcmdhd_abg.bin
# mv /lib/firmware/postmarketos/bcmdhd/bcm4329/fw_bcm4329_apsta.bin /lib/firmware/postmarketos/bcmdhd/bcm4329/fw_bcmdhd_apsta.bin

Now reboot your device and Wi-Fi will be detected properly.

Bluetooth setup

Bluetooth is provided by the bcm4329.hcd firmware file. It can be activated in downstream by some little hack that works for most bcm4329 and bcm4330 devices. You may need to build its source first: https://github.com/antonialoytorrens/brcm-patchram-plus

Please follow these steps to get it working:

#!/bin/sh
# Start brcm-patchram-plus for TF101

rfkill unblock 0
/usr/sbin/brcm_patchram_plus -d --patchram /lib/firmware/postmarketos/brcm/bcm4329.hcd --baudrate 921600 --bd_addr $(cat /lib/firmware/postmarketos/brcm/mac.txt) --enable_hci /dev/ttyHS2&

Where mac.txt is your MAC address. Works even if you generate it randomly, but it is still experimental and a work in progress. Sample here

See here for more information.

Hardware

Hardware status

Status for Mainline (M) and Downstream (D) kernels.

Status (M) Status (D) Hardware Info (M) Info (D)
Y Y Booting boot.img has restriction of approx 8MB, which is /boot partition size.
Y Y Panel AUO B101EW05 WXGA (1280x800) LCD IPS panel through LVDS controller.
Y N HDMI output
Y Y Touchscreen Used Atmel MXT1386 touchscreen.
Y Y USB One full size USB 2.0 in dock or via 40pin adapter.
Y Y SD Card MicroSD card and full sized SD card (recognized as USB drive) in dock.
Y Y eMMC Kingston KE4BT4B6A NAND Flash
P N GPS Broadcom GPS BCM4751 is used. Device tree has proper bindings but device itself has weak signal.
Y Y WiFi Azurewave AW-NH615 BCM4329. Wi-Fi should work out of the box. All needed stuff is included.
Y N GPIO keys There are 4 keys on GPIO: Power, Volume up, Volume down and LID sensor.
Y Y Dock Keyboard Dock has Nuvoton NPCE795LA0BX embedded controller which handles battery data, charging, leds, keyboard and touchpad. Driver of this EC is mainlined and is fully functional. Keyboard and Touchpad work. Alt Gr can be used for alternate multimedia keys instead of escape, fn keys, volumes and delete. Alt GR + Lock changes the default key mode.
Y Y Battery and Charger Driver is based on Texas Instruments bq20z75 SMBus Charge Controller driver. Charging and charge level of both batteries are shown correctly.
Y N PMIC TF101 uses Texas Instruments tps6586x PMIC.
Y N Sound Kernel driver and tegra_wm8903 glue driver are present. ALSA UCM is configured. Audio through HDMI works. Sound codec is WM8903
N N Voice processor Transformers use separate Fortemedia FM34NE voice processor. No mainline driver is available. Is used for voice processing and noise cancelling. Currently not used.
Y N Thermal sensor NCT1008 ON Semiconductor LM90 series thermometer.
Y N Orientation sensors Include Invensense mpu3050 gyroscope with Kionix KXTF9 accelerometer and Aichi AMI306 3-axis digital compass.
N N Light sensor Driver Dyna-Image AL3000.
N N Front/rear camera

Partition Overview

# Block Device Name Type
2 BCT Boot Config Table
3 PT Partition Table
4 EBT Bootloader
5 mmcblk0p9 SOS Recovery OS kernel (e.g. TWRP)
6 mmcblk0p10 LNX Current OS kernel (PostmarketOS or Android)
7 BAK Data
8 GP1 Partition Table (Instance #1)
9 mmcblk0p1 APP Android Apps Partition
10 mmcblk0p2 CAC Cache partition
11 mmcblk0p3 MSC Misc partition
12 mmcblk0p4 USP Staging partition (here are stored blobs before flashing by Asus bootloader)
13 mmcblk0p5 PER Persist partition (contains device specific files like mac and sensors calibrations)
14 mmcblk0p6 YTU Data
15 mmcblk0p7 UDA Android User Data Partition
16 GPT Partition Table (Instance #2)

Photos

TF101 Booting (downstream):

TF101 running Xfce user interface (downstream):

TF101 running Mate desktop:

Developer Info

Testing U-Boot in RAM

Nvflashing U-boot has its benefits: it acts as a temporary bootloader when booting Linux on TF101. The uboot file is stored in RAM instead. That way, you don't have to worry about flashing it permanently every time, only to test it.

To perform this, put your tablet in APX mode, download the needed files and type the following command (be aware this is for SBK1, for SBK2 you need to change the SBK keys) (not tested with SBK2, you can try this command anyway and report):

$ ./nvflash --bct transformer.bct --setbct --configfile flash.cfg --bl u-boot.bin --odmdata 0x300d8011 --sbk 0x1682CCD8 0x8A1A43EA 0xA532EEB6 0xECFE1D98 --sync

Note that there is an u-boot.bin file already in the zip folder. Please replace it with your u-boot.bin file instead.

Nvflash partitiontable.txt

Nvflash can print your partition table configuration as a better setup for offset calculations, needed in U-Boot.

To perform this, put your tablet in APX mode, download the needed files and type the following command (be aware this is for SBK1, for SBK2 you need to change the SBK keys) (not tested with SBK2, you can try this command anyway and report):

$ ./nvflash --bct transformer.bct --setbct --configfile flash.cfg --bl bootloader.bin --odmdata 0x300d8011 --sbk 0x1682CCD8 0x8A1A43EA 0xA532EEB6 0xECFE1D98 --sync
$ ./nvflash --resume --getpartitiontable partitiontable.txt

After that, if you have followed all this guide, your partition table txt file should be exactly like this:

Note If you haven't ever customized your TF101, which means it's your first time using this nvflash command and you don't have used any One-Click-Unlock Tool or EasyFlasher, please report here and attach partitiontable.txt file first before continuing with the installation.
PartitionId=2
Name=BCT
DeviceId=18
StartSector=0
NumSectors=1536
BytesPerSector=2048


PartitionId=3
Name=PT
DeviceId=18
StartSector=1536
NumSectors=256
BytesPerSector=2048


PartitionId=4
Name=EBT
DeviceId=18
StartSector=1792
NumSectors=2048
BytesPerSector=2048


PartitionId=5
Name=SOS
DeviceId=18
StartSector=3840
NumSectors=2560
BytesPerSector=2048


PartitionId=6
Name=LNX
DeviceId=18
StartSector=6400
NumSectors=4096
BytesPerSector=2048


PartitionId=7
Name=BAK
DeviceId=18
StartSector=10496
NumSectors=2560
BytesPerSector=2048


PartitionId=8
Name=GP1
DeviceId=18
StartSector=13056
NumSectors=512
BytesPerSector=2048


PartitionId=9
Name=APP
DeviceId=18
StartSector=13568
NumSectors=262144
BytesPerSector=2048


PartitionId=10
Name=CAC
DeviceId=18
StartSector=275712
NumSectors=271104
BytesPerSector=2048


PartitionId=11
Name=MSC
DeviceId=18
StartSector=546816
NumSectors=1024
BytesPerSector=2048


PartitionId=12
Name=USP
DeviceId=18
StartSector=547840
NumSectors=271104
BytesPerSector=2048


PartitionId=13
Name=PER
DeviceId=18
StartSector=818944
NumSectors=2560
BytesPerSector=2048


PartitionId=14
Name=YTU
DeviceId=18
StartSector=821504
NumSectors=256
BytesPerSector=2048


PartitionId=15
Name=UDA
DeviceId=18
StartSector=821760
NumSectors=14808320
BytesPerSector=2048


PartitionId=16
Name=GPT
DeviceId=18
StartSector=15630080
NumSectors=256
BytesPerSector=2048


Community Info

Contributors

  • CmdrWgls
  • rrooij
  • LongnoseRob
  • blacksoil
  • AAT596

Users owning this device

  • AAT596 (Notes: Dogfooding this device for daily basic tasks, very useful)
  • I9505 someone
  • LongnoseRob (Notes: pmOS (edge) w/ u-boot, UI: mate)
  • Lusiferaleisterandreyluzhin (Notes: used and hosts my website 24/7 (2021) , was seized by the police investigation department on March 8, 2022, returned six months later , waiting for flashing u-boot skb2 , have photos in disassembled form)
  • Pangelo (Notes: broken bezel and power/volume button supports but works ok)


Links

Videos