2021年给你的MacbookPro安装Ubuntu

一、前面的话

我的MacBookPro2010(后面称呼为mbp)之前不能用了。usb口接触不良,我以为就是永久了坏了。开机就非常卡,app一个没开风扇就呼呼的,MacOS也对他停止更新了。

我以为这台设备就次废掉了。

这里引入一个概念 计划性报废 就是为了企业的可持续发展,让你的老设备越来越慢,然后你会买新的 :D。

好吧,这些都是铺垫。

最重要是当你愿意折腾给他换个系统比如Ubuntu,他的一切毛病都消失了。这就是计划性报废。

这里记录以下2021年,首装Ubuntu踩下的坑。如果你恰巧也有一个同样的设备,在这里也能帮助到你。变“废”为宝。

1. 看完这部分记录 你将会获得

  1. 合理的分区:系统、数据分离,可以后期安装任意版本系统不影响数据

  2. 手动SWAP: 将会比你选择默认安装的方式快很多

  3. 稳定的wifi的新选择: 探索新的方式解决wifi不稳定的问题

  4. 学会新的方式安装软件:除了apt还有更多选择

  5. 默认的多媒体将会工作:也许你一直奇怪为什么默认的视频无法工作。

  6. 开机莫名其妙的报错将会被修复:看不懂的报错也会被消灭。

  7. 一些IDE似乎不正常,帮你踩坑:帮助你恢复生产力

2. 设备参考

参数表:
Intel® Core™ i5-2415M CPU @ 2.30GHz × 4 
3.8 GB 
Intel® HD Graphics 3000 (SNB GT2)
SSD:  Sandisk 240G

备注: 我自己更换了一个SSD, 机械硬盘在swap部分的提速效果会大大打折扣。

3. 目标系统 Ubuntu20.10

我将会安装 Ubuntu 20.10

使用 Ubuntu 20.10 的原因是 他包含了 相较于Ubuntu20.04诸多改进

二、安装

1. 制作启动盘

不多赘述 官方页面里面有不同系统下的 制作指导

2. 分区

Windows XP的时代经常把硬盘分为若干个区,不过现在不论是Windows10、MacOSX都是一个分区了,原因就是现在的系统逐渐稳定了,并且他们也会存在一些云盘、NAS等同步备份数据的外设。所以这部分逐渐不是问题了。

系统和数据隔离还是有好处的,系统破坏了,不影响数据本身。

2.1 优点:

  • 系统被破坏,数据不会被影响

  • 可以任何时候安装新系统尝鲜,不会影响数据

2.2 缺点:

  • 系统被局限在一个固定大小的分区里,太小会限制系统后期。

    不过这个无所谓,因为Linux的大小十分的有限。并且安装软件的方式可以灵活的选择 apt(这就是安装在系统分区)或者 snap、flatpak他们都是在用户分区。所以这个缺点理论上不算个缺点。

  • 分区导致一部分内存浪费

    这个是事实。但是现在的硬盘也没那么窘迫。后面会建议给系统 50-64G 的空间。

2.3 分区教程

安装时候选择自定义分区。 实际上我们只需要自定义三个分区,也就是删除硬盘空间,新建出三个。

  • /EFI

    新的电脑采用UEFI启动方式,必须设置一个 /EFI 分区 建议分配大一点,256M 左右。

    Mac采用的就是UEFI 所以我们确保安装成功必须建立一个 /EFI 分区。

    可以分配 256M 实际上可能占用就 33M 左右。多与的空间留给未来升级或者其他情况的缓冲。

    参考

    如果是UEFI+GPT分区表模式,那么给ubuntu分区的时候不用设置/boot分区,设置efi系统分区;如果是legacy+MBR分区表那么就要设置/boot分区。

    Ubuntu 经验 :设置EFI分区

    会生成 /dev/sda1

我们不会特别设置SWAP分区,虽然老的一些wiki里都会这里让你设置。没必要在这里设定死。

swap分区可以没有,进入系统后,灵活的通过swapfile的方式加入SWAP ,这里分配死不好变化了。

  • / 根 分区,这里用来存放系统。

    目录建议 50~64G

    必须是 primary 分区类型。主分区(Primary)用来安装系统,并且个数有限制。

    精简系统安装在 9G左右,全部安装大概在 17G,后期即使安装文件,也极其有限,64G足够了。

    会生成 /dev/sda2

  • /home 家目录,用户数据所在

    类型可以是 Primary分区或者Logic分区,建议Logic。

    剩余的内存全部分配给 /home 分区

    会生成 /dev/sda4 (可能我编辑又删除了。应该是递增的。)

  • booter安装选择 /EFI的分区 即 /dev/sda1

IMG_20210204_175214.jpg

这样就可以正常安装了。

3. 我想重装

按照 2 的分区方式。假设我因为更新内核系统崩溃了,或者想要换个发行版怎么办?

没关系,最好保留一个 USB的启动盘。插入电脑重新进入安装流程。在分区的环节,依然选择单独自己设置分区。

你会看到电脑的分区表。和安装时候一样的分布。这里可以通过 /dev/sda1 等标号对应起来,或者根据大小判断。

需要做的就是把对应的分区设置,挂载。 比如:单独对 /EFI / 两个分区删除,并且 change 选择 format(其实就是格式化,会出现打钩)。

注意

/home 挂在上 /home 分区,但是不要勾选format,也就是不格式化。

然后要注意的是,用户名 即 /home/ 这里的xxxx要设置成一样的名字。

重新安装完系统后,数据保持,系统更新了。

三、配置

1. SWAP 分区

SWAP分区是当年因为设备内存太小,分出一部分硬盘空间用来当内存以此来提高性能的技术。SSD比机械硬盘快,所以这部分如果机器是SSD,效果是更好一点。

Ubuntu安装系统默认的 Swap 分区是 2G,也就是内存的一半。

网上总流传一个 swap 的配置:

    如果内存很小 (<4GB),设为内存大小

    如果内存很大(>=4GB),设置为内存的一半

实际上时过境迁了,现在随便浏览器开一个标签浏览一个视频网站,你的内存就快速增长。

我这台设备是4G内存,日常使用的时候内存永远是满的状态,然后SWAP也会被塞满。这时候,我猜想Linux会花大量的时间在不断的GC, 当你感觉到系统很卡,应该就是内存分配不过来了。

而且Linux在内存分配产生边界的时候也会产生各种边界问题。

这里建议

4G 内存,建议分配 8G SWAP

8G 内存,建议 8G SWAP

分配SWAP的方式参考 change_swap_size_ubuntu

简述步骤

  • step1 切换为root用户

    sudo -s

  • step2 列出 可用的 SWAP

    swapon -s

展示可以用的SWAP

  • step3 停用 SWAP

    swapoff -a

  • step4 生成一个8G的文件

    bs就是一个单元,1M

    count 是 大小,实际大小是 ` bs* count`

    所以我们需要 8G 是 1M*1024 * 8 = 8192

    所以应该输入命令

    dd if=/dev/zero of=/swapfile bs=1M count=8192

  • step5

    启用刚才的swap

    mkswap /swapfile

    会生成一个随机ID

  • step6

    挂载swap分区

    swapon /swapfile

  • step7

    最好重启系统

    sudo reboot

  • step8

    重启系统可以查看

    swapon -s

    可以看到新的8G Swap已经在工作。

    或者通过图形软件:系统监视器

    里面可以看到 SWAP 交换区的工作状态

2. Xorg VS Wayland

结论:

1. Wayland 还有待成熟。

2. 日常使用他们在表现上号无差别。 虽然在原理上 wayland 应该更胜一筹,但是需要时间沉淀(已经快 10 年了)。

3. Wayland 可以尝试,最后还需要 Xorg

Wayland的优点:

1. 原理上,会比Xorg速度快,因为他简化了X11的模型

2. 也会减少内存和CPU

Wayland的缺点:

兼容性:

* 软件的兼容性不太好。而且在最重要的输入法会出现连击的 BUG,可以在系统设置--辅助里面,关闭掉连按按钮。但是不够好。

* 录屏工具 obs-studio 在录制屏幕的时候,Wayland 下不工作,总是黑屏,因为 wayland 的 composite 缺乏一个输出图像的 api …… 总之吧,还缺失很多的细节。

开发人员:

* Wayland 的开发人员很少,obs-studio 这个 bug 上 Wayland 的解决也不够积极。这是 2018 年提出的问题,到现在也没解决。

实际表现:

* 看过游戏性/能,xorg 和 wayland 差不多。

切换Wayland的方法

. 注销系统,可以选择 wayland 登陆

change wayland

四、硬件与驱动

1. Wifi

  • 关于主板自带 wifi Broadcom

    Broadcom 的无线网卡是很多主板上的选择,他虽然在 Ubuntu 上有闭源驱动,可是表现不尽人意。wifi 总是工作一段时间断掉,总让人有一种 Linux 很不稳定的感觉。我因为丢失 wifi 信号重启系统。

    尝试解决方案:

    1.把 wifi 芯片的节能模式设置为 off,永远不断开就可以工作。但是这需要芯片支持。结果不行。

  • 小米随身 wifi

    整理自己东西的时候,发现了 2016 年买的小米 wifi 。长的就像一个小的无线鼠标接受器。随身wifi当年是台式机不支持wifi,买一个这个插上去,PC就可以支持wifi了。当年刚出来,驱动都需要额外安装。新东西往往Linux不支持。

    小米随身 wifi, 小度 wifi,360 随身 wifi,他们的方案都一样,都是基于 MT7601U 这款芯片,对是联发科的。外国网友提交了补丁。现在 MTK7601U 这个驱动加入到内核里面了 —— 这玩意免驱的了。

    经过大概四五天的使用,不论是一天开机,隔夜开机,休眠,合盖子。wifi 工作都非常好,唤醒速度非常快,并且热插拔工作。当 wifi 的问题被解决后,系统的直观感受就是稳定多了,没那么多莫名其妙的信号突然丢失,网络突然减速。

    可以说远胜于自身主板的wifi。信号都强2格。

  • 可以选择其他的随身wifi

    淘宝上大概20~30不等,也有免驱动的兼容linux的,如果你手边有当年的随身wifi又可以使用了。

参考:

2. 显卡

这台机器没有独立显卡,这部分没有折腾记录 :D

五、软件使用

1. 安装软件的新选择

linux的版本众多,ubuntu这种 debian系默认的使用是apt来安装软件,如果是 Redhat系 比如 CentOS需要用 yum命令。并且两边的软件可能安装和工作的差距很大。

于是出现了磨平兼容性的新的打包和安装方式。

Ubuntu阵营的 snap,如果你安装>=20.04,已经自带了。或者是 RedHat阵营的 flatpak

他们原理都差不多,类似docker这种,提供了虚拟环境,并且是分层构建的。

Ubuntu也可以安装flatpak

1.1 Snap

一但用过snap估计就会喜欢上了它。网络好的时候速度非常快。感觉snap的基础设施起来了,flatpak依然很慢。

snap会自动保持软件到最新。

你只需要把 apt替换成snap就好了。

https://snapcraft.io/ 上浏览软件比自带的那个应用商店(做的的是垃圾)好多了。

2. 默认播放器缺乏编码器

  • step1 勾选 multiverse 源

    打开 “软件和更新(Software & Updates)” Ubuntu软件的tab下,勾选 “有版权和合法性问题的软件(multiverse)”

    然后关闭之后借助图形窗口更新源。或者取消自己去终端手动更新 sudo apt update

  • step2 安装额外包

    sudo apt install ubuntu-restricted-extras

    安装过程中需要输入 两个 Y 确认阅读了一些法律然后继续。

    安装完毕后即可正常使用默认播放器

    参考

    Plan B

    如果你觉得麻烦,可以直接使用 vlc 它自带了编码器。

梯子

qv2ray

sudo snap install qv2ray

Vscode

snap安装的会出现ibus中文无法输入的情况。 这是Vscode的BUG 不过最近还没被修复。

官网下在deb是解决方案。

deb可能遇到的问题

deb安装的报错

解决方法见: N: 鉴于仓库…不支持 ‘armhf‘ 体系结构,跳过配置文件 …的获取

Sublime Text

在18.04的时候,sublime无法中文输入。

现在不论是 deb、snap、flatpak都是可以工作的。

自带启动命令 subl

subl . 打开目录类似于 vscode 的 code .

JetBrain IDE

推荐 snap安装,整个过程无痛,中文输入没有问题。

六、其他情况

1. 开机出问题Failed to set MockListRT……报错

解决方法

你必须用 grubx64.efi 替换 shimx64.efi

sudo su -
cd /boot/efi/EFI/ubuntu
cp grubx64.efi shimx64.efi
reboot

踩坑还在继续……

逐渐补充

Ruby China 讨论 https://ruby-china.org/topics/40896

V2EX 讨论 https://www.v2ex.com/t/751846

我的博客 https://mark24code.github.io/ubuntu/linux/%E6%95%99%E7%A8%8B/2021/02/06/2021%E5%B9%B4%E7%BB%99%E4%BD%A0%E7%9A%84MacbookPro%E5%AE%89%E8%A3%85Ubuntu%E8%B8%A9%E5%9D%91%E8%AE%B0%E5%BD%95.html

参考

  • GnomeShell4

    Gnome4的说明,里面指出了Wayland存在一些问题比如输入法、图形输出的问题。而这些问题都需要重新构建Wayland和Gnome。 这里印证了,输入法连击BUG、OBS-studio无法正常录屏的问题。

Mark24

Everything can Mix.