Microsoft Surface RT (microsoft-surface-rt)

How to boot from USB
Power on the device with button pressed.

Preparation
Enable test signing and install yahallo to disable secure boot.

See the instruction on OpenRT GitBook.

Installation on USB storage
Follow Pmbootstrap article. Do a normal SD card installation using USB storage as a target.

Installation on eMMC

 * 1) Follow Pmbootstrap article until   command.
 * 2) Use , where X is the number of your USB storage block device.
 * 3) * Check other  arguments, you may find something usable.
 * 4) Boot from the USB storage and follow on-device installer.
 * 5) Disconnect the USB storage before booting into installed system, otherwise installer will be booted from USB again.

WiFi
The WiFi firmware will go to sleep and break after some time (12 hours or less) with driver log talking about command timeout. The WiFi interface (mlan0) will vanish and trying to unload and reload the driver will block forever at trying to unload it. So the only way to recover is to hard reset.

It seems this can be avoided by disabling power management on the WiFi device. With NetworkManager this is, otherwise

If this isn't enough, another thing to try is to disable and re-enable the WiFi device every so often through a cronjob:

Sound
All outputs (speakers, headphones, HDMI) work, but mics are not supported for now.

U-Boot
This device can run patched mainline U-Boot, see https://github.com/Open-Surface-RT/u-boot.

Primary bootloader
It works as primary bootloader, but SPI is one time programmable. The only way to boot it is fusee-gelee. There were also successful attempts to replace SPI with non-OTP one with flashed U-Boot.

Secondary bootloader
Chainloading from EFI is not yet possible.

Kernel, packages

 * Jenneron
 * CrackTheSurface
 * Leander

Etc

 * imbushuo (Yahallo exploit for disabling secure boot)
 * jwa4 (convenient tool for enabling/disabling Golden Keys and Yahallo exploits)
 * TheLorax (server for unofficial prebuilt images)