跳转到内容

RK3588 系列开发板使用 device tree overlays

上次更新: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 文件来撤销你的更改。