博主是计院学生,因为要经常背着电脑到处跑,考虑到自己并不那么健壮,就入手了surface laptop。然后学习过程中会经常用到Linux,用虚拟机久了也不太方便,所以就尝试装双系统,折腾了很久,走了不少弯路,最终也算是挺完美的弄好了,所以就记录一下方便后来人。
标题的完美安装指的是可以在Secureboot模式下正常引导双系统,也即对Windows不造成任何影响,此外Linux设备可以正常驱动。
Secureboot是仅允许受信任的系统在Surface上启动,安装非windows系统会无法直接启动,关闭Secureboot会导致Windows hello无法使用,本文后面会讲到如何在开启Secureboot模式下,正常引导双系统。
需要外接键盘是因为linux安装过程中因为驱动问题,其自带键盘无法使用,需要使用外接键盘进行设置
本文以UBUNTUDDE REMIX 20.10为例(博主是颜控),这些系统的安装步骤大同小异
镜像下载大家可以去对应系统的官网下载,也可以去镜像站,这里给大家推荐清华大学镜像站
点击箭头所指的获取链接,即可选择对应的版本下载。
至此,启动盘制作完成!
这一步建议大家提前做好,避免出现各种问题~
前面提到了secureboot的作用,Fedora和Debian / Ubuntu都支持Secureboot,而Arch不支持。
但是由于后面我们需要更换linux内核,会导致无法安全启动,所以此处我们都先关闭Secureboot。
Surface上Linux/Archlinux的安装与其他设备并无二异,此处以ubuntu为例简要介绍,大家也可以参考其他更详细的教程,跳过本教程这一步
至此,linux已经安装到了你的surface设备上了~
ubuntu自带的驱动不能兼容Surface的硬件,所以很多硬件无法使用,比如键盘,触屏等,我们现在安装第三方内核
关于各Surface设备可用硬件详情,可以查阅此处,基本上就相机用不了
由于Linux和Achlinux存在差异,下面分别介绍不同版本上驱动的安装过程
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
echo "deb [arch=amd64] https://pkg.surfacelinux.com/debian release main" \
| sudo tee /etc/apt/sources.list.d/linux-surface.list
sudo apt update
sudo apt install linux-image-surface linux-headers-surface iptsd libwacom-surface
sudo systemctl enable iptsd
wget -qO - https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc \
| sudo pacman-key --add -
sudo pacman-key --finger 56C464BAAC421453
sudo pacman-key --lsign-key 56C464BAAC421453
[linux-surface]
Server = https://pkg.surfacelinux.com/arch/
比如可以使用gedit来修改:
gedit /etc/pacman.conf
sudo pacman -Sy
sudo pacman -S linux-surface linux-surface-headers iptsd
sudo systemctl enable iptsd
由于我们更换了Linux内核,会导致secure boot在开启状态下无法直接引导系统,所以我们需要将内核进行签名,将Linux-Surface内核的密钥导入到引导加载程序中,以便内核可以引导而不禁用secureboot。
Linux和Archlinux可以分别通过以下方式安装:
Debian / Ubuntu
sudo apt install linux-surface-secureboot-mok
Arch
sudo pacman -S linux-surface-secureboot-mok
所用公钥:linux-surface/linux-surface/keys/MOK.cer
在下载公钥的文件夹打开终端,或将终端定位到对应文件夹
sudo mokutil --import surface.cer
此过程会让你摄制一个密码,务必记住,后面要用
看到以下提示即成功:
SKIP: surface.cer is already enrolled
成功后重启电脑
重启以后会进入以下界面,比较复古,回车就好
回车后会进入以下界面,选择第二个,应该是import mok,由于我此处导入了,是delete mok,明白即可
进入下一个界面后,选择continue,按照提示输入你导入公钥时设置的密码,然后回车即可
完成后即可进入UEFI,在secure boot中将boot configuration改为Microsoft & 3rd party CA,然后你就会发现开机时没有红色提示了,同时系统可以正常引导双系统
至此,linux/archlinux已经完美的安装到你的Surface设备上了,后续工作,比如换源等等,可以参考其他资料,此处也不再赘述了。
码字不易,感谢大家的阅读,不当之处也欢迎大家指出,有问题欢迎留言,谢谢!
本文所用仓库地址为:源仓库地址,在此感谢
未经作者允许,禁止转载!