# UPBoard 优化修复指南
# 优化
$ systemd-analyze time |
共有三部分优化方向:
- Firmware(固件):这里是 UEFI
- Loader(加载引导):这里是 Grub
- Kernel(内核):这里是 Kernel
- User(用户态):这里是用户设置自启的程序
# Firmware
UEFI 并不开源,无法修改源码,这就加大了优化难度,可以通关关掉不要功能来加速,但是因为作为控制板,几乎所有外设都开启,使得 UEFI 开启会对整个板子的外设进行自检,自检是枚举遍历来完成,因此这个时间难以优化
- 待补充
# Loader
- 待补充
# Kernel
定制化裁剪内核即可,内核编译时,如何进行取舍,比较复杂,这里建议新手使用架构推荐的 config 来修改
# 以此类推路径 | |
$ cp /linux-5.10.1/arch/x86/configs/x86_64_deconfig .config |
- 网络
- 驱动
- 内存管理
- 文件系统支持
- 加密
- log 辅助
# User
用户态加速主要可以通过两个手段:
- 一个是减少不必要的开启自启
- 另一方面是使用一些预加载工具
# 减少服务
$ systemd-analyze blame #查看非必要的服务,并禁用 |
这里有一些典型的例子:
- cloud* : 服务器相关
- snap* : 服务器相关
- apport:
- ・・・・・具体 Google 你就知道
$ cd /etc/init.d/ |
删掉这里没用的开机任务:不懂可以 Google
# 预加载工具
e4rat:通过分析你的进程读取和操作的文件和资源,以后开机后进行预加载
使用参考:https://wiki.archlinux.org/index.php/E4rat_(简体中文)
# 修复
# Q.1 无法正常重启和关机
答:这是由于垃圾微软的垃圾适配造成的,其主要因素就是 ACPI,在 UEFI 中将 emmc 的 mode 改为由 ACPI 改为 PCI 即可。其他也尽量避免使用 ACPI,ACPI 是与电源控制相关的,对我们用处不大
# Q.2 开机等待时间非常长
答:这是由于一个系统服务 NetworkManger 导致的,可以修改设置使其直接跳过
$ sudo nano /etc/netplan/01-netcfg.yaml | |
#在网卡的下一级目录中增加 | |
optional: true | |
#修改完后生效设置 | |
$ sudo netplan apply |
# Q.3 开机报错 initramfs unpacking failed: Decoding failed
答:这是由于 LZ4 解压算法无法正常使用导致的,可以通过修改解压方式来使其正常
$ sudo nano /etc/initramfs-tools/initramfs.conf | |
#找到 COMPRESS=lz4 修改为 | |
COMPRESS=GZIP |
# 推荐阅读
https://elinux.org/Category:Boot_Time