SurfaceRT-Images / Raspbian
Here you fill find Raspbian images pre-modified with the grate-driver kernel and all the necessary modules for booting Linux on the SurfaceRT.
Just download an image and follow the instructions below!
Images
Hardware Support
What’s working
- Touch Cover
- Touch Screen
- Screen Brightness
- WiFi
- SD Card
- USB
- HDMI (w/ Audio!)
- Battery & Charging (The percentage in the status bar occasionally shows as 0%, depends on the DE you use)
- Audio
What’s not working:
- Hardware Acceleration (Bad graphical performance, 2D and 3D)
- Bluetooth (You can use a USB adapter)
- Camera
- CPU L2 Cache, cpuidle (Bad performance)
Prerequisites:
How to use:
- Pick an image from here and burn it to a USB drive using your favorite imager (Rufus, Balena, etc).
- Boot the USB drive by holding VOL DOWN and pressing power, release after you see the Surface logo.
- Be patient! First time setup takes long enough, and the Surface makes this process even slower due to a lack of CPU features.
-
- If you selected a Desktop image: Go through the first time setup. Note: Clicking reboot will NOT reboot you back to the USB drive, you will have to shutdown and start your Surface using the volume key method instead.
- If not: Configure your keyboard layout, region, and wifi via
sudo raspi-config
.
- Profit!
How to move the installation to your internal storage:
- Use
sudo dd if=/dev/sda of=/dev/mmcblk0 status=progress bs=10M
to copy the entire drive to the eMMC of the Surface.
- Note: you can safely hit CTRL+C after DD writes ~5GB, after that is just blank space.
- Advanced users can manually adjust the dd command to move the rootfs to an SD card (for more storage); refer to this entry in the OpenRT wiki for device ids.
- Mount the eMMC (
sudo mkdir /tmp/emmc && sudo mount -o rw /dev/mmcblk0p1 /tmp/emmc
).
cd
to the newly mounted directory (cd /tmp/emmc
).
- Edit
startup.nsh
(sudo nano startup.nsh
), change the root=
parameter to be root=/dev/mmcblk0p2
, you can also remove rootwait
.
- Reboot (
sudo reboot now
) and unplug your USB drive.
- Profit!
Housekeeping:
- Use
sudo raspi-config
to expand the filesystem (do this AFTER moving to internal or SD Card storage, if you’re going to do that).
- Update and upgrade your apt repositories (
sudo apt update
), then upgrade (sudo apt upgrade
).
- Optionally, you can install a different desktop environment using these instructions.
- Profit!
Credits
- The OpenRT team for their documentation on modifying linux images to run on a SurfaceRT.
- @jwa4 for their instructions on how to apply Yahallo and unlock the bootloader of the SurfaceRT.
- This blog post by Joshua Powers which helped me get my footing when it came to mounting the RaspberryPI images.
- @imbushuo for Yahallo
- @never_released and @TheWack0lian for their discovery of the Golden Keys exploit.
- Both the GrateLinux and OpenRT teams for their Linux kernel for the Tegra3 SOC.
- Everyone behind Raspbian and the RaspberryPI, software support for armhf is great because of them.