# 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
  1. 网络
  2. 驱动
  3. 内存管理
  4. 文件系统支持
  5. 加密
  6. log 辅助

# User

用户态加速主要可以通过两个手段:

  • 一个是减少不必要的开启自启
  • 另一方面是使用一些预加载工具

# 减少服务

h
$ systemd-analyze blame  #查看非必要的服务,并禁用

这里有一些典型的例子:

  1. cloud* : 服务器相关
  2. snap* : 服务器相关
  3. apport:
  4. ・・・・・具体 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

更新于

请我喝[茶]~( ̄▽ ̄)~*

Junwide Xiao 微信支付

微信支付

Junwide Xiao 支付宝

支付宝