上次更新:2024-03-12

以下指南或步骤要求在 FydeOS 系统中通过命令行执行操作。因此,我们假定你已启用「」。若需修改系统文件,则需要

#简介

RK3588 SOC 支持在启动时加载 FydeOS 系统自带的 device tree overlay 文件以及用户自定义的 dtbo 文件。

#为什么需要加载 device tree overlay?

加载 device tree overlay 的主要目的是为了提高硬件配置的灵活性,降低系统维护成本,允许用户自定义硬件配置,并便于故障排除和调试。通过使用 device tree overlay ,用户可以在不修改内核代码的情况下根据需求配置硬件,同时也更容易地定位和解决可能出现的问题。
例如,用户可以根据自己的项目需求启用或禁用特定外设,例如 PWM 风扇、I2C 设备等。

#前提条件

您需要了解 device tree overlays 和基本的 Linux 命令行操作。

#操作步骤

#1. 登录 FydeOS 账号并进入桌面

#2. 进入 bash shell 环境

要自定义加载的 device tree overlays ,你需要登录到任何 FydeOS 账号并进入桌面。通过 crosh (Control + Alt + T) 或 tty 并输入 sudo -i 获取管理员权限。

注意:自 FydeOS v17 和 openFyde r114 版本开始, sudo su 命令将不再起效,旧版本不会受到影响。

#3. 查看系统自带的 device tree overlays

系统自带的 device tree overlays 位于 /boot/rockchip/overlay/ 目录下,输入 ls /boot/rockchip/overlay/*dtbo 命令后,获得文件列表,如下所示(以 rock5b-fydeos 为例):

localhost ~ # ls  /boot/rockchip/overlay/
pwm-fan.dtbo                       rk3588-i2c8-m4.dtbo   rk3588-pwm15-m0.dtbo  rk3588-pwm6-m2.dtbo             rk3588-spi1-m1-cs1-spidev.dtbo  rk3588-uart7-m1.dtbo              rock-5b-hdmi2-8k.dtbo
rk3588-add-hdptxphy_hdmi_clk.dtbo  rk3588-pwm12-m0.dtbo  rk3588-pwm15-m1.dtbo  rk3588-pwm7-m3.dtbo             rk3588-uart2-m0.dtbo            rk3588-uart7-m2.dtbo              rock-5b-radxa-display-10fhd.dtbo
rk3588-i2c0-m1.dtbo                rk3588-pwm13-m0.dtbo  rk3588-pwm15-m3.dtbo  rk3588-pwm8-m0.dtbo             rk3588-uart2-m2.dtbo            rk3588-unlock-opps.dtbo           rock-5b-sata.dtbo
rk3588-i2c1-m0.dtbo                rk3588-pwm13-m2.dtbo  rk3588-pwm2-m1.dtbo   rk3588-spi0-m2-cs0-spidev.dtbo  rk3588-uart3-m1.dtbo            rock-5a-radxa-display-10fhd.dtbo
rk3588-i2c3-m1.dtbo                rk3588-pwm14-m0.dtbo  rk3588-pwm3-m1.dtbo   rk3588-spi0-m2-cs1-spidev.dtbo  rk3588-uart4-m2.dtbo            rock-5ab-camera-imx415.dtbo
rk3588-i2c7-m3.dtbo                rk3588-pwm14-m1.dtbo  rk3588-pwm5-m2.dtbo   rk3588-spi1-m1-cs0-spidev.dtbo  rk3588-uart7-m1-ctsn-rtsn.dtbo  rock-5b-hdmi1-8k.dtbo

#4. 加载系统自带的 device tree overlays

与 Armbian 的 uEnv.txt 类似,FydeOS for RK3588 SOC 系列同样支持 Env.txt , 该文件位于 /mnt/stateful_partition/fyde/Env.txt , 首次使用时可能不存在 /mnt/stateful_partition/fyde/ 目录 以及 /mnt/stateful_partition/fyde/Env.txt 文件,需要手动创建。以 Rock 5B 的 pwm-fan风扇控制 overlay 为例:

- 第一次使用需要创建 fyde 文件夹
mkdir -p /mnt/stateful_partition/fyde/

#使用 nano/vim 编辑 Env.txt文件,在`overlays=`添加需要增加的dtbo文件名,多个overlay需要以空格隔开
overlays=pwm-fan

- 保存更改内容

#5. 重启系统

执行完上述更改后,你需要重启系统使之生效。

#6. 添加自定义的 device tree overlays 文件

FydeOS 规定的用户自定义 device tree overlays 也就是 .dtbo 文件需要放置于 /mnt/stateful_partition/fyde/user_overlay/ 文件夹下(初次使用时该文件夹可能未存在,请自行创建), 将有关 .dtbo 文件拷贝到该文件下下即可。

#7. 加载自定义的 device tree overlays 文件

与 加载系统自带的 device tree overlays 类似,用户同样需要修改 /mnt/stateful_partition/fyde/Env.txt 文件

#使用 nano/vim 编辑 Env.txt 文件,在 user_overlays= 添加需要增加的 dtbo 文件名,多个 overlay 以空格隔开。
user_overlays=foo bar

#8. 重启系统

使更改生效。

#故障排除

  1. overlays 或者 user_overlays 定义需要加载的 overlay 不起作用。

请检查 Env.txt 文件的大小写是否正确,多个 overlay 需要用英文空行隔开。对于自定义的 overlay 请确保放置于 /mnt/stateful_partition/fyde/overlay中的 dtbo 文件是确保可用的。

  1. 为什么我更改了 overlays 或者 user_overlays 导致系统不能启动

在更改之前,请确保你加载的 overlay 是经过验证的,否则会导致系统不能启动。你可以通过手动 mount

系统所在磁盘第一分区所对应的 /fyde/Env.txt 文件来撤销你的更改。