Friday, March 08, 2024

Linux On Microsoft Surface Laptop

 Found some materials on how to do this.

Firstly the YouTube link with title : How to Install Linux on a Microsoft Surface (Ubuntu 22.04 Linux Surface Kernel)

https://youtu.be/6_EHEmz_j4o


Few things needed:

  1. Linux Ubuntu Iso download
  2. USB key
  3. Software called Rufus
When the above are ready, then proceed
  • Run the Rufus program with the USB key plugged into the computer.
  • When prompted, select the Downloaded Ubuntu *.iso for Rufus. Basically Rufus will create a bootable USB with Ubuntu on it.
  • Plugin the USB onto the Surface
  • Boot up MS Surface, ensure boot configuration is selected to boot from USB drive.
  • Go into Ubuntu installation, follow instructions to install, then Reboot

At this point, Ubuntu is installed, you can boot and login. However, lots of the Surface hardware features are missing, e.g touchscreen, rotation of screen. To get these capabilities, we need to modify the Ubuntu kernel by installing a special kernal

Go to Google and search Surface Linux.
Follow the instructions there.


Update 30 Mar 2024

The following is an attempt to make use of a LIVE Linux on a USB drive. The above discussion is still slightly relevant, but several road-blocks are encountered as discussed below.
 
There are various good reviews of Rufus which states some of its advantages, so I won't repeat here. From experience, I can say it is easy to use to write a Linux ISO onto a USB drive and it seemed fast. However, specifically with Microsoft Surface that I tried on, it failed to get pass the Secure Boot (Bitlocker) screen. I changed the options at the MS Surface boot screen on the Security menu, trying all 3 options including no security, but still it would not boot. (Please leave comment, if I did not use correctly - but you must have experience in using Rufus on MS Surface).
Note: I've checked with the Microsoft account specifically to this MS Surface device, and there is no BitLocker key. Yet the device was still unusable.

So then I tried the UUI - and it is similarly as easy to write a Linux ISO to a USB drive than Rufus. This actually was able to go pass the Secure Boot. At the appropriate boot up screen, we should select VTOYEFI option, then followed by "Enroll_This_Key_In_MokManager.cer".

I chose SLAX because its ISO was under 500GB. After burning this into the USB using UUI, and starting up using the USB, it would not boot. The reason is that it appears UEFI is not fully available for some reason. Switching to Lbuntu instead, and using UUI, the USB was finally able to boot Lbuntu onto the MS Surface.

Now the next problem is that MS Surface Wi-Fi hardware may not have been supported by Lbuntu. So the next step is to find a Linux that supports MS Surface, at least for the Wi-Fi adapter.  

Wifi problem:
It seems that the Linux that I've tried, including Lbuntu and Ubuntu above does not recognize the wifi adapter hardware. From internet searches, it seems the hardware is Marvell branded wifi adapter. A few commands to check whether the wifi hardware adapter is detectable or not:
lspci
ip -a
It will be obvious if theses commands do not mention anything about any wifi adapters

Persistence
To consider persistence, that is keeping the changes made to the Live Linux, the overlayfs in Linux is used. A few good references include: