Jump to content

Microsoft Surface RT (microsoft-surface-rt): Difference between revisions

From postmarketOS Wiki
Jenneron (talk | contribs)
No edit summary
Line 139: Line 139:
== Users owning this device ==
== Users owning this device ==
{{Device owners}}
{{Device owners}}
• Retrocountry: i dont use it but i have in the past


== See also ==
== See also ==
* [https://openrt.gitbook.io/open-surfacert Open Surface RT project]
* [https://openrt.gitbook.io/open-surfacert Open Surface RT project]
* [https://github.com/grate-driver/linux Close to mainline kernel with device-specific patches]
* [https://github.com/grate-driver/linux Close to mainline kernel with device-specific patches]

Revision as of 14:16, 25 July 2023

Microsoft Surface RT
Surface RT running postmarketos-demos
Surface RT running postmarketos-demos
Manufacturer Microsoft
Name Surface RT
Codename microsoft-surface-rt
Released 2012
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
Software
Original software Windows RT
Original version 8
FOSS bootloader partial
postmarketOS
Category testing
Pre-built images no
Mainline yes
Features
Internal storage
No data
SD card
No data
Battery
Works
Screen
Works
Touchscreen
Works
Keyboard
Works
Touchpad
Works
Multimedia
3D Acceleration
Partial
Audio
Partial
Camera
Broken
Connectivity
WiFi
Works
Bluetooth
Broken
Miscellaneous
FDE
Works
USB-A
Works
HDMI/DP
Works
Sensors
Accelerometer
Works
Magnetometer
Works
Ambient Light
Works
Hall Effect
Works
Haptics
No data
U-Boot
Primary Bootloader
Partial
Secondary Bootloader
Partial
Mainline
Works
Internal Storage
Works
SD card
Works
USB Host
No data
USB Peripheral
Works
Display
Works
Keyboard
Broken
Buttons
Works
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 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 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

If this isn't enough, another thing to try 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

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

• Retrocountry: i dont use it but i have in the past

See also