Microsoft Surface RT (microsoft-surface-rt)

From postmarketOS
Jump to navigation Jump to search
Microsoft Surface RT
Surface RT running postmarketos-demos
Surface RT running postmarketos-demos
Manufacturer Microsoft
Name Surface RT
Codename microsoft-surface-rt
Released 2012
Category testing
Original software Windows 8 RT
Hardware
Chipset Nvidia Tegra 3 (T30)
CPU 4x 1.3 GHz Cortex-A9 (no support for L2 cache in kernel)
GPU GeForce ULP
Display 1366x768 IPS
Storage 32 / 64 GB
Memory 2 GB
Architecture armv7
Non-Android based device
Features
USB Networking
Unavailable
Flashing
Unavailable
Touchscreen
Works
Display
Works
WiFi
Works
FDE
Works
Mainline
Works
Battery
Works
3D Acceleration
Partial
Audio
Partial
Bluetooth
Broken
Camera
Broken
GPS
Unavailable
Mobile data
Unavailable
SMS
Unavailable
Calls
Unavailable
USB OTG
Unavailable
NFC
Unavailable
Sensors
Accelerometer
Works
Magnetometer
Works
Ambient Light
Works
Proximity
Unavailable
Hall Effect
Works
Barometer
Unavailable
Power Sensor
Unavailable
Misc
Keyboard
Works
Touchpad
Works
USB-A
Works
HDMI/DP
Works
Ir TX
Unavailable
TrustZone
Unavailable
FOSS bootloader
Partial
U-Boot
Primary Bootloader
Partial
Secondary Bootloader
Broken
Mainline
Works
Internal Storage
Works
SD card
Works
USB Host
USB Peripheral
Works
Display
Works
Keyboard
Broken
Buttons
Works


This device is based on the Tegra 3.
See the SoC page for common tips, guides and troubleshooting steps
Note NOTE: However the table says you can daily drive this device, there are still some not implemented features: L2 Cache, CPU Idle, UHS MicroSD Cards, Suspend (suspend itself works and wakes up quickly, but it works with both CPU and Core voltages enabled and DRAM is not in self-refresh mode). This is all because of EFI Firmware which wants kernel to control these CPU and regulator features through ACPI, and we use Device-Tree instead. There is work in progress to bypass EFI at runtime and control these features in the kernel.


How to boot from USB

Power on the device with Volume Down button pressed.

Installation

Preparation

Enable test signing and install yahallo to disable secure boot.

See the instruction on OpenRT GitBook.

Note Note: Don't try to boot pmOS installation from USB when you already have installation on eMMC. It does not work this way. Although you still can boot pmOS ondev installer even if you have installed OS on eMMC.
Note Note: Device can't boot from a SD card. Boot with an USB.

Installation from pre-built image (easy method)

Official images for postmarketOS are built for devices in main and community sections. That's not the Surface RT case. However, we have unofficial builds which can be used as well.

  1. Download the right image. All images are with on-device installer, the only difference is an UI. All images are stored at https://leandrofriedrich.de/postmarketos-images/.
  2. Extract and write image to the USB storage.
    • For linux it will be something like:
      $ xzcat microsoft-surface-rt-20210726-xfce4-master-installer.img.xz | sudo dd of=/dev/sdX status=progress # where /dev/sdX is your USB storage
      
    • For Windows RT there are 7-Zip and Rufus tools built for ARM32. You can find those at their official sites.
  3. Boot from the USB storage and follow on-device installer.
  4. Disconnect the USB storage before booting into installed system, otherwise installer will be booted from USB again.

Installation with pmbootstrap (advanced)

Installation on USB storage

Follow Installation guide. Do a normal SD card installation using USB storage as a target.

Installation on eMMC

  1. Follow Installation guide until pmbootstrap install command.
  2. Use pmbootstrap install --no-sshd --ondev --sdcard=/dev/sdX, where X is the number of your USB storage block device.
    • Check other pmbootstrap install arguments, you may find something usable.
  3. Boot from the USB storage and follow on-device installer.
  4. 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 nmcli connection modify <SSID> 802-11-wireless.powersave disable, otherwise iw dev mlan0 set power_save off

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.

Contributors

Kernel, packages
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)

Users owning this device


See also