Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,778,037 Members 52,532 Now Online
XDA Developers Android and Mobile Development Forum

[FAQ] Asus T100: Installing custom OS (android/ubuntu/*nix/Windows 7/Windows 8 x64)

Tip us?
 
paperWastage
Old
(Last edited by paperWastage; 4th April 2014 at 05:29 PM.)
#1  
Senior Member - OP
Thanks Meter 395
Posts: 805
Join Date: Mar 2009
Location: NJ
Default [FAQ] Asus T100: Installing custom OS (android/ubuntu/*nix/Windows 7/Windows 8 x64)

[4 April 2014]I haven't had time to play with my device or update fully the info in this post
Jhong2 has an updated post on how to get ubuntu working on the Asus T100
http://forum.xda-developers.com/show...&postcount=181
http://www.jfwhome.com/2014/03/07/pe...mer-book-t100/

(do search for the specific topic headers to jump to them)
Post 1: Global Info
UEFI:
Bootloader auto-detection path:
Secure Boot
Partition Table for Live USB sticks:
How to boot from USB stick
Info for various operating systems:
Hardware info:
/cpu/cpuinfo:
Post 2: <backup/ archived infomation>

Post 3: Files
grub2 2.00-13ubuntu3 (13.04 raring sources) compiled for grub-efi-ia32 (x86) - bootia32



---------------------------------------------------------------------------------------


Global information
for BIOS 214 (2013.09.25), version loaded on retail T100 units

UEFI:

Bootloader auto-detection path:
(bootloader is only 32-bit compatible)
/efi/BOOT/bootia32.efi
WILL NOT pick up the x64 location /efi/BOOT/bootx64.efi
Secure Boot

You should disable Secure Boot in UEFI/Setup-Utility-Menu-> Security tab-> Secure Boot Menu -> Disable

Partition Table for Live USB sticks:
GPT or MBR works
Use Rufus (works for Windows/Unix ISOs) or Windows 7 USB Download Tool (works for Windows 7 / Windows 8)
How to boot from USB stick

NOTE:

If you don't see the USB drive on the boot list or the UEFI/Setup-utility, this means you have a badly prepped USB live drive, or the boot-list/UEFI/Setup-utility was loaded before the USB drive was read.
If you are on the boot list, boot into UEFI/Setup-utility. Then, go to the last tab, save changes and restart while holding F2 (to force the next reboot to go back into UEFI/Setup-utility). If you still don't see the USB drive after doing this multiple times, then you have a badly prepped USB drive.

I find using Rufus (GPT for UEFI + FAT + 64 kb+ bootable disk using ISO Image) to consistently get a working bootable USB drive
Option 1a) Boot to UEFI USB drive from Windows (works only if your USB is correctly prepped)
  1. Boot into Windows
  2. Swipe from right, click on settings.
  3. Click on Power. Press and hold the shift key, and then click on Restart
  4. A Blue menu should show up. Click on Use a device->click on the device name (might not show up if USB isn't prepped properly)
  5. Device should reboot into the USB

Option 1b) Boot to UEFI/Setup-Utility-menu from Windows (easiest, and almost no way to screw it up)
  1. Boot into Windows
  2. Swipe from right, click on settings.
  3. Click on Power. Press and hold the shift key, and then click on Restart
  4. A Blue menu should show up. Click on Troubleshoot-> Advanced Options-> UEFI Firmware Settings
  5. Inside UEFI/Setup-Utility-menu, go to the last tab, and select the USB Drive

NOTE:
For options 2a and 2b, if you see the ASUS logo and circle loading icon, you either:
  • Pressed button (ESCAPE/F2) too late. Solution: Reboot and try again
  • Have Fast startup enabled, and did the steps with the device in shutdown mode. Windows will cache the kernel/other stuff, and you might not be able to get to UEFI. Solution: Reboot from Windows and try again(reboot does not trigger caching). Or disable Fast Startup

Option 2a) Boot to UEFI/Setup-Utility-menu
  1. Inside Windows, restart system. Press and hold the F2 key
  2. You should get into the Aptio Setup Utility screen
  3. Inside UEFI/Setup-Utility-menu, go to the last tab, and select the USB Drive

Option 2b) Boot Menu
  1. Inside Windows, restart system. When screen goes blank, press and hold the ESCAPE key (if you press it too early, Windows might interpret you as cancelling the restart process)
  2. You should get a list of bootable devices
  3. If you see the ASUS logo, you've pressed the ESCAPE key too late. Restart and retry
Info for various operating systems:

You should backup the recovery partition to a separate USB key. Alternatively, you can do it with this ASUS utility Backtracker that HatesForums pointed me to

Windows:


Windows 8.1
  • x86: (Status: Works but missing drivers)
    Used Windows 7 USB Download Tool or Rufus to create bootable USB. Using en_windows_8_1_x86_dvd_2707392 from MSDN (x86 8.1 Regular & Pro ISO), able to install W8.1 x86 and boot to it (missing a few drivers, eg touch screen doesn't work, no sound). Windows is automatically activated without need for key. First boot had 25.7GB free out of 33.6GB.
  • x64: (Status: Not yet working)
    Used Windows 7 USB Download Tool or Rufus to create bootable USB. ISO does not contain bootia32.efi. Copied that file from the x86 ISO to USB, able to boot, but the installer complains that the processor isn't 64-bit compatible
Windows 7
  • x86: (Status: unknown)
    ISO does not contain efi
  • x64: (Status: unknown
    ISO only contains x64 efi
Unix:

Ubuntu:

You need an EFI-compatible distro. For ubuntu, x64 EFI is enabled since 12.04-2. However, we'll need to include x86 EFI because our bootloader only reads x86 EFIs
  • 13.04 x64 desktop- (Status: boots to GUI using fbdev)
    Used Rufus(GPT for UEFI + FAT + 64 kb+ raring x64 as bootable disk using ISO Image) to create bootable USB. Copied over the bootia32 to /efi/boot/
    there is a bug in VESA where it queries for a BIOS-only command and crashes. Forcing xserver to use fbdev fixes this problem
  • 13.10 x64 desktop- (Status: boots to GUI using fbdev
    Same problems as 13.04 x64 plus one addition efifb problem
    see post for more details - touchscreen works, but no wifi
Android:
  • android-ia - (Status: No x86 UEFI bootloader)
    Generic UEFI Installer android-4.2.2_r1-ia3 does not come with x86 UEFI bootloader. it does not use grub, so can't just use ubuntu's x86 grub2 efi. Need to compile it from source
  • android-x86 - (Status: Bootable but slow)
    Uses grub, can piggy-back on the ubuntu x64 13.10 bootia.efi grub. Some workarounds needed, see this post
     
    external/efitools/Android.mk
    Quote:
    # TODO: support ia32 prebuilt

    ifeq ($(TARGET_KERNEL_ARCH),x86_64)

    arch_name := x86_64

/cpu/cpuinfo:
taken from a x64 13.04 live USB
 
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 55
model name : Intel(R) Atom(TM) CPU Z3740 @ 1.33GHz
stepping : 3
microcode : 0x312
cpu MHz : 1333.387
cache size : 1024 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms
bogomips : 2666.77
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 55
model name : Intel(R) Atom(TM) CPU Z3740 @ 1.33GHz
stepping : 3
microcode : 0x312
cpu MHz : 1333.387
cache size : 1024 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 4
apicid : 2
initial apicid : 2
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms
bogomips : 2666.77
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 55
model name : Intel(R) Atom(TM) CPU Z3740 @ 1.33GHz
stepping : 3
microcode : 0x312
cpu MHz : 1333.387
cache size : 1024 KB
physical id : 0
siblings : 4
core id : 2
cpu cores : 4
apicid : 4
initial apicid : 4
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms
bogomips : 2666.77
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 55
model name : Intel(R) Atom(TM) CPU Z3740 @ 1.33GHz
stepping : 3
microcode : 0x312
cpu MHz : 1333.387
cache size : 1024 KB
physical id : 0
siblings : 4
core id : 3
cpu cores : 4
apicid : 6
initial apicid : 6
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms
bogomips : 2666.77
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:


Hardware info:
  • The microUSB slot is USB-HOST-capable (i.e. with a USB OTG cable or Y cable, you can connect a USB flash drive to the microUSB slot
  • Amazon.de and Asus.de posted a T100 version with 500GB drive on the keyboard base. No pictures yet
  • Internal eMMC, 108MB/s 44MB/s read/write on sequential. CrystalDiskMark here
  • External microSD(HC/XC) reader is NOT UHS-1 compatible. Someone over at liliputing comments posted his atto benchmark

     
    64GB Samsung microSDXC card came in the mail today, I did some ATTO disk tests using the T100's built-in microSD reader and a USB 3.0 reader from Transcend.

    Unfortunately, it looks like the built-in reader is connected via USB 2.0. It maxed out at 23.8 MB/s read and 17.2 MB/s write, while the USB 3.0 reader maxed out at 71.3 MB/s read and 21.3 MB/s write. The card is rated at 70 MB/s read and 20 MB/s write.
Current Device:
Oppo Find 5 - experimental kernel
The Following 11 Users Say Thank You to paperWastage For This Useful Post: [ Click to Expand ]
 
paperWastage
Old
(Last edited by paperWastage; 27th October 2013 at 08:01 PM.)
#2  
Senior Member - OP
Thanks Meter 395
Posts: 805
Join Date: Mar 2009
Location: NJ
<backup/ archived infomation>
Current Device:
Oppo Find 5 - experimental kernel
 
paperWastage
Old
(Last edited by paperWastage; 27th October 2013 at 08:11 PM.)
#3  
Senior Member - OP
Thanks Meter 395
Posts: 805
Join Date: Mar 2009
Location: NJ
Files:
Attached Files
File Type: zip bootia32.ubuntu_13.04_x64.zip - [Click for QR Code] (239.9 KB, 2539 views)
Current Device:
Oppo Find 5 - experimental kernel
The Following User Says Thank You to paperWastage For This Useful Post: [ Click to Expand ]
 
paperWastage
Old
#4  
Senior Member - OP
Thanks Meter 395
Posts: 805
Join Date: Mar 2009
Location: NJ
<reserved 3>
Current Device:
Oppo Find 5 - experimental kernel
 
SixSixSevenSeven
Old
#5  
Senior Member
Thanks Meter 323
Posts: 1,620
Join Date: Dec 2012
Quote:
Originally Posted by paperWastage View Post
ISO does not contain bootia32.efi. Copied that file from the x86 ISO, able to boot, but the installer complains that the processor isn't 64-bit compatible
Android:
odd: http://ark.intel.com/products/76759/
shouldnt be erroring about 64 bit, unless the 8.1 installer is checking the CPU ID, isn't recognising it (no idea why) and then presuming a lack of 64 bit support.
 
paperWastage
Old
#6  
Senior Member - OP
Thanks Meter 395
Posts: 805
Join Date: Mar 2009
Location: NJ
Quote:
Originally Posted by SixSixSevenSeven View Post
odd: http://ark.intel.com/products/76759/
shouldnt be erroring about 64 bit, unless the 8.1 installer is checking the CPU ID, isn't recognising it (no idea why) and then presuming a lack of 64 bit support.
Perhaps the 32bit bootloader sends that the device is only booting in 32bit.

Seeing that I can boot to Ubuntu x64, the chip should be 64bit like how the Intel ark site says. I'll check the cpuinfo in Ubuntu to see what extensions it supports

Will also try to download WinPE and get the efi bootloader from there instead. Windows 7 x64 has efi x64 bootloader, but x86 doesn't have any efi bootloader
Current Device:
Oppo Find 5 - experimental kernel
 
paperWastage
Old
(Last edited by paperWastage; 31st October 2013 at 01:48 AM.)
#7  
Senior Member - OP
Thanks Meter 395
Posts: 805
Join Date: Mar 2009
Location: NJ
Compiling grub2-efi-ia32 (x86)

NOTE:
  • The instructions below are for raring 12.04.
    • The same instructions should work for other versions/sources/distros of grub2 as well.
    • The resulting binary should work with any *nix distros that use grub2
  • The resulting bootia32.efi should be placed on your USB drive at /EFI/BOOT/bootia32.efi
  • The grub-mkimage instruction basically packages the grub-efi AND the *.mod you specified into that bootia32.efi. You may need to tweak the list of *.mod that you include. You don't need to copy the *.mod onto the USB drive
  • -p /boot/grub tells grub-efi to look for the grub.cfg at /boot/grub/grub.conf (location that ubuntu uses). Other distros may use a different location.
    • Either recompile grub2-efi-ia32 with the right "-p" flag
    • Or copy your distro's grub.conf to /boot/grub/grub.cfg
Download grub2 sources for raring
https://launchpad.net/ubuntu/+source...2.00-13ubuntu3

Quote:
apt-get install gcc bison flex

./configure --with-platform=efi --target=i386

make

#make GRUB EFI binary and mods

cd grub-core

../grub-mkimage -d . -o bootia32.efi -O i386-efi -p /boot/grub ntfs hfs appleldr boot cat efi_gop efi_uga elf fat hfsplus iso9660 linux keylayouts memdisk minicmd part_apple ext2 extcmd xfs xnu part_bsd part_gpt search search_fs_file chain btrfs loadbios loadenv lvm minix minix2 reiserfs memrw mmap msdospart scsi loopback


cp bootia32.efi to <USB DRIVE>/EFI/BOOT/
# might be missing some modules... but if i tried to compile all *.mod, I get an invalid stack frame during grub boot
Files:
Current Device:
Oppo Find 5 - experimental kernel
The Following User Says Thank You to paperWastage For This Useful Post: [ Click to Expand ]
 
paperWastage
Old
#8  
Senior Member - OP
Thanks Meter 395
Posts: 805
Join Date: Mar 2009
Location: NJ
tried using that bootia32.efi to load Ubuntu 13.10 x64 ... (13.10 & 13.04 seem to use the same grub2-2.00 sources)

the grub menu shows up, but after selecting "Try Ubuntu", it flashes, menu continues showing up, nothing happens

then my Windows 8.1 OS got corrupted or something.... either boots to Windows message "Windows unable to start up properly", or it boots to login screen, then the screen goes haywire and popup boxes saying "illegal exception" or something

going to reinstall W8.1 x86 cleanly from a MSDN ISO/USB flash drive



got the logs from the semi-successful 13.04 x64 boot... will look through them and post them soon
Current Device:
Oppo Find 5 - experimental kernel
 
paperWastage
Old
(Last edited by paperWastage; 28th October 2013 at 02:32 AM.)
#9  
Senior Member - OP
Thanks Meter 395
Posts: 805
Join Date: Mar 2009
Location: NJ
ubuntu x64 13.04, debuging x-server issues


[ 36.591] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
[ 36.597] (II) Module fbdev: vendor="X.Org Foundation"
[ 36.597] compiled for 1.12.99.902, module version = 0.4.3
[ 36.597] Module class: X.Org Video Driver
[ 36.597] ABI class: X.Org Video Driver, version 13.0
[ 36.597] (II) intel: Driver for Intel Integrated Graphics Chipsets: i810,
i810-dc100, i810e, i815, i830M, 845G, 854, 852GM/855GM, 865G, 915G,
E7221 (i915), 915GM, 945G, 945GM, 945GME, Pineview GM, Pineview G,
965G, G35, 965Q, 946GZ, 965GM, 965GME/GLE, G33, Q35, Q33, GM45,
4 Series, G45/G43, Q45/Q43, G41, B43, B43, Clarkdale, Arrandale,
Sandybridge Desktop (GT1), Sandybridge Desktop (GT2),
Sandybridge Desktop (GT2+), Sandybridge Mobile (GT1),
Sandybridge Mobile (GT2), Sandybridge Mobile (GT2+),
Sandybridge Server, Ivybridge Mobile (GT1), Ivybridge Mobile (GT2),
Ivybridge Desktop (GT1), Ivybridge Desktop (GT2), Ivybridge Server,
Ivybridge Server (GT2), Haswell Desktop (GT1), Haswell Desktop (GT2),
Haswell Desktop (GT2+), Haswell Mobile (GT1), Haswell Mobile (GT2),
Haswell Mobile (GT2+), Haswell Server (GT1), Haswell Server (GT2),
Haswell Server (GT2+), Haswell SDV Desktop (GT1),
Haswell SDV Desktop (GT2), Haswell SDV Desktop (GT2+),
Haswell SDV Mobile (GT1), Haswell SDV Mobile (GT2),
Haswell SDV Mobile (GT2+), Haswell SDV Server (GT1),
Haswell SDV Server (GT2), Haswell SDV Server (GT2+),
Haswell ULT Desktop (GT1), Haswell ULT Desktop (GT2),
Haswell ULT Desktop (GT2+), Haswell ULT Mobile (GT1),
Haswell ULT Mobile (GT2), Haswell ULT Mobile (GT2+),
Haswell ULT Server (GT1), Haswell ULT Server (GT2),
Haswell ULT Server (GT2+), Haswell CRW Desktop (GT1),
Haswell CRW Desktop (GT2), Haswell CRW Desktop (GT2+),
Haswell CRW Mobile (GT1), Haswell CRW Mobile (GT2),
Haswell CRW Mobile (GT2+), Haswell CRW Server (GT1),
Haswell CRW Server (GT2), Haswell CRW Server (GT2+),
ValleyView PO board
...
[ 36.762] (II) VESA(0): initializing int10
[ 36.763] (EE) VESA(0): V_BIOS address 0x0 out of range
from
http://www.redhat.com/archives/rhl-d.../msg00372.html

looks like 13.04 is able to recognize and load the necessary drivers, but crashes because our UEFI-only computer doesn't have a BIOS portion... or maybe 13.04 is using older stuff

EDIT: or does that error even matter? trying to force x to configure itself

EDIT2: it matters because VESA is configured to be the default/fallback driver. With the V_BIOS issue, it won't work. Tried to force it to use fbdev driver, but no luck (it loads, but nothing shows up)
Current Device:
Oppo Find 5 - experimental kernel
 
paperWastage
Old
(Last edited by paperWastage; 28th October 2013 at 03:22 AM.)
#10  
Senior Member - OP
Thanks Meter 395
Posts: 805
Join Date: Mar 2009
Location: NJ
I deleted the vesa_drv.so from /usr/lib/xorg/modules/drivers/ , forced it to start using fbdev... works, very slowly of course

will try the intel driver later

(it's definitely the vesa BIOS bug that's stopping it from working on 13.04... will debug 13.10 later)



Current Device:
Oppo Find 5 - experimental kernel

The Following 4 Users Say Thank You to paperWastage For This Useful Post: [ Click to Expand ]
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes