最近把自己的surfacepro3全新安装了Ubuntu 18.04(删除了windows),记录一下
2019-08-02更新:
Surface Laptop系列默认安装后不支持自带键盘和触摸板,所以建议不要直接使用原版iso,使用下面github中的kernal进行安装!
2019-07-01更新:
在较长时间体验之后博主认为surface设备使用linux的体验不是特别好,特别是一些设备驱动的问题,以及主要卖点触控笔和触摸屏的缺陷。所以这里不建议在surface设备上使用linux,所以我已经把surface上的linux进行了卸载,然后主要使用移动硬盘中的linux系统在surface上运行,方便灵活。(安装方法见博客中专门的博文 https://blog.heguangyu.net/%e5%9c%a8%e7%a7%bb%e5%8a%a8%e7%a1%ac%e7%9b%98%e4%b8%8a%e5%ae%89%e8%a3%85ubuntu18-04%ef%bc%88%e5%be%85%e7%bc%96%e8%be%91%ef%bc%89/ )
另外博主特别推荐github上的大佬制作的专门用于surface设备的kernal,
https://github.com/jakeday/linux-surface
可以解决很多surface设备的适配问题,如果使用此kernal,切忌安装tlp相关电源优化软件
1.首先从Ubuntu官网下载iso
2.制作USB启动盘
3.按照官网提供的教程进行安装,注意在这部不要选择自动安装,选择自行分区安装
分区安装的注意事项:
a. 一定要使用专门的swap分区(后面在设置休眠和唤醒时必要用),分区大小根据本身设备的内存大小决定,一般取1至1.5倍
b. 推荐将home,boot等分区按需分开,以备后面折腾错了重装不会丢失重要文件
4. 安装系统,完全安装最小安装都可以,根据自己的需要,我选择的是最小安装,如果网络条件好可选择下载更新,如果不好可以安装完毕后再进行语言包等更新
5. 安装完毕后重启
6. 进入系统后会有一些更新和配置过程,待所有进程都完成后,进行一些基本的配置:
a. 安装linux电源配置程序,这个有助于提高笔记本的续航(使用surface专用内核时请勿安装!!)
sudo apt install tlp tlp-rdw sudo tlp start
默认安装好的配置即可,不需要再作额外调整(大牛无视此条)
b. 安装gnome 优化程序,这个可以丰富ubuntu的桌面配置
sudo apt install gnome-tweak-tool
c.安装pm包,后面测试休眠用
sudo apt install pm-utils
8. 配置休眠
surface pro系列作为2合1设备,有很多场合还是需要休眠这个模式的,方便人们能在便携环境下快速恢复工作状态,同时保证续航。ubuntu系统默认没有休眠选项,本身只有挂起这个类似于windows中睡眠的功能,在该状态下系统实际上仍处在唤醒状态,实测掉电非常厉害,所以非常有必要在surface上启动休眠
a. 经过我的测试,默认安装完成后,surface就可以通过终端代码进入休眠状态
sudo pm-hibernate #或 sudo systemctl hibernate
但是进入休眠状态,再次唤醒时,会出现全新启动,所有休眠之前的任务会被终止,即系统并没有从swap分区启动,因此我们要进一步调整
b. 首先找到swap分区的uuid:
grep swap /etc/fstab
复制其中UUID=XXX
(外国论坛中有类似现象的解决方案还包含使用/dev/sdx的,但是我实测在surface上没用,不知道原因)
c. 修改grub文件
sudoedit /etc/default/grub
将该条的引号中
GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash”
添加(保留原有的)
resume=UUID=XXX(之前复制的)
保存退出,然后更新gurb使其生效
sudo update-grub
d. 重启电脑,此时已经可以正常休眠了,但是会出现另一个问题,就是在唤醒后wifi会失灵,这应该是一个bug,我们需要在休眠前先将网卡驱动停止加载,然后在唤醒后再加载回来,所以我们需要这样一个脚本来进行休眠(不要使用系统自带的休眠,会让wifi失灵,同时在唤醒后由于网卡失灵,会导致无法正常关机和重启,bug真多)这个脚本大牛也可以写进休眠和唤醒的系统进程去,我没有保存,之后找到了会再补充上来。脚本:
# remove buggy modules modprobe -r mwifiex_pcie && # hibernate echo disk > /sys/power/state # reinsert modprobe mwifiex_pcie
其中mwifiex_pcie是surface pro3的网卡驱动文件,可以由下面的代码获得
lspci -knn | grep Net -A2
将脚本保存为hibernate,复制到/bin文件夹中,赋予可执行权限
chmod +x hibernate
e. 每次需要休眠时,打开终端输入(肯定有更方便的办法的)
sudo hibernate
即可休眠,在唤醒后,wifi蓝牙等依旧工作正常
f. 经过一段时间的测试之后,我发现在唤醒过后,虽然wifi正常,但是会出现使用一段时间之后失常的现象,所以还需要:
sudo apt-get install bcmwl-kernel-source
本文参考:
https://askubuntu.com/questions/768136/how-can-i-hibernate-on-ubuntu-16-04/821122
https://askubuntu.com/questions/761180/wifi-doesnt-work-after-suspend-after-16-04-upgrade
感谢原作者