Skip to content

Instantly share code, notes, and snippets.

@lebarsfa
Last active December 30, 2023 16:53
Show Gist options
  • Save lebarsfa/8ee33ed965b921fcc2b450e2547afec7 to your computer and use it in GitHub Desktop.
Save lebarsfa/8ee33ed965b921fcc2b450e2547afec7 to your computer and use it in GitHub Desktop.
Review of ASUS Transformer Book T100TA-DK027P with keyboard and preinstalled Windows 8.1 Pro 32 bit
Review of ASUS Transformer Book T100TA-DK027P with keyboard and preinstalled Windows 8.1 Pro 32 bit
See https://www.asus.com/fr/commercial-laptops/asus_transformer_book_t100ta/
Some specific hardware characteristics:
Intel® Bay Trail-T Quad Core Z3775 1.46 GHz ~ 2.39 GHz, see https://www.intel.com/content/www/us/en/products/sku/80268/intel-atom-processor-z3775-2m-cache-up-to-2-39-ghz/specifications.html
Battery: 2 cells 8000 mAh 31 Wh
Intel HD Graphics 8086:0F31 @ 1368x768 60 Hz
Internal storage Hynix HCG8e 60 GB
2 GB of RAM
Broadcom 802.11abgn Wireless SDIO Adapter
Micro SD card reader
32 bit UEFI Class 3 without CSM, has TPM, processor is 64-bit capable, with VT-x
ESC: Boot device selection menu
DEL: Boot into BIOS Setup (same as F2)
F2: Boot into BIOS Setup
F9: Boot into Windows recovery mode
F12: Not sure what this is, it briefly flashes "Launching FFU.efi" then print "Main Start" and sits there
Vol Down: Boot Device Selection Menu
Power+Vol Up: Boot into Windows recovery mode (same as F9)
Note that some of its main and quite specific hardware and software characteristics (32 bit UEFI Class 3 without CSM (i.e. not compatible with OS that require a BIOS) with a 64 bit capable processor) are shared with other devices such as Intel Compute Stick STCK1A32WFC, ZOTAC ZBOX PI321 pico and others (typically cheapest, tinyest and power-efficient PCs from around 2014-2015 period).
The main advantages are:
Small, lightweight.
Very power-efficient and still able to run decently most typical Windows apps, HD videos, etc.
Perfect for travelling or working on your bed when you need more than a smartphone (w.r.t. app compatibility) but you feel that a standard laptop is too big and heavy for what you want to do...
The main difficulties are:
Short internal storage, RAM and processing power.
Not directly compatible with Windows 64 bit. The best option for now seems to use Remote Desktop to connect to a more powerful computer running Windows 64 bit, but it is not always possible or convenient to do so (e.g. when travelling, when the Internet connection is not good enough, when you need to use some specific hardware that is not available on the remote computer, etc.).
Harder than usual to get Ubuntu 64 bit to work well.
Automatic device encryption/BitLocker was quite new at that time and may cause unexpected data loss and make data more difficult to share between OS.
UEFI does not seem to propose to boot from micro SD.
Slow internal storage, Wi-Fi, SD card reader: SD card reader limited to 20 MB/s (tested SD card inside a Kingston FCR-HS4 USB 3.0 adapter can go at more than 80 MB/s), same for Wi-Fi (Wi-Fi in SDIO...), same also for internal storage (20 MB/s write, but 120 MB/s read?) which appears also like a SD card in Ubuntu...
Weird issues:
When there seem to be a hardware or driver problem, try reinstalling SOCPackage_Intel_BayT_T100TA_Win81_32_VER112.zip and double-check the settings of the device are like you want. Examples of problems possibly solved:
* Windows 10 night light mode stuck.
* Sound problems: causing distorted sound (on both Windows and Ubuntu...), slow video playing, remote desktop connection issues, unexpected balance settings for speakers (Windows audio settings had to be manually corrected for that problem).
Touchscreen problem, Fn key brightness problem: toggle the I2C Device on and off, change monitor driver?
On Ubuntu sometimes the click prints a character in the terminal...
When the lid is closed, Wi-Fi may stop (to check...).
Windows 10 v22H2 32 bit drivers (see https://www.asus.com/me-en/supportonly/t100ta/helpdesk_download/ , https://www.intel.com/content/www/us/en/download/18606/intel-graphics-driver-for-windows-15-33.html , https://ivanrf.com/en/latest-asus-drivers-for-windows-10/ , to check...):
T100TAAS314.zip (UEFI)
Audio_Realtek_Win81_32_VER6296004087.zip
SOCPackage_Intel_BayT_T100TA_Win81_32_VER112.zip
ATKPackage_Win10_32_VER100050.zip
SmartGesture_Win10_32_VER4012.zip
win32_15.33.53.5161.exe (Intel HD Graphics)
Ubuntu 22.04 64 bit on SD card (to initialize as GPT disk, tested with Secure Boot disabled in UEFI but maybe it is not required, to check...):
Optional?: Shell.efi (from https://github.com/tianocore/edk2/blob/UDK2018/ShellBinPkg/UefiShell/Ia32/Shell.efi or similar?) to copy at the root of the EFI partition of internal storage (need to assign a drive letter or mount point to this partition from existing Windows or Ubuntu Live USB disk...) to be able to manually launch grub or other EFI applications if needed to debug, also bootia32.efi from https://community.lecrabeinfo.net/topic/6783-tuto-installer-ubuntu-en-mode-uefi-r%C3%A9paration-du-grub/ may help (or create it manually as proposed in https://askubuntu.com/questions/549647/uefi-machine-doesnt-boot-ubuntu-through-nvram-bootcatalog-how-to-fix ?)...
Probably important and related to the fact the SD card is not directly detected by the UEFI (inspired from https://askubuntu.com/questions/1104910/grub-wont-find-ubuntu-after-sd-card-installation-on-a-uefi-compute-stick ): a partition /boot (ext4, 1 GB) should be used on internal storage (in addition to the existing EFI partition of internal storage, and the existing Windows partitions). /boot should receive some grub files, initrd (multiple versions, which takes some space...) and the EFI partition of the internal storage should be mounted to /boot/efi (mount manually and change later /etc/fstab if needed, take note of the UUID of the different partitions using gparted...?)...
Then a partition / (ext4) should be used on the SD card (in addition to the existing EFI partition of SD card if any, maybe should be removed to avoid confusion otherwise it may be wrongly mounted automatically in /boot/efi?).
Other data partitions can be also created on the SD card.
Ubuntu installation may say grub installation failed, try (to check...):
sudo apt install grub-efi-ia32
sudo grub-install --efi-directory /boot/efi
sudo update-grub
Debugging:
If needed from EFI shell (to launch from UEFI menu):
fs0:
EFI\ubuntu\bootia32.efi
Then grub rescue:
set prefix=(hd0,gpt4)/grub
normal
On Ubuntu:
sudo efibootmgr -c -g -l \\EFI\\ubuntu\\bootia32.efi -d /dev/mmcblk1p1 -L Ubuntu
or
sudo efibootmgr -c -g -l \\EFI\\ubuntu\\grubia32.efi -d /dev/mmcblk1p1 -L Ubuntu
or
sudo efibootmgr -c -g -l \\EFI\\ubuntu\\shimia32.efi -d /dev/mmcblk1p1 -L Ubuntu
may force the creating of a new boot entry in UEFI menu, but it may not fully work, try again to reinstall and reconfigure grub-efi-ia32 package... Note that depending on the context, /dev/mmcblk1 or /dev/mmcblk2 may refer to the SD card or to the internal storage...
There was no swapfile by default and RAM is quickly full which probably caused some freeze, to create one:
sudo apt install dphys-swapfile
Output of "bcdedit /enum Firmware" after dual boot setup (Windows Boot Manager is set as default in UEFI to minimize the risk of Windows updates removing some parts of grub, Windows Advanced startup or F2 key from UEFI can still be used to reboot to Ubuntu):
Firmware Boot Manager
---------------------
identifier {fwbootmgr}
displayorder {bootmgr}
{e7a8cea8-a4ca-11ee-95a3-806e6f6e6963}
timeout 1
Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume1
path \efi\microsoft\boot\bootmgfw.efi
description Windows Boot Manager
locale en-US
inherit {globalsettings}
default {current}
resumeobject {5fb0323a-e907-11ea-b587-b95a7237b18e}
displayorder {current}
{ntldr}
toolsdisplayorder {memdiag}
timeout 3
Firmware Application (101fffff)
-------------------------------
identifier {e7a8cea8-a4ca-11ee-95a3-806e6f6e6963}
device partition=\Device\HarddiskVolume1
path \EFI\ubuntu\grubia32.efi
description ubuntu
Output of "sudo efibootmgr" after dual boot setup:
BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0001,0000,0002,0003
Boot0000* ubuntu
Boot0001* Windows Boot Manager
Boot0002* Windows Boot Manager
Boot0003* ubuntu
(not sure why the entries were duplicated after the reboot, I tried to delete them from Windows before using "bcdedit /delete {XXX}"...)
Things that prevent from running Windows 10-11 64 bit natively:
As said in https://superuser.com/a/1669942 , it is not clear if someone really managed to get Windows 64 bit working on a 32 bit only UEFI without CSM.
To help for tests, this situation can be simulated with a VMware virtual machine on a powerful standard 64 bit computer: we need to create a new 32 bit Windows machine, add in the .vmx file "firmware="efi"" to make it UEFI without CSM, then we can install Windows 10 32 bit and check that Windows 10 64 bit standard installation method does not work, and make the relevant known tweaks to install correctly Ubuntu 64 bit.
If we prepare an internal disk with a standard Windows 10 64 bit already installed in UEFI 64 bit mode, the UEFI probably fails to run EFI\Boot\bootx64.efi and other 64 bit EFI applications (can be tested from UEFI shell, that is probably why there are bootia32.efi, grubia32.efi files...). We might try to replace the EFI partition with the one of a Windows 10 32 bit UEFI installation but it still fails at some point (C:\Windows\System32\winload.efi), some files in the Windows folder from the main NTFS partition could be replaced with the ones from a Windows 10 32 bit UEFI installation but we want to keep a 64 bit OS in the end (32 bit winload.efi does not seem better, maybe copy the 64 bit or 32 bit winload.exe as winload.efi, probably need to enable test signing and integrity check boot options, see also https://www.malekal.com/processus-demarrage-uefi-windows/ ...)...
Since the UEFI does not have CSM, it is not directly possible to make it act as a BIOS: if we replace the internal disk with a standard Windows 10 64 bit already installed in BIOS/MBR mode, the UEFI might not try to run MBR code (see https://unix.stackexchange.com/questions/699868/can-you-use-mbr-with-uefi-a-question-about-the-uefi-specification ). Due to this, https://superuser.com/questions/924497/grub-rescue-command-line-chainloading-windows-7-installer does not seem directly applicable.
Whether Windows 64 bit is started from UEFI 64 bit without CSM mode or BIOS mode, it probably expects some things to be set up previously as it wants:
* Emulating 64 bit UEFI: as seen for Ubuntu 64 bit, at some point 32 bit grub grubia32.efi seems able to get 64 bit code running, how to make it call correctly the 64 bit files from Windows? Explanations from https://easy2boot.xyz/agfm/things-to-know-about-uefi/ and the code from https://github.com/maharmstone/quibble may help, but not sure it will be easy to lure Windows into UEFI 64 bit mode...
* Emulating BIOS mode: would need the inverse of https://www.rodsbooks.com/bios2uefi/ , maybe modifying https://github.com/manatails/uefiseven , https://github.com/driver1998/vgashim , https://forum.osdev.org/viewtopic.php?f=1&t=33231 , https://www.rodsbooks.com/refind/ and checking what Seabios from qemu provides would be necessary (interrupt-related stuff?)...
Other related links: https://github.com/orgs/grub4dos/repositories (see discussions on https://reboot.pro/index.php?showtopic=22544, https://reboot.pro/index.php?showtopic=22493#entry218758 , grub4dos for UEFI, grub4dos/ntloader, etc.), https://github.com/maharmstone/quibble/issues/2 , https://github.com/CloverHackyColor/CloverBootloader/issues/509 .
Note that although not officially supported, Windows 11 v23H2 64 bit can work fast in a VMware virtual machine with 1 GB of RAM and BIOS on a powerful computer (e.g. by installing it manually from Windows PE, see e.g. https://www.ensta-bretagne.fr/lebars/Share/wimrestorembr.txt ), so the 2 GB of RAM of the ASUS T100 would be enough, and emulating a BIOS would not restrict it alone to Windows 10.
Also, a Windows To Go configuration could be probably tried on a good USB SSD to avoid deleting existing OS and for maximum performance (maybe with the help of Rufus to set it up...).
Potentially useful 64 bit drivers (see https://www.asus.com/me-en/supportonly/t100ta/helpdesk_download/ , https://www.intel.com/content/www/us/en/download/18606/intel-graphics-driver-for-windows-15-33.html , https://ivanrf.com/en/latest-asus-drivers-for-windows-10/ , to check...):
T100TAAS314.zip (UEFI unchanged)
Audio_Realtek_W10_64_V6087461.zip
SOCPackage_Intel_BayT not found yet for Windows 64 bit
ATK_Package_V100061.zip (not sure it is really 64 bit...)
SmartGesture not found yet for Windows 64 bit
win64_15.33.53.5161.exe (Intel HD Graphics)
Virtualization tests (the idea is to get somehow Windows 64 bit running since more and more apps are 64 bit-only, virtual machines should be run from a good USB SSD (e.g. Samsung SSD 860 Pro with Startech USB3S2SAT3CB adapter) to minimize performance loss...):
Windows 10 32 bit:
VMware-player-6.0.7-2844087.exe (vmx hardware 10) seems the last to support 32 bit hosts and can run Windows 8 - 10 v1507 - 10 v1511 64 bit guests (but not Windows 10 v1607 - 2019 - 11 64 bit guests, they crash at startup with KMODE EXCEPTION NOT HANDLED), max RAM usable up to physically available... VMware-player-full-17.5.0-22583795.exe can then be installed inside a Windows 10 v1507 64 bit guest, but still KMODE EXCEPTION NOT HANDLED for Windows 11 guest inside also (maybe different VMware processor virtualization engine options could be tried...?), also when tested specifically on the ASUS T100 we get before error XSAVE not supported (see also tests for Ubuntu, VMware-player-full-16.2.5-20904516.exe would need to be tested to solve that problem...)...
qemu-w32-setup-20221230.exe seems the last to support 32 bit hosts but too slow by default (need to use AHCI disk) and crash with -accel hax option (haxm-windows_v7_8_0.zip installed), does not seem compatible with Windows 11, max RAM 2047M usable (tested 1G)
VirtualBox 5.2 branch is the latest to support 32 bit, by default seems too slow to be interesting, potential optimizations should be checked if any...
Ubuntu 22.04 64 bit:
VMware-Player-Full-16.2.4-20089737.x86_64.bundle (vmx hardware 19) needs https://communities.vmware.com/t5/VMware-Workstation-Pro/VMware-16-2-3-not-working-on-Ubuntu-22-04-LTS/m-p/2906796/highlight/true#M175532 to build correctly missing modules (use "player-16.2.4" instead of "workstation-16.2.3", reboot after installation...) can start Windows 11 v23H2 64 bit guests (but quite slow, Windows 10 v1511 64 bit guest look also slower on Ubuntu than on Windows, maybe related to Vulkan limitations in Ubuntu graphics driver for ASUS T100...?), VMware-Player-Full-17.5.0-22583795.x86_64.bundle does not seem to be able to run any virtual machine (error XSAVE not supported, possibly related to hardware requirements changes in 17 versions, see e.g. https://communities.vmware.com/t5/VMware-Workstation-Player/XSAVE-error/td-p/2976056 )...
sudo apt install qemu-system ; qemu-system-x86_64 -accel kvm -m 1G -drive id=disk,file=8x64.vmdk,if=none -device ahci,id=ahci -device ide-hd,drive=disk,bus=ahci.0 but how to share network...?
So for now, using VMware-player-6.0.7-2844087.exe on Windows 10 v22H2 32 bit host with a Windows 10 v1511 64 bit guest with 2 cores and 1 GB of RAM running on a good USB SSD gives enough performance and seems the best solution when a Windows 10 64 bit is needed (though v1511 might not support some recent software, e.g. Visual Studio 2022...?) and not available through Remote Desktop.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment