Linux 2021 年给你的 MacbookPro 安装 Ubuntu

Mark24 · February 06, 2021 · Last by aaline57963 replied at February 18, 2021 · 5186 hits

一、前面的话

我的 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,他们的方案都一样,都是基于 MTK7601U 这款芯片,对是联发科的。外国网友提交了补丁。现在 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

看完我的第一反应居然是:换了我,不如新买一台笔记本好了……[捂脸]

Reply to tomanderson

哈哈,旧设备闲着也是闲着

别浪费,再利用!

You need to Sign in before reply, if you don't have an account, please Sign up first.