home/blog/surfacelinux last edit June 18, 2025

setting up linux on a surface pro 8

table of contents

this is just what it sounds like, a blog post walking through the process of setting up linux on my surface tablet. debian 12 with kde plasma, specifically! it is june of 2025. i use this tablet almost exclusively for drawing (usually in krita or SAI these days,) so that's what i'm focusing on setting it up for here.

did you know there's a special linux kernel and software suite designed just for surface tablets ? discovering this was the thing that led me to finally doing this. the tablet had a perfectly functional windows 11 install on it, but even on a secondary device, that whole os was starting to feel like too much of a liability ... like i dont want to keep up with the news about recall or whatever, and its my only windows device so if i un-windows it i really don't have to, it just eliminates that whole stressor. so when i encountered evidence that i could likely get good stylus input into my drawing programs this way it pretty much sealed the deal. plus i get to do one of these neat write-ups that feel so "blog" :)

one of the first things they tell you in that readme is that it's pretty fiddly device-to-device, so the finer points here will probably be kind of specific to the SP8. in various parts it'll also be specific to debian (the linux distrubution or distro i've chosen to use) and kde plasma (the desktop environment i've chosen to go with.) you could probably make this even easier on yourself by using ubuntu or linux mint, but ive done one each of those recently and i'm just exploring different distros out of curiosity.

if you've got another distro in mind already, you don't need me, just use the excellent installation and setup guide on the linux-surface wiki. this is just like a record of my experience, the specific steps i followed and little bumps i encountered along the way. maybe someone will come across it who's doing this same exact thing, and it'll be one those beautiful little moments of Blogger's Serendipity. i'm also going to try to over-explain a bit, because i only started daily driving linux on desktops a couple years ago, so i still like, remember which little things confused me and tripped me up when i started out. maybe i can tutorialize it in a way that's a little more accesible; between the "ai" stuff and the windows 10 end-of-life situation, i could see such a resource being kind of timely (although i realize that, by not choosing the absolute friendliest OS i could have, ive kind of contradicted that intention in some ways .. but whatever, maybe its just a fun read too. and many basic tips will apply to a whole range of computers and linuxes)

preparation

you will need: a usb stick or portable hard drive you're willing to erase, and a usb mouse and keyboard (even if the tablet has a cover with a keyboard and touchpad!) if, like my SP8, your surface only has a couple of usb-c ports, then you'll also probably need some kind of hub to plug it all in.

also take note, i'm pretty sure the SP8's built in cameras specifically are not supported by this. i don't take pictures with this thing so i don't care, but if you want cameras maybe look into it

preparing installation media

first we're gonna set up our usb stick as an installation disk. you can use whatever computer to do this. the operating system we're installing is called debian.1

  1. download an installer image from debian.org

    i actually used the big giant version that you can use with no internet, and didn't set up my wifi at the step where you're supposed to, just to see what happened. it worked fine, which was neat, but it ended up causing a whole mess of problems with my SourcesList which i had to fiddle around a bunch to fix. if you just set up the internet when it tells you to, that probably won't happen!

  2. write the installer to the usb stick

    you can't just slap the file on there, you have to write the whole disk image on like burning a cd. what i did on my laptop was delete the partition that was on there using the gui "disks" utility in ubuntu, then used the command sudo cp debian.iso "$DEVICE_TO_REFORMAT" which i got from these instructions on debian.org. but you can use a utility like rufus or anything that will make a bootable drive.

preparing the tablet

  1. install any available windows updates

    the linux-surface project recommends this, i think so you wind up with the latest available firmware. obviously only possible if you have a working windows install to begin with; i did so i just went ahead and did it. one of the updates hung up and wouldn't work for some reason, and i just ignored it and it turned out fine :)

  2. set up boot options

    1. shut down the surface if it's on, then power it back up while holding the volume up button. it should open a screen that says "Surface UEFI" at the top.
    2. under "security," disable secure boot if it's enabled.

      i think actually you don't have to do this, as long as you set it to allow "microsoft & 3rd party CA" signatures .. but i'm not planning to keep anything personal on this tablet so i just turned it off rather than mess with it. it also makes a big red unlocked-padlock icon flash over the windows logo when you start up, which makes me smile

    3. under "boot configuration," drag "usb storage" up to the top and/or uncheck everything else.
    4. also on this page, make sure "enable boot from usb devices" is set to "on"

at this point the tablet is all ready to go :)

installing debian

so now we're ready to actually do the install!

  1. plug the usb stick into the surface and boot it up (or reboot if you're still sitting on that UEFI screen.)

    if all has gone to plan you'll be greeted with a debian installer menu, and it's at this point the cover will stop working and you'll need to start using your usb mouse and keyboard. i actually think there's an on-screen keyboard available too but i had a usb one around so i didn't look in to it

  2. select "graphical install" and walk through the installer.

    at some point it'll present you with a bunch of options for desktop environments2 - i think gnome is selected by default, but i chose kde plasma because i have gnome on my laptop and i've just been wanting to try out all the major ones.

installing linux-surface

at this point debian is installed, but a bunch of stuff still doesn't work, including the built-in keyboard and touchpad. that's why we're going to modify the kernel! we're picking up at this point in their install guide and just following along with their instructions.

if you're not familiar with these kinds of instructions, when there's a "code block" what they want you to do is copy the text out of there and paste it into a terminal app. only ever do this if you really trust the source, especially if you don't understand what you're pasting - it could install something malicious or do basically anything else the authors wanted. this is a big github project with a lot of users, so i'm comfy doing it. for a terminal program i'm using "konsole," the one that comes with kde stuff.

  1. so go ahead and run that first command, by copying all the text out of the first block that starts off wget -q0 (you can use the little "copy" button) and pasting it in the terminal (ctrl+shift+v), then hitting "enter." it should ask you for your password.

    (if it says something called "sudo" is not found, or you're not allowed to use it or some such, check out the "notes for new debian users" section of this page - you may have to install sudo or add yourself to the list of authorized users to proceed if you missed it in the installer. this happened to me ! in that example set of commands those are three separate lines - so in the terminal you would type su --login (enter), then put your password, then apt install sudo (enter) and so on)

  2. continue on running each of the commands one after the other, following the resulting prompts in the terminal each time. stop when you hit the next header ("arch".) the last thing you should have done is run sudo update-grub and then reboot.

fixes, fiddles, configs

at this point we're pretty much there, we've got the OS, the modded kernel and all the special software. now we're just tying up loose ends, configuring stuff and figuring out how it gels with my drawing programs

but it might look kind of broken! mine did. actually in a couple of ways. first off, if it hangs up right after logging in before the desktop even loads: try clicking the little button way down in the bottom left corner on the login screen and switching it from "wayland" to "x11"3

the wifi is gone ??

so the first thing i noticed on this boot was the surface couldn't find the internet at all. it was like there was no network card installed. i wound up finding this answer to a github issue with instructions that fixed it, so i'll walk through that in case your wifi is broken too. we're going to set up backports, including the non-free-firmware component.

  1. reboot again, but this time select "advanced options" in the boot menu, and then scroll down to the entry with the regular linux kernel, the one that does not have "-surface" in the name. we're not using recovery mode. on my machine it's the 3rd one down.

    this just boots us back into the regular unmodified kernel where the wifi works, so we can download and install stuff to fix it. i guess it actually could have just been done before rebooting the previous time, but that's not what i did, plus maybe your wifi's not even broken, you might as well see

  2. make a file in the folder /etc/apt/sources.list.d/ called debian-backports.sources and paste in these lines:
    Types: deb deb-src
    URIs: http://deb.debian.org/debian
    Suites: bookworm-backports
    Components: main non-free-firmware
    Enabled: yes
    Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
    
    you can do this right in the terminal by using the command sudo nano /etc/apt/sources.list.d/debian-backports.sources to open a text editor, then pasting the lines in (remember, ctrl+shift+v !) and saving with ctrl+s. if you're comparing to the example at the link, note the addition of "non-free-firmware" to the Components line
  3. run the command sudo apt update
  4. run the command sudo apt install firmware-iwlwifi/bookworm-backports

reboot again, selecting the surface kernel this time, and if this worked your wifi should be back !

downgrading iptsd

iptsd is one of the special softwares we installed as part of linux-surface, and for our purposes (drawing) it's one of the most important - the program that is in charge of stylus input. it turns out, the latest version of this program was totally bugged on my machine. it was doing just what is described in this issue on github, adding in a little middle-mouse-button click whenever the stylus is picked up. it was totally unusable for drawing!

thankfully, downgrading to the previous version fixed it right up. if you're having issues like this, give it a try.

  1. stop the currently running iptsd service with the command sudo systemctl stop $(sudo iptsd-find-service)
  2. uninstall the currently installed version with the command sudo apt purge iptsd
  3. grab an older version from the releases available on the project's github site. i wanted v2, so i downloaded iptsd_2-1_amd64.deb from the "assets" dropdown under that header.
  4. install the downloaded package. the command i used looked like this: sudo apt install ./Downloads/iptsd_2-1_amd64.deb - but the path to your package may be different depending on how you downloaded it

that ought to do it ... reboot and you should be running the older version . i would recommend calibrating the program by following these instructions, and you can tweak more settings by editing the file /etc/iptsd.conf(remember to un-comment the lines you want to adjust by removing the leading # !)

installing paint tool SAI

paint tool SAI is a drawing program i've been using a lot lately, and it doesn't have a linux version. so i'm running the windows version on linux using a program called wine. (hearing that this works was another thing that made me make the jump!) everything works pretty much out of the box, but just for the sake of overexplaining:

  1. install wine with the command sudo apt install wine
  2. download SAI from their website and unzip. put the files wherever you want; say /home/yourname/programs/sai2/
  3. run the program with the command wine /home/yourname/programs/sai2/sai2.exe (or whatever the path to your .exe is).

thats it, thats how you launch it! you can make a desktop alias that runs that command if you want, for me its like, right click the desktop -> create new -> link to application, and then in the "application" tab put wine for "program" and the path to your .exe for "arguments." if you have an SAI license file, just put it in the same folder with the .exe like usual, it still works!

in conclusion

so yea, thats my story! i honestly think this machine feels really good to use now. i wanna touch it more, which is a highly desired quality for #art #tools. but you can see how, right off the bat i had to fiddle the wifi and the pen back into basic functionality .. it takes a certain amount of buy-in, for sure. i still haven't even gotten screen rotation working right yet. and since this thing is so new i could even see going back to windows or dual-booting down the line, if i had a good reason. but its really cool that this project can keep older devices that microsoft abandons going longer, and it probably represents the ultimate destiny of this box in one form or another. it honestly stands a good chance of just staying like this forever tho, its perfectly sufficient for the single purpose i use it for, and the vibes are night and day different from that surveiled, accosted feeling you get from modern windows. its just, a computer, it turns on and sits there until you use it to do something. i really think that little stuff adds up and wears on you.

and i had fun keeping notes and writing them up like this ! i strongly suspect i'll be trying another tutorial soon. email me if there's one you'd like to see, or if you're trying this and you need help, or with any response at all! if you wanna be alerted when it comes out you can subscribe in various fashions. theres also a tip jar ! i hope this was helpful or educational or entertaining. thanks for reading, see ya next time ~

footnotes

  1. debian is a linux distribution, which means it includes the linux kernel. there are many other operating systems that do too - the aforementioned ubuntu and mint, arch, nixOS, etc. functionally, "installing linux" is shorthand that means installing any one of these operating systems that use the linux kernel. i realize this is basically the "gnu plus linux" copypasta, but i think it's honestly confusing and should be explained more often!

  2. yes, there's another thing to the naming - not only are there a bunch of different operating systems that use the linux kernel, but there are also a bunch of different desktop environments like gnome, kde and xfce. these bits of software are responsible for all the little toolbars, windows, icons and stuff that make up the user interface - actually most of what's typically associated with the 'feel' of different operating systems. and they're often interoperable with the different distros - so i could be running gnome on debian, or on mint, and it might look kind of the same - or i could be running debian with xfce, and it might look pretty different to how it would look if i was using gnome instead, even tho its still debian under the hood. phew !

  3. (it seems like this is all theoretically sposed to work with wayland, but for some reason it makes it hang right there for me, and everything i wanna do works fine in x so i shrug)

setting up linux on a surface pro 8 is tagged with: #:update #:sp8 #:code #:art #:tools #:all #:blog

previous: a year of aloe.gay ★ next: newsletter launch day

top ↑

end ↓