The other day I came across this interesting ebook by 0xAX, which got me interested into the whole x68 boot process.

On the same week, when cleaning up my office, I found my very old Surface tablet that runs Windows RT. My first thought was “can I boot something else in here? Maybe it will boot Linux?” and that was what I set to find out.

The prospect wasn’t promising. Surface ships with UEFI’s secure boot enabled, having the boot loader signed by Microsoft. In short, this means that any other code that runs after that needs to be trusted by the same party that signed the boot loader.

This is quite a tall order, because it would mean that I would have to find a boot loader signed by Microsoft, plus a signed kernel, and potentially drivers and so on.

However, a bit more of searching, and one will easily come across this. I may come back to this and make a separate post explaining it in details, but the summary is: if you were lucky enough to not have taken a Windows Update somewhere after August to November in 2016, you could bypass the secure boot trust requirement - i.e. you could then load a non Microsoft signed boot loader, kernel, etc.

Lucky enough, that was my case and I got GRUB running on my Surface. Then it began - the quest to try to get some other kernel than the stock one to boot on it.

My hope is that this is the first of a series of posts about my trials and learning nuggets in trying to get Linux to boot on Surface. If you are interested, you can follow the Linux on Surface RT tag.