ASUS Eee Pad Transformer (asus-tf101)

== 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 ===
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.
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!
== 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:
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 ===
=== Links ===
* Partition overview
* initial PR
* Nvidia Tegra 2 (tegra20)
* WIP pmaports repository
* Initial mainline tree for TF101, build mainline U-Boot from source
* Some notes about nvflash and APX mode
* Some issues with Qt applications
=== Videos ===
* How to install Debian 11 Bullseye on the Asus Eee Pad Transformer TF101 (U-Boot Method) (TF101 SBKv1 and SBKv2 ONLY) (Preferred)
* How to install Debian 11 Bullseye on the Asus Eee Pad Transformer TF101 (Rootbind Method).