Install Raspberry Pi OS on the Microsoft Surface RT Tablet 🌱

Disclaimer

This process will overwrite the current Windows 8 RT operating system on the Surface RT tablet. I have tested these steps on my own device (as shown in this video), but I am not responsible if you damage or brick your device. Verify this process will work on your device before starting and make sure to backup any data you do not want to lose before proceeding.

Things You Will Need

Disabling Secure Boot

NOTE: If you run into issues or errors disabling secure boot, see the troubleshooting steps https://jwa4.gitbook.io/windows/tools/surface-rt-and-surface-2-jailbreak-usb#troubleshooting

  1. Insert the USB flash drive into a PC
  2. Download the Surface RT jailbreak files Download
  3. Format the USB flash drive to FAT32

    NOTE: This will delete all files on the drive. Make sure to backup any important files before continuing

    1. Right Click Start > File Explorer
    2. Right Click the USB flash drive > Format...
    3. Select FAT32 from the File System dropdown
    4. Name the drive EFI
    5. Make sure Quick Format is checked
    6. Click Start
  4. Extract the downloaded Surface RT jailbreak .zip file to the root of the USB flash drive
  5. Safely remove the USB flash drive
  6. Power off the Surface RT tablet if it is not already
  7. Using the USB hub, connect the USB keyboard and the prepared USB flash drive to the Surface RT tablet
  8. Hold Vol- and press the power button, releasing the Vol- when Surface logo appears
  9. Select Install Golden Keys > Press Enter
  10. Select Accept and Install > Press Enter
  11. After the Golden Keys install completes, the tablet will reboot
  12. Power off the Surface RT tablet
  13. Hold Vol- and press the power button, releasing the Vol- when Surface logo appears
  14. Select Install Yahallo > Press Enter
  15. After the Yahallo install completes, the tablet will reboot
  16. Power off the Surface RT tablet

Preparing Raspberry Pi OS

  1. Insert the USB flash drive into a PC
  2. Download Raspberry Pi OS Download
  3. Download Balena Etcher Download
  4. Download the latest Surface RT zImage, device tree (.dtb) and kernel modules Download
  5. Download the EFI boot files Download
  6. Extract the downloaded EFI .zip archive
  7. Run Balena Etcher
  8. Write the Raspberry Pi OS image to USB flash drive
  9. Once the write completes, open the readable partition on the USB flash drive
  10. From the previous downloads, copy the EFI folder, startup.nsh, zImage and the device tree (.dtb) file to the readable partition on the USB flash drive
  11. Open startup.nsh in a text editor
  12. Replace the contents of the file with the following

    fs0:
    zImage dtb=tegra30-microsoft-surface-rt-efi.dtb root=/dev/sda2 rootwait console=tty0 cpuidle.off=1

    # shutdown if something went wrong
    reset -s

  13. Save the changes to startup.nsh and close the editor
  14. Safely remove the USB flash drive
  15. Power off the Surface RT tablet if it is not already
  16. Using the USB hub, connect the USB keyboard and the prepared USB flash drive to the Surface RT tablet
  17. Hold Vol- and press the power button, releasing the Vol- when Surface logo appears
  18. Raspberry Pi OS should boot from the USB flash drive
  19. In Raspberry Pi OS, launch the file manager
  20. Navigate to /boot > Copy the sRT-modules- .tar.xz file to the current user's home directory
  21. Extract the sRT-modules- .tar.xz inside the user's home directory
  22. Copy the contents of the extracted folder to the corresponding location in the root Linux directory
  23. Reboot the Surface RT tablet
  24. At this point, you can continue running Raspberry Pi OS from the flash drive, or install it to the internal eMMC storage, replacing the stock Windows 8 RT operating system

Installing Raspberry Pi OS to eMMC Internal Storage

🚨 WARNING: Continuing beyond this point will format the storage on the Surface RT tablet and all files and the Windows 8 RT operating system will be lost

  1. While running Raspberry Pi OS from the USB flash drive, click the Applications menu > Accessories > SD Card Copier
  2. Select the USB flash drive as the Copy From Device
  3. Select the internal eMMC as the Copy To Device
  4. Check the New Partition UUIDs box > Click Start
  5. Wait while the OS files are copied
  6. Open file manager and select boot in the left navigation
  7. Edit startup.nsh in text editor
  8. Replace the root=/dev/sda2 with root=/dev/mmcblk0p2
  9. Save the changes to startup.nsh and shutdown the tablet
  10. After the tablet shuts down, remove the USB flash drive and power it back on normally
  11. Raspberry Pi OS should boot from the internal eMMC storage
  12. Launch a terminal and run the following command
    # launch raspi config
    sudo raspi-config
  13. In raspi-config, select Advanced Options > Expand Filesystem
  14. Once the filesystem has been expanded, close out of raspi-config
  15. Welcome to Raspberry Pi OS running on the Microsoft Surface RT tablet

Adding Battery Level Indicator (optional, not shown)

  1. Right click on the taskbar panel at the top > Panel Settings
  2. Select the Panel Applets tab
  3. Click the Add button
  4. Select Battery Monitor from the list of available applets > Click Add
  5. You should now see a battery level indicator at the far right of the task bar

Sources: https://openrt.gitbook.io/open-surfacert/surface-rt/linux/root-filesystem/distros/raspberry-pi-os, https://jwa4.gitbook.io/windows/tools/surface-rt-and-surface-2-jailbreak-usb