设备:Surface Book 2 15'' 512GB

(1060 GPU 运行 maskrcnn-benchmark)
笔者是计算机视觉算法工程师,在开发和调试计算机视觉代码时,有使用各种可视化手段来调试的习惯,所以,一个带有 CUDA 的 GUI Linux 环境会使我工作效率大增。 买电脑是也是看中了 SB2 15寸自带的 6GB 显存,如此 便能够在 SB2 上搭建带有 CUDA 的 GUI Linux 环境, 以作为深度学习开发机.
经过在 reddit /r/SurfaceLinux 长期观察, 我终于成功的在 SB2 上安装了 Ubuntu 16.04 LTS,CUDA及GPU版PyTorch,目前SB2运行较为正常,同时也能切换回 Windows 10 系统, 能够胜任笔者的需求.
为了方便 Surface-Linux 社群交流, 笔者创建了Surface-Linux 中文论坛, 并将资料和经验分享在论坛上,也欢迎爱好 Linux 的 Surface 用户一同在Surface-Linux 中文论坛上交流!
前置条件
- reddit 被屏蔽了, 得有梯子
- 资料全是英语, 能看懂英语资料
- 有 Ubuntu 安装经验 及 Linux 的基本常识
资料
- How to install Ubuntu 16.04 on Surface Book 2: 是安装教程的主力, 且该博客的评论也要细读(以理清软件版本). 不过该作者装的是 Ubuntu on LUKS 一种加密的 Ubuntu, 多了一些没必要的加密步骤
- Surface Book 2 working on Ubuntu 16.04 with CUDA: 是一位搞深度学习的博士按照第一个教程写的安装经验, 我的方法和配置基本和他一样
- Current State of Surface-Series Devices: 了解 Linux 对各个 Surface 的支持程度
- jakeday/linux-surface: 内核大佬写的 README 也要细读
- How to dual boot Ubuntu 18.04 on Surface Book 这个教程是装 Ubuntu 18.04, 且不涉及 CUDA, 可以作为参考
看完上述资料, 你便会对在 Surface 上装 Ubuntu 有充足的底气.
在你仔细阅读完以上资料后 我提醒两点:
- 安装好 Ubuntu, 在安装 linux-surface 内核前, 有个进程会暂满一个核心 导致机器温度一直很高, 不过安装完 linux-surface 内核后, 过热的问题就没有了
- 不知道为啥, 我似乎无法关闭 secret boot, 但是没有影响系统启动与使用
异常
在使用的过程中出现了一些异常
- 在开机进入 Ubuntu 系统的时候 有一小段时间(2~3 s) SB2上的外放会发出轻微的白噪音(可能是电流声), 过 2s 后, 进入系统就安静了
- 在插入耳塞后, SB2上的外放也会一直发出轻微白噪音(声音大小和 SB2 风扇全开相似), 这个槽点让我觉得有点不爽
- 音频外放音质差了很多 听起来非常劣质, 可能原因是: sb2 自己的喇叭素质本就很差, 只是在 Windows 下, 微软把外放的效果尽可能的调教, 矫正好了. 在 Ubunut 下失去这种矫正, 喇叭本来的缺陷就暴露出来了
- 在安装玩显卡驱动后 (安装 CUDA 之前), 滚轮滚动 Chrome 有轻微卡屏. 想起我有一台 1080ti 的台式机在 Ubunut 上使用Chrome也相同类型的卡顿, 所以应该是 NVIDIA 的 驱动对 Linux 支持不好导致的, sad 😢
- 当插上一个 1080p 显示器组成双屏的时候, 由于 Surface 分辨率比显示器大一倍,尺寸比显示器小一倍, 而 Ubuntu 的窗口是按照像素来显示的, 所以如果按面积算, 一个应用窗口在 Surface 上显示的尺寸大小只有显示器的 1/16, 屏幕比例难以调和. 最后 我通过One command setup xrandr custom resolution 在 SB2 上增加了
1620*1080 选项, 在双屏时, 切换到 1620*1080 分辨率, 解决了此问题
- 双屏的时候 Surface 屏幕触控会错位, 但一般 Linux 双屏下, 我也不怎么用触屏
对于这些在 Ubuntu 下的异常, 对影音和娱乐的体验是致命的, 但我对 Ubuntu@Surface 的定位是视觉开发神器, 在这种定位下, 上文的异常影响不大, 能提高开发效率才是正事. 只需在想用 SB2 影音和娱乐时, 切换回 Windows 即可.
Ubuntu 下的键盘分离功能

- 关机条件下 键盘可分离也可插入
- Nvida 驱动安装好后, 默认情况下使用的是 Nvidia GPU, 此时可直接分离. 但是 一分离就死机
- 在
nvidia-settings -> PRIME Profiles -> 选择Intel(Power Saving Mode), 再 log out, 可以关闭 Nvidia GPU (也可用 sudo prime-select intel), 此时可分离, 分离后正常运行. 当想切换回 Nvidia GPU时, nvidia-settings 已经无法启动, 需要运行 sudo prime-select nvidia 来切换回 Nvidia GPU, 详细教程
屏幕触控心得: Ubuntu 16.04 未对屏幕触控做任何适配, 在系统界面上使用触控体验非常糟糕, 但是在 Chrome 内能正常使用触控 体验还行.
此外, 由于 Ubuntu 上电源管理很差, 为了防止机器意外启动和重启伤害电池, 所以推荐把引导中的默认启动系统修改为 Windows 10, 教程在这里
最后, 感谢 reddit 上的大佬和 Linux-surface 内核的作者
设备:Surface Book 2 15'' 512GB
(1060 GPU 运行 maskrcnn-benchmark)
笔者是计算机视觉算法工程师,在开发和调试计算机视觉代码时,有使用各种可视化手段来调试的习惯,所以,一个带有 CUDA 的 GUI Linux 环境会使我工作效率大增。 买电脑是也是看中了 SB2 15寸自带的 6GB 显存,如此 便能够在 SB2 上搭建带有 CUDA 的 GUI Linux 环境, 以作为深度学习开发机.
经过在 reddit /r/SurfaceLinux 长期观察, 我终于成功的在 SB2 上安装了 Ubuntu 16.04 LTS,CUDA及GPU版PyTorch,目前SB2运行较为正常,同时也能切换回 Windows 10 系统, 能够胜任笔者的需求.
为了方便 Surface-Linux 社群交流, 笔者创建了Surface-Linux 中文论坛, 并将资料和经验分享在论坛上,也欢迎爱好 Linux 的 Surface 用户一同在Surface-Linux 中文论坛上交流!
前置条件
资料
看完上述资料, 你便会对在 Surface 上装 Ubuntu 有充足的底气.
在你仔细阅读完以上资料后 我提醒两点:
异常
在使用的过程中出现了一些异常
1620*1080选项, 在双屏时, 切换到1620*1080分辨率, 解决了此问题对于这些在 Ubuntu 下的异常, 对影音和娱乐的体验是致命的, 但我对 Ubuntu@Surface 的定位是视觉开发神器, 在这种定位下, 上文的异常影响不大, 能提高开发效率才是正事. 只需在想用 SB2 影音和娱乐时, 切换回 Windows 即可.
Ubuntu 下的键盘分离功能
nvidia-settings->PRIME Profiles-> 选择Intel(Power Saving Mode), 再log out, 可以关闭 Nvidia GPU (也可用sudo prime-select intel), 此时可分离, 分离后正常运行. 当想切换回 Nvidia GPU时,nvidia-settings已经无法启动, 需要运行sudo prime-select nvidia来切换回 Nvidia GPU, 详细教程屏幕触控心得: Ubuntu 16.04 未对屏幕触控做任何适配, 在系统界面上使用触控体验非常糟糕, 但是在 Chrome 内能正常使用触控 体验还行.
此外, 由于 Ubuntu 上电源管理很差, 为了防止机器意外启动和重启伤害电池, 所以推荐把引导中的默认启动系统修改为 Windows 10, 教程在这里
最后, 感谢 reddit 上的大佬和 Linux-surface 内核的作者