RK3588 Device Tree Configuration
Last Update: 2024-03-13
The following guide or recipe requires shell access to your FydeOS installation, therefore developer mode is assumed to be enabled. If altering system file is required, you will also need to disable root file system verification.
Introduction
Section titled “Introduction”The RK3588 SOC supports the loading of both FydeOS’s built-in device tree overlay files and user-defined dtbo files during startup.
The Importance of Loading Device Tree Overlays
Section titled “The Importance of Loading Device Tree Overlays”Loading device tree overlays primarily enhances hardware configuration flexibility, reduces system maintenance costs, and facilitates user customization of hardware configurations. It also simplifies troubleshooting and debugging.
By leveraging device tree overlays, users can configure hardware to suit their needs without modifying the kernel code. This approach also simplifies the process of identifying and resolving potential issues. For example, users can enable or disable specific peripherals, such as PWM fans or I2C devices, based on their project requirements.
Prerequisites
Section titled “Prerequisites”To proceed, you should understand the basic concepts of device tree overlays and basic Linux command-line operations.
Step-by-Step Procedure
Section titled “Step-by-Step Procedure”Step 1: Sign in to your FydeOS account and enter the desktop
Section titled “Step 1: Sign in to your FydeOS account and enter the desktop”Step 2: Enter the Bash shell environment
Section titled “Step 2: Enter the Bash shell environment”To customize the loading of device tree overlays, sign in to any FydeOS account and enter the desktop. Access administrator privileges by navigating through crosh (Control + Alt + T) or tty and typing sudo su.
Note: From FydeOS v17 and openFyde r114 onwards,
sudo suwill no longer work. Please usesudo -iinstead. This change does not impact older versions.
Step 3: View the built-in device tree overlays
Section titled “Step 3: View the built-in device tree overlays”The built-in device tree overlays are located in the /boot/rockchip/overlay/ directory. After entering the ls /boot/rockchip/overlay/*dtbo command, you will see the file list, as shown below (using rock5b-fydeos as an example):
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.dtbork3588-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.dtbork3588-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.dtbork3588-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.dtbork3588-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.dtbork3588-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.dtboStep 4: Load the built-in device tree overlays
Section titled “Step 4: Load the built-in device tree overlays”FydeOS for RK3588 SOC series, like Armbian’s uEnv.txt, supports Env.txt, located in /mnt/stateful_partition/fyde/Env.txt. For first-time users, you may need to manually create the /mnt/stateful_partition/fyde/ directory and /mnt/stateful_partition/fyde/Env.txt file. Here’s an example using rock5b’s pwm-fan fan control overlay:
-
For first-time use, create the fyde folder
Terminal window mkdir -p /mnt/stateful_partition/fyde/ -
Use nano/vim to edit the
Env.txtfile, add the dtbo file name tooverlays=, separate multiple overlays with a spaceTerminal window overlays=pwm-fan -
Save the changes
Step 5: Restart the system
Section titled “Step 5: Restart the system”After making the changes, restart the system to apply them.
Step 6: Add custom device tree overlays files
Section titled “Step 6: Add custom device tree overlays files”FydeOS requires user-defined device tree overlays, or .dtbo files, to be placed in the /mnt/stateful_partition/fyde/user_overlay/ folder. If you’re a first-time user and the folder doesn’t exist, create it. Then, copy the relevant .dtbo files into this folder.
Step 7: Load custom device tree overlays files
Section titled “Step 7: Load custom device tree overlays files”Loading custom device tree overlays is similar to loading built-in ones. You need to modify the /mnt/stateful_partition/fyde/Env.txt file.
Use nano/vim to edit the Env.txt file, add the dtbo file name to user_overlays=, separate multiple overlays with a space
user_overlays=foo barStep 8: Restart the system
Section titled “Step 8: Restart the system”Restart the system to apply the changes.
Troubleshooting
Section titled “Troubleshooting”- The
overlaysoruser_overlaysdefined for loading the overlay do not work.
Check the case in the
Env.txtfile is correct, and separate multiple overlays with an English blank line. For custom overlays, ensure that the dtbo files in/mnt/stateful_partition/fyde/overlayare valid.
- Why did changing the
overlaysoruser_overlayscause the system to fail to boot?
Before making changes, ensure that the overlay you’re loading has been verified; otherwise, it may cause the system to fail to boot. If this happens, you can undo your changes by manually mounting the /fyde/Env.txt file corresponding to the first partition of the system’s disk.