Microsoft Surface RT (microsoft-surface-rt)

Released in 2012, the Surface RT was the first tablet and personal computer developed and manufactured by Microsoft. It ran on the extremely limited version of Windows, known as Windows RT 8, and that was its downfall, leading to eventual discontinuation in late 2013. Despite this, a community emerged to make the Surface RT more usable via jailbreaking and bypassing secure boot, allowing other armhf apps and even other Operating Systems such as postmarketOS to run.
__TOC__
== How to boot from USB ==
#Turn Off device
#Plug in USB Drive
#Hold the volume down button
#Press the power button for a second
#Wait until the surface logo appears
#Release volume down
== Installation ==
=== Preparation ===
Enable test signing and install yahallo to disable secure boot.
See the instruction on OpenRT GitBook.
==== Installation on USB storage ====
Unpack and flash a pre-built image to USB.
Edge Images
Or 
24.12 Images
Or 
24.06 Images
==== Installation on eMMC ====
Install pmOS on USB firstly. Boot into it, connect to internet and perform:
$ sudo apk add pmbootstrap
$ pmbootstrap init # select "microsoft" vendor and "surface-rt" codename 
$ pmbootstrap install --disk /dev/mmcblk0 --no-sshd # add --fde if you want FUll Disk Encryption
To install pmbootstrap, you will be asked for a sudo password. This password is "147147"
For the best experience, use "xfce4" for your desktop environment
Sometimes you will get an error with exit code 1 or 2.
If you do, try installing to eMMC with Pmbootstrap again.
If it gets stuck at the same error over and over again, download a new image and flash your USB using the new image and try again.
== WiFi ==
Upon device resuming from sleep mode / screen blanking the wifi does not receive proper instructions to do so due to incomplete devicetree for wifi reset. The driver will attempt to reload firmware onto the wifi chipset, but due to the wifi not being issued the reset commands the driver / chipset get out of sync. The driver log shows command timeouts, when this happens 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.
This can be avoided by disabling power management on the WiFi device. With NetworkManager this is nmcli connection modify <SSID> 802-11-wireless.powersave disable, otherwise iw dev mlan0 set power_save off This is required every boot.
Install iw with apk add iw
To make it automatic every boot add a script in /etc/local.d/ with the contents of 
#/bin/sh
iw dev mlan0 set power_save off
== Sound ==
All outputs (speakers, headphones, HDMI) work, but mics are not supported for now.
== U-Boot ==
APX booting can be performed using generic Nvidia Tegra armv7 device port.
== Other Issues ==
* Shutdown / reboot does not work properly
: When the device is told to shutdown / reboot via GUI or via `poweroff` command etc, the device does not fully power off and stays on a black screen. Hold the power button down to forcibly power it off and then press it once more to reboot. This is a recent (~2024) regression.
* Keyboard Issues (Microsoft Surface Keyboard Model 1535 and 1561)
: At least on XFCE4, the Super key (Windows key) seems to currently do nothing even when the keyboard preset is set to the "Surface Keyboard" preset.
* Onboard Issues
: At least on XFCE4, Onboard (the On-Screen Keyboard) currently only works on the lock screen or when manually activated. There is no way to make it automatically appear when The device is in tablet mode.
== Users owning this device ==
== See also ==
* Open Surface RT project
* Close to mainline kernel with device-specific patches