Jump to content

Microsoft Surface RT (microsoft-surface-rt)

From postmarketOS Wiki
(Redirected from 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.

Note This device is supported as part of a generic port. Refer to Nvidia Tegra armv7 (nvidia-tegra-armv7) for installation instructions and more information.
Microsoft Surface RT
Surface RT with the XFCE Desktop
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 device-nvidia-tegra-armv7
Kernel package linux-postmarketos-grate
Features
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
U-Boot
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
Note NOTE: Deep suspend does not work on this device.


How to boot from USB

  1. Turn Off device
  2. Plug in USB Drive
  3. Hold the volume down button
  4. Press the power button for a second
  5. Wait until the surface logo appears
  6. Release volume down

Installation

Preparation

Enable test signing and install yahallo to disable secure boot.

See the instruction on OpenRT GitBook.

Note 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.

Edge Images

Or

24.12 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.

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


See also