Debian Linux on Windows Surface 3 Tablet

I was recently gifted an old Surface 3 Tablet (non-pro 2015) and wanted to try giving it a second life by loading it with a Linux OS (Debian 13 with Gnome DE). In the end, the lack of internal speaker and microphone support made me switch back to windows.

Why Debian 13 with Gnome DE?

Since the Surface 3 has some very underpowered specs ( 2GB RAM, Intel Atom CPU), it’s tempting to install a lighter distro like Puppy Linux or a lighter DE like LXQT. However, I find them quite difficult to use and the touchscreen controls are a bit clunky and time consuming to configure, so I sacrificed a bit of performance for some usability.

Debian 13 is the latest distro as the time of writing this post. My use case is to turn it into an AI kitchen assistant, so internal microphone and speaker functionality is a must.

Micro USB Charging Issue

The first thing I had to address is that the device won’t charge properly, and this is before my attempt at replacing the Windows OS.

I was surprised to find out the device is charging through micro USB port, since the power delivery on this connector is very limited. It seems that repeated use has damaged the micro USB port because things did not improve with a different cables and adapters. The most charge I can get out of it is about 34% and it was very intermittent.

Luckily there is an alternative way to charge the Surface 3, and that is through the docking station. I got mine used for about $45. The particular thing about this docking station is that it charges through the display port instead of the micro USB port and so far I have not been able to find a stand alone display port charging cable.

I thought about opening it up to fix the micro USB port so I can charge on the go, but the iFixit score is abysmal (1/10), and I would likely ruin the device in the process. Not very happy with companies making things hard to repair 🙁

Installing the OS

Installing the OS is easy. What you need is a USB stick with at least 4 GB of storage to create the Live boot drive. Other methods exist, but I did mine on a Windows PC.

  1. Download the latest Debian Gnome Live ISO.
  2. Next go download and run the boot drive utility Rufus.
  3. Select the drive for the USB stick and load the Debian ISO.
  4. Double check the settings and hit Start. After several minutes the drive is ready to be unplugged.
  5. Before inserting the USB stick in the Surface 3, we need to configure the UEFI to boot from USB.
  6. To access the UEFI menu, first shitting down the tablet. Then holding the + volume button, press and release the power button, and then release the + volume button. Set the
  7. Configure the alternate boot sequence accordingly.
  8. Finally, restart the tablet with the USB drive in it, make sure there is enough battery power, and install the OS following the menus.

Adding User to Sudoers

After installing the OS, there are a few things we need to do to get the system running. In Debian users are not automatically allowed to use sudo, instead we have a root user with that privilege. For convenience, we will add our current user to the sudoers file.

  • Log in as root using:
Shell
su
  • Then after entering the credentials, run the command below using your own “username”
Shell
sudo usermod -aG sudo username
  • Finally, verify the user’s membership
Shell
groups username
  • Reboot the computer to see the effect.

Update and Install Non Free Firmware

Ensure non free firmware are installed. This is particularly useful for the audio driver and WiFi firmware that are missing.

  • Open a terminal and type:
Shell
sudo nano /etc/apt/sources.list
  • Append non-free-firmware to all the sources in the file. See example below
Shell
deb http://deb.debian.org/debian/ trixie main non-free-firmware
deb-src http://deb.debian.org/debian/ trixie main non-free-firmware
deb http://security.debian.org/debian-security trixie-security main non-free-firmware
deb-src http://security.debian.org/debian-security trixie-security main non-free-firmware
deb http://deb.debian.org/debian/ trixie-updates main non-free-firmware
deb-src http://deb.debian.org/debian/ trixie-updates main non-free-firmware
  • Run update and install, then reboot the computer.
Shell
sudo apt update
sudo apt install firmware-linux-nonfree

Linux Surface Kernel

After loading the non free firmware, most things work but intermittently my mouse and WiFi, and sound would stop working. I thought it would be a good idea to try the Linux Surface Kernel to see if that can help.

  • Install wget
Shell
sudo apt install wget
  • Import the keys we use to sign packages.
Shell
wget -qO - https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc \
| gpg --dearmor | sudo dd of=/etc/apt/trusted.gpg.d/linux-surface.gpg
  • Add the repository configuration and update APT.
Shell
echo "deb [arch=amd64] https://pkg.surfacelinux.com/debian release main" \
| sudo tee /etc/apt/sources.list.d/linux-surface.list
Shell
sudo apt update
  • Install the linux-surface kernel and its dependencies.
Shell
sudo apt install linux-image-surface linux-headers-surface libwacom-surface iptsd
  • Install the secureboot key. This will import the key that the linux-surface kernel is signed with into your bootloader, so that the kernel is bootable without disabling secureboot.
Shell
sudo apt install linux-surface-secureboot-mok
  • Update grub and then reboot the computer.
Shell
sudo update-grub

Upon reboot use the password phrase surface. Use the command below to check if the kernel is correct. It should contain the string surface.

Shell
uname -a

Audio Issues

Even after installing the linux surface kernel, some audio issues remained. After playing continuous music for a bit, the speakers would freeze and hang on a single tone. Also the microphone would not work and record only static.

I tried the common fixes with the quirks available for the rt5645 chipset but still couldn’t get it to work properly. Forcing it to use older drivers didn’t seem to help either. After much frustration I decided it’s best to return it back to windows so all the hardware components work.

Verdict

The surface 3 just has too many unique components to make it a reliable Linux machine. In addition to the audio issues, the camera and the rotate sensor doesn’t work, even though I didn’t really need them. Unfortunately this is another machine better suited as a windows tablet. I will update you all on my progress to turn this into a kitchen assistant. Stay tuned

Leave a Reply

Your email address will not be published. Required fields are marked *