- ASUS Transformer Pad (asus-tf300t)
- Compiling a kernel
- Android kernel
- Mainline (Grate)
- Installation
- How to enter flash modes
- Bootloader version
- Installation process
- Flashing rootfs to eMMC
- Hardware status (mainline)
- Usability
- Desktop environment
- U-Boot
- Installing PMOS with U-Boot on eMMC
- Issue with rootfs size
- Disassembly
- Dock
- Tablet
- See also
- ArchLinux на Asus Transformer TF300TG (arm)
ASUS Transformer Pad (asus-tf300t)
The first step to do anything with the device is unlocking, with this device its done by sideloading the unlock apk from asus and clicking a few buttons in the app. In case you get a network connection error, you will need to patch the unlocker.
Compiling a kernel
Android kernel
- 3.1 kernel based on ASUS sources with updates till Oreo support (Morpheus kernel)
- 3.4 kernel as a part of Unlegacy Android Project (Unlegacy kernel)
Mainline (Grate)
- Baseline kernel sources on master: https://github.com/grate-driver/linux
- Proper dts for TF300T is added
- Version: 6.0.6
- Status: Boots. Almost full support.
Installation
How to enter flash modes
Turn tablet off if it is in the system. Then press POWER and VOL DOWN buttons till you feel the vibration. Then release the POWER only. You will enter the bootloader/fastboot. In bootloader you can navigate with VOL DOWN button and to choose option use VOL UP button.
Bootloader version
You need bootloader version of 10.6.1.27.5 which is available in latest android ROM provided by Asus.
Installation process
The bootloader doesn’t handle flashing the boot and userdata partition correctly, the official firmware package flashes an «Android blob» to the staging partition with fastboot which triggers an flashing screen on the tablet which copies the data to the correct partitions. pmbootstrap has tools to pack and flash kernel correctly, no worries! |
Preparing rootfs and flashing kernel:
1 $ pmbootstrap init 2 $ pmbootstrap install 3 $ pmbootstrap flasher flash_kernel
Flashing rootfs to eMMC
WARNING: Preferable way of installing pmOS is installing on microSD card! |
This may change size of your data partition. You can fix it by resizing partition in TWRP before flashing Android. |
You should proceed very carefully here.
Rootfs should be flashed to the /userdata partition.
Prerequisites: TWRP, at least version 3.3.1-0, binaries for 10.6.1.27.5 bootloader are here.
First, start TWRP (go to bootloader and choose RCK) and then continue with these instructions
1 (computer) $ pmbootstrap export 2 (computer) $ adb shell 3 (twrp) $ umount /dev/block/mmcblk0p8 4 (computer again) $ adb push /tmp/postmarketOS-export/asus-tf201.img /dev/block/mmcblk0p8 (i.e. `asus-tf300tg.img` or `asus-tf300t.img`)
Hardware status (mainline)
Status | Hardware | Info |
---|---|---|
Y | Booting | boot.img has restriction of approx 8MB, which is /boot partition size. |
Y | Bootloader | Open source bootloader U-Boot is available as alternative for stock Asus bootloader and can replace it. U-Boot can not boot downstream kernel due to TrustZone problem. |
Y | Panel | Innolux G101ICE-L01 WXGA (1280×800) LCD IPS panel through LVDS controller. |
Y | HDMI output | HDMI works, but maximum output is 1080p due to Tegra 3 limitations. |
Y | Touchscreen | Used Elantech EKTH1036 touchscreen. |
Y | USB | One full size USB 2.0 in dock or via 40pin adapter. |
Y | SD cards | MicroSD card and full sized SD card (recognized as USB drive) in dock. |
Y | Internal memory | Hynix emmc, works. |
P | GPS | Broadcom GPS BCM4751 is used. Needs more attention. |
Y | WiFi | Uses Azurewave AW-NH615 BCM4329. Wi-Fi works and firmwares are included. |
Y | Bluetooth | Uses Azurewave AW-NH615 BCM4329B1. Works fine out of the box. |
Y | GPIO keys | There is 3 keys on GPIO: Power, Volume up, Volume down. |
Additionally GPIO-keys like are LID sensor and Audio dock line-out detect.
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.
Usability
Desktop environment
Since 3D acceleration is not available yet, all DE which use it will be painfully slow and laggy.
Currently xfce4 or mate are recommended.
U-Boot
WARNING: This part is HIGHLY EXPERIMENTAL! DO NOT USE THIS IF YOU DO NOT KNOW WHAT YOU ARE DOING. |
Further procedure needs pre-made nvflash. Files blob.bin and bricksave.img are only thing that will save you from full brick and allow replace/restore Asus bootloader. |
Installing PMOS with U-Boot on eMMC
1. Primary, we need to compile a u-boot on legacy branch:
$ git clone https://github.com/clamor-s/u-boot -b legacy $ cd ~/legacy $ export CROSS_COMPILE=arm-linux-gnueabi- $ make transformer_t30_defconfig tf300tg.config # Make sure to use the correct model number $ make all
Copy u-boot-dtb-tegra.bin file to nvflash folder. Now, flash new bootloader with nvflash tool. Go to nvflash folder and do (Make sure to flash to EBT partition):
$ sudo ./wheelie --blob blob.bin $ sudo ./nvflash --resume --download 4 u-boot-dtb-tegra.bin
2. Secondary, during the Installation process add —split option then export:
$ pmbootstrap pull $ pmbootstarp init $ pmbootstrap install --split # --fde (optional) $ pmbootstrap export
3. Finally, set /boot partition: Mount pm_boot, copy dtb from dtbs folder to root directory (NOT rootfs), make uInitrd:
$ sudo mount /tmp/postmarketOS-export/asus-tf300tg-boot.img /mnt/tmp/ $ cd /mnt/tmp/ $ sudo cp /mnt/tmp/dtbs/tegra30-asus-tf300tg.dtb /mnt/tmp/ $ sudo mkimage -n "Ramdisk Image" -A arm -O linux -T ramdisk -C gzip -d initramfs uInitrd $ sudo umount /mnt/tmp
Go to nvflash folder and flash /root and /boot to tablet (Make sure to flash /root to UDA and /boot to APP):
$ sudo ./wheelie --blob blob.bin $ sudo ./nvflash --resume --download 17 /tmp/postmarketOS-export/asus-tf300tg-root.img $ sudo ./wheelie --blob blob.bin $ sudo ./nvflash --resume --download 10 /tmp/postmarketOS-export/asus-tf300tg-boot.img
Issue with rootfs size
When install with —fde option (Maybe without encryption issue the same. It’s not tested yet), the rootfs size less than Data partition on tablet. To fix it, we’ll need sdcard as Live boot (just install PMOS on it). Load from sdcard, unlock crypt_LUKS and do:
$ sudo parted /dev/mapper/luks-xxxxx $ print all # Look at max size partition (parted) resizepart 1
Then lock crypt_LUKS and reboot to eMMC. The rootfs size must to be changed.
Disassembly
Dock
- Remove 2 torx screws on the bottom
- Remove 4 Philips screws under the glued pads on the bottom
- Remove 3 Philips screws near the mouse buttons. Be careful with removing and adding back the top plastic piece, it has small clips
Tablet
See also
ArchLinux на Asus Transformer TF300TG (arm)
Попытки тестирования ArchLinux на arm android планшете Asus Transformer TF300TG.
Планшет разлочен, прошита TWRP рекавери, гибридное ядро с дуалбутом. Корневая файловая система развернута на внутренней памяти /media/data/linux, около 700 Мб
-cpuinfo: ARMv7 Processor rev 9 (v7l),
— ППЗУ /dev/mmсblk0p8 = internal storage; /dev/mmcblk1p1 = microsd slot in the tablet body (double check that, I’m not 100% sure); /dev/sda1 = standard sd slot in the keyboard
— камера основная и фронтальная не ловятся
— звук через pulseaudio: идеально; выход наушников и микрофон не настроены(?)
— батарея встроенная и батарея докстанции отображаются xfce
— в кардридере читаются карты 64 Gb (community/exfat-utils)
— юсб-хост; юсб-хост на доке; клавиатура док; тачпад док — все работает
— тачскрин очень недурно работает (пока без мультитача, в хроме при установленном плагине тач-прокрутки весьма удобно)
— модем мобильной сети : отлично
— wifi адаптер: иногда следуют отключения =(
— экран: 1280×800, xRandR rotate хорошо
— gps, датчики акселерометры, гирометры, компас — не проверялись.
Две батареи (при подключенном доке) держат более 24 часов!
Спецклавиши клавиатуры по дают весьма интересные коды, можно перемапить в будущем на f1. f12, а также настроить обработку нажатий; уже настроена регулировка яркости (/sys/class/backlight/pwm-backlight/brightness) и громкости (amixer). Качель громкости на теле планшета дает ровно те же коды, что и две клавиши громкости в верхнем ряду клавиатуры.
Есть проблемы с перезагрузкой, выключением (только долгим нажатием на питание) и совсем плохо с suspendoм
pacman работает, тащит пакеты для armv7h
conky вызываются с периодом одну секунду из «generic monitor», плагина xfce-панели, .conkyrc переписан для однократного вывода текста в консоль;
значение текущей раскладки в коньках берется как значение бита светодиода ‘scroll lock’, зажигание которого по старинке настроено в etc/X11/xorg.conf.d/20-keyboard-layout.conf
.conkyrc: $ | \ getkbdlayout: #/bin/sh case "$(xset -q|grep LED| rev | cut -c4)" in "0") KBD="en" ;; "1") KBD="ru" ;; *) KBD="unknown" ;; esac echo $KBD
Получился отличный почти-работоспособный нетбук с большим количеством софта, поддерживающий всю ноебходимую периферию и ооооочень большой батарекой! Впереди еще много работы, по acpi, всякие настройки, экранная клавиатура, обработка акселерометров для поворота экрана — есть шанс получить интересный native-linux планшет.