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.
This device is supported as part of a generic port. Refer to Nvidia Tegra armv7 (nvidia-tegra-armv7) for installation instructions and more information. |
![]() Surface RT with the XFCE Desktop | |
Manufacturer | Microsoft |
---|---|
Name | Surface RT |
Codename | microsoft-surface-rt |
Released | 2012 |
Type | detachable |
Hardware | |
Chipset | Nvidia Tegra 3 (T30) |
CPU | 4x ARM Cortex-A9 @ 1300Mhz |
GPU | Nvidia GeForce ULP @ 420Mhz |
Display | 1366x768 IPS |
Storage | 32 / 64 GB |
Memory | 2 GB |
Architecture | armv7 |
Software | |
Original software The software and version the device was shipped with. |
Windows RT 8 |
Extended version The most recent supported version from the manufacturer. |
Windows RT 8.1 Update 3 |
postmarketOS | |
Category | community |
Pre-built images Whether pre-built images are available here. |
yes |
Mainline Instead of a Linux kernel fork, it is possible to run (Close to) Mainline. |
yes |
Generic port | Nvidia Tegra armv7 (nvidia-tegra-armv7) |
Device package |
![]() |
Kernel package |
![]() |
Internal storage eMMC, SD cards, UFS, ... |
Works
|
---|---|
SD card Also includes other external storage cards |
Works
|
Battery Charging and battery level reporting works |
Works
|
Screen Display works. Ideally with sleep mode and brightness control. |
Works
|
Touchscreen |
Works
|
Keyboard Build in physical keyboard |
Works
|
Touchpad Build in Touchpad |
Works
|
Multimedia | |
3D Acceleration |
Partial
|
Audio Audio playback, microphone, headset and buttons. |
Partial
|
Camera |
Broken
|
Connectivity | |
WiFi |
Works
|
Bluetooth |
Broken
|
Miscellaneous | |
FDE Full disk encryption and unlocking with unl0kr. |
Works
|
USB-A Full-sized USB-A port works (Usually applicable to SBCs and laptops). |
Works
|
HDMI/DP Video and audio output with HDMI or Display Port works. |
Works
|
Sensors | |
Accelerometer Auto screen rotation works in desktops e.g. Phosh or Plasma Mobile |
Works
|
Magnetometer Sensor to measure magnetism |
Works
|
Ambient Light |
Works
|
Hall Effect Also known as flip cover sensor |
Works
|
Haptics |
Works
|
Primary Bootloader It is possible to replace stock bootloader with U-Boot. |
Partial
|
---|---|
Secondary Bootloader It is possible to chainload U-Boot from stock bootloader. |
Partial
|
Mainline Latest versions of U-Boot are not broken and it is possible to use them. |
Works
|
Internal Storage It is possible to boot from internal storage (e.g. eMMC or UFS). |
Works
|
SD card It is possible to boot from SD card. |
Works
|
USB Host It is possible to boot from a USB storage or connect a keyboard. |
Untested
|
USB Peripheral It is possible to use device as a peripheral in U-Boot, e.g. for fastboot mode. |
Works
|
Display |
Works
|
Keyboard |
Broken
|
Buttons It is possible to navigate in boot menu or grub with volume and power buttons. |
Works
|
This device is based on the Tegra 3. See the SoC page for common tips, guides and troubleshooting steps |
NOTE: Deep suspend does not work on this device. |
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.
Note: Device can't boot from a SD card. Boot with a USB storage. |
Installation on USB storage
Unpack and flash a pre-built image to USB.
Or
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.
Some issues in the stable versions (Ex. 24.12) may be patched in the edge versions. Even though breakage can occur it is recommended to use the edge version for the latest fixes and patches.
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
/sbin/iw dev mlan0 set power_save off
Even with power management disabled, the WiFi may stop working after a few hours (even if the device remains on and never goes to sleep) and require a reboot to fix. One work for this is to disable and re-enable the WiFi device every so often through a cronjob:
>/etc/periodic/hourly/reset-wifi cat <<EOF
#!/bin/sh
ip link set mlan0 down
ip link set mlan0 up
EOF
chmod +x /etc/periodic/hourly/reset-wifi
service crond start
rc-update add crond default
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
- 9lore (Notes: running postmarketOS, not in active use)
- Arnavion
- Chaosleo07
- CrackTheSurface
- Dilletant (Notes: owns two on Kali)
- GloomyJD (Notes: Works)
- InterstellarTaurus
- Jenneron
- Jja2000 (Notes: Hopeful on a GPU driver)
- Little-miss-synth
- LogicalErzor
- Lotigara (Notes: Broken eMMC, so can't boot without RCM)
- Neko (Notes: 64GB Model with spicy pillow and WinRT (might switch to pmOS) - 32GB Model with Win10/Raspbian)
- Plasma bsun
- Retrocountry (Notes: Running PostmarketOS!)
- Russanandres (Notes: Moved To Raspbian)
- Thatoneboi27 (Notes: Currently running pmOS with XFCE4)
- Veast (Notes: Currently running PostmarketOS!!!)
- Wangxiaohu (Notes: running Raspbian now for more package selection)
- Win.exe (Notes: Runs Ubuntu Mate 20.04.1)