适用型号:TL3588-EVM-A1.2-512GE64GD-W-A1.0 (RK3588 宽温级 / 64GB eMMC / 8GB LPDDR4X)
资料依据:《1-1-调试工具安装》《1-2-开发环境搭建》《3-1-Ubuntu系统使用手册》《3-2-系统启动卡制作及系统固化》(创龙科技,V1.0,2026/07/22)
目标系统:Ubuntu 22.04 / Linux-6.1.141 / U-Boot-2017.09,SDK 基于
rk3588_linux6.1_release_v1.4.0
0. 准备工作(贯穿全部阶段)
0.1 硬件准备
| 物品 | 用途 | 说明 |
|---|---|---|
| TL3588-EVM 评估板 | 目标板 | 12V/2A 供电(DC-005 或 3pin 端子),电源拨动开关 SW1 拨至 ON |
| Micro SD 卡 + 读卡器 | 制作系统启动卡 / 升级卡 | 出厂随附 1 张系统卡 |
| 两根 Type-C 数据线 | 调试串口 + 烧录 | 一根接 CON6(USB TO UART2 调试串口) ,一根接 CON12(USB3.1 OTG,与 DP 共口) |
| Windows PC | 运行 VMware、烧写工具 | Windows 7/10 64bit |
0.2 软件清单(均在产品资料 4-软件资料\Tools\Windows\ 下)
| 软件 | 版本 | 来源 | 用途 |
|---|---|---|---|
| VMware Workstation | 16.2.5 | VMware-workstation-full-16.2.5-20904516.exe |
虚拟机 |
| Ubuntu 桌面版 ISO | 22.04.5 | ubuntu-22.04.5-desktop-amd64.iso |
宿主机编译环境 |
| CH341SER 驱动 | - | CH341SER.zip |
USB 转串口(CH340T)驱动 |
| SecureCRT | 7.2.5 | VanDyke.SecureCRT.zip |
串口终端(需自备 License) |
| SDDiskTool | v1.78 | SDDiskTool_v1.78.zip |
制作 SD 启动卡 / 升级卡 |
| DriverAssitant | v5.13 | DriverAssitant_v5.13.zip |
瑞芯微 Rockusb 驱动 |
| RKDevTool | v3.37 | RKDevTool_Release_v3.37.zip |
USB 烧录 eMMC |
0.3 关于"拨码 / 跳线"的重要说明
本评估板没有启动介质拨码开关。 板上唯一的拨动开关 SW1 是电源开关。启动行为由以下机制决定:
- CPU 内部 BootROM 上电后按 eMMC → Micro SD → USB3.1 OTG 的顺序检测 SPL,从第一个含有效 SPL 的设备启动;
- 因此:插入制作好的系统启动卡即从 SD 启动(串口打印
Bootdev(atags): mmc 1),取出 SD 卡即从 eMMC 启动(Bootdev(atags): mmc 0); - 烧录模式不用跳线,用按键 :断电状态按住 USER1(KEY4) (进 Loader 模式)或 Maskrom(KEY3)(进 Maskrom 模式,救砖用)再上电。
0.4 调试串口连接(先于一切操作)
- PC 安装 CH341SER 驱动(解压
CH341SER.zip,设备管理器 → 更新驱动程序 → 指向解压目录); - Type-C 线连接评估板 CON6 到 PC,设备管理器确认出现 COM 口;
- 安装 SecureCRT,快速连接:Protocol=Serial,Port=对应 COM 口,波特率 115200(8N1,其余默认);
- Options → Session Options → Appearance → Character encoding 选 UTF-8(防中文乱码)。
阶段① 在 VMware 上安装并配置 Ubuntu 虚拟机
目的
搭建运行编译工具链和 LinuxSDK 的宿主机环境(SDK 编译必须在 Linux 下进行)。
所需软件及版本
- VMware Workstation 16.2.5
- Ubuntu 22.04.5 桌面版 64bit ISO
操作步骤
1. 安装 VMware
双击安装包 → 接受许可 → 建议英文安装路径 → 安装(约 2min)→ 输入许可证密钥(自行购买)。如需英文界面:进入安装目录,将 messages\zh_CN 文件夹重命名为 zh。
2. 新建虚拟机(关键配置)
File → New Virtual Machine → Custom(advanced):
- Hardware compatibility:Workstation 16.2.x
- Guest OS:I will install the operating system later.(先建虚拟机后挂 ISO)
- 客户机操作系统:Linux → Ubuntu 64-bit
- 内存:8192 MB(8GB)
- 网络:桥接网络(Bridged)------后续 TFTP/NFS 网络启动、与评估板同网段通信均要求桥接
- I/O 控制器:LSI Logic(Recommended) ;虚拟磁盘:SCSI ;新建磁盘,最大磁盘 150 GB(SDK 解压+编译占用大,不要给小)
3. 安装 Ubuntu
VM → Settings → CD/DVD(SATA) → Use ISO image file → 选择 ubuntu-22.04.5-desktop-amd64.iso → 开机:
- 语言 English → Install Ubuntu,键盘 English(US)
- 选择 Minimal installation ,取消勾选 "Download updates while installing Ubuntu"
- Erase disk 安装(虚拟机磁盘),安装约 10~30min
- 建议用户名 / 主机名 / 密码均设为 Tronlong(与厂家文档示例一致,区分大小写)
4. 安装后初始配置
bash
# 弹出系统升级提示时,一律选 "Don't Upgrade"
sudo passwd root # 开启 root,设置并记住 root 密码
sudo apt-get update # 只更新软件列表,不升级系统
sudo apt-get install vim gedit
5. 安装 VMware Tools(10.3.23)并配置共享目录
VM → Reinstall VMware Tools:
bash
cd /media/tronlong/VMware\ Tools/
mkdir -p /home/tronlong/mnt
tar -zxf VMwareTools-10.3.23-16594550.tar.gz -C /home/tronlong/mnt
cd /home/tronlong/mnt/vmware-tools-distrib/
sudo ./vmware-install.pl # 第一问输 yes,其余回车
关机后 VM → Settings → Options → Shared Folders → Always enabled → Add 添加共享目录(如 SharedFolders),开机后:
bash
vmware-hgfsclient # 确认共享目录已配置
sudo mkdir /mnt/hgfs
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other
# 开机自动挂载:在 /etc/fstab 追加一行
# .host:/SharedFolders /mnt/hgfs/SharedFolders fuse.vmhgfs-fuse allow_other,defaults 0 0
完成后验证
ls /mnt/hgfs能看到共享目录,且 Windows 与 Ubuntu 间可互传文件;- 终端能执行
ifconfig查到与 PC 同网段的 IP(桥接成功)。
常见错误
| 现象 | 原因 / 解决 |
|---|---|
| 无法安装 64 位操作系统 | Windows 未开虚拟化:重启进 BIOS → CPU Configuration → Virtualization = Enabled |
| 虚拟机连网线后不能上网 | Win+R → services.msc → 找到 VMware NAT Service → 启动类型"自动"并启动 |
| 后续 apt/TFTP/NFS 异常 | 虚拟机网络未用桥接模式,重新配置网卡为 Bridged |
| 磁盘爆满 | 虚拟磁盘给的太小,至少 150 GB |
| 误点了系统升级 | 升级可能导致工具链/依赖异常,建议快照后回退或重装 |
建议:系统装好后用 VMware 做一次快照,每个大阶段开始前再快照一次。
阶段② 在虚拟机中部署编译环境
目的
安装 SDK 依赖包、两套交叉编译工具链(内核/U-Boot 用与应用用),并解压 LinuxSDK。
所需软件及版本
- LinuxSDK 开发包:
4-软件资料\Ubuntu\LinuxSDK\LinuxSDK-v1.0.tar.gz(基于 rk3588_linux6.1_release_v1.4.0,解压后约需较大磁盘空间) - Ubuntu 文件系统镜像:
4-软件资料\Ubuntu\Filesystem\ubuntu-22.04\image\ubuntu-22.04-v1.0-g27dfff7\rootfs.img - 应用工具链本地包(可选):
gcc-aarch64-linux-gnu_11.2.0-1ubuntu1_amd64.tar.gz - 应用 sysroot(可选,做应用开发才需要):
rk3588-ubuntu22.04-sysroot-v1.0.tar.gz - 说明:本资料包以 tar.gz 形式提供 SDK,不使用 repo 拉取(资料中未提供 repo 清单,无需配置 repo)
操作步骤
1. 安装依赖包(SDK 编译必需)
bash
sudo apt-get update
sudo apt-get install git ssh make gcc libssl-dev \
liblz4-tool expect expect-dev g++ patchelf chrpath gawk texinfo chrpath \
diffstat binfmt-support qemu-user-static live-build bison flex fakeroot \
cmake gcc-multilib g++-multilib unzip device-tree-compiler ncurses-dev \
libgucharmap-2.90-dev bzip2 expat gpgv2 cpp-aarch64-linux-gnu libgmp-dev \
libmpc-dev bc python-is-python3 python2 gettext
提示 *** is already the newest version 属正常,忽略即可。
2. 解压 LinuxSDK
把 LinuxSDK-v1.0.tar.gz 经共享目录拷入虚拟机:
bash
mkdir -p /home/tronlong/RK3588
cd ~/RK3588/
tar -zxf LinuxSDK-v1.0.tar.gz # 约 5min,生成 rk3588_linux_release/
cd rk3588_linux_release/ && ls -l
SDK 目录结构要点:build.sh(编译脚本)、kernel-6.1(内核源码,kernel 为其软链接)、u-boot、device/rockchip(板级配置与分区表)、prebuilts(内置交叉工具链)、ubuntu/(Ubuntu 文件系统相关)、rkbin、external、tools。
3. 拷贝文件系统镜像(关键!不拷无法打包 update.img)
bash
# 将 rootfs.img 拷贝至 SDK 的 ubuntu 目录
cp /mnt/hgfs/SharedFolders/.../rootfs.img /home/tronlong/RK3588/rk3588_linux_release/ubuntu/
4. 配置系统开发环境变量(编译 U-Boot / 内核用)
bash
export PATH=/home/tronlong/RK3588/rk3588_linux_release/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin:$PATH
aarch64-none-linux-gnu-gcc -v # 应显示 10.3.2021.07
5. 安装应用开发交叉工具链(编译 Demo/应用程序用,二选一)
bash
# 方式一:网络安装(推荐,简单)
sudo apt update
sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
aarch64-linux-gnu-gcc --version # 11.4.0 即成功,装于 /usr/bin/
# 方式二:本地安装(离线)
tar -zxf gcc-aarch64-linux-gnu_11.2.0-1ubuntu1_amd64.tar.gz
sudo apt remove gcc-multilib # 先卸载,避免依赖冲突
sudo apt --fix-broken install
sudo dpkg -i gcc-11-aarch64-linux-gnu_11.4.0-1ubuntu1~22.04cross1_amd64.deb
sudo dpkg -i gcc-aarch64-linux-gnu_11.2.0-1ubuntu1_amd64.deb
sudo dpkg -i libstdc++-11-dev-arm64-cross_11.4.0-1ubuntu1~22.04cross1_all.deb
sudo dpkg -i g++-11-aarch64-linux-gnu_11.4.0-1ubuntu1~22.04cross1_amd64.deb
sudo dpkg -i g++-aarch64-linux-gnu_11.2.0-1ubuntu1_amd64.deb
# 注:包名带 11.2.0,实际安装后版本为 11.4.0
6.(可选)配置应用 sysroot
bash
# sysroot 包拷至 SDK ubuntu/ 目录后解压
cd /home/tronlong/RK3588/rk3588_linux_release/ubuntu/
tar -zxf rk3588-ubuntu22.04-sysroot-v1.0.tar.gz
# 应用编译前执行(source 后当前终端不再适用于内核/U-Boot 开发,另开终端即可)
source /home/tronlong/RK3588/rk3588_linux_release/ubuntu/environment
完成后验证
aarch64-none-linux-gnu-gcc -v→ 10.3.2021.07(内核工具链 OK);aarch64-linux-gnu-gcc --version→ 11.4.0(应用工具链 OK);ls ~/RK3588/rk3588_linux_release/ubuntu/rootfs.img存在。
常见错误
| 现象 | 原因 / 解决 |
|---|---|
| 打包 update.img 时找不到 rootfs | rootfs.img 未拷入 rk3588_linux_release/ubuntu/(最常见遗漏) |
| dpkg 安装应用工具链报依赖错误 | 未先 apt remove gcc-multilib;执行 sudo apt --fix-broken install 后重装 |
| 内核编译报编译器/头文件异常 | 当前终端 source 过应用环境变量 ubuntu/environment------另开终端重新 export 内核工具链 PATH |
| 依赖安装中断 | Ubuntu 未联网或源不可用,先确认 apt-get update 正常 |
| 先配了应用环境变量再编内核 | 手册明确:配置系统环境变量前勿执行应用环境变量配置,否则系统镜像编译失败;新开终端纠正 |
阶段③ 获取并编译系统镜像
目的
用 LinuxSDK 一键编译(或局部编译)生成可烧写的 Ubuntu 系统镜像 update.img。
捷径 :若只需恢复/重刷出厂系统,可直接使用成品镜像
4-软件资料\Ubuntu\updateimg\update_v1.0.img,跳过本阶段进入阶段④。
操作步骤
1. 配置编译选项(进入 SDK 根目录)
bash
cd /home/tronlong/RK3588/rk3588_linux_release/
./build.sh lunch:tl3588_evm_ubuntu_defconfig
# 查看全部编译参数:./build.sh help
2.(按需)选择设备树
默认编译 tl3588-evm.dts(HDMI OUT / DP 1.4a 可 8K,无 eDP)。
如需 eDP 屏输出:修改 device/rockchip/rk3588/tl3588_evm_ubuntu_defconfig 中
RK_KERNEL_DTS_NAME="tl3588-evm" → "tl3588-evm-edp",再执行一次 lunch(注意:edp 版将 HDMI OUT / DP 限制为 4K)。
3. 一键编译
bash
./build.sh
编译完成后在 rockdev/ 目录生成全部镜像:
| 产物 | 说明 |
|---|---|
boot.img |
内核镜像(含内核 + 设备树) |
uboot.img / MiniLoaderAll.bin |
U-Boot 镜像 / DDR 初始化+SPL |
misc.img / recovery.img |
misc / 恢复升级镜像 |
rootfs.img |
根文件系统镜像 |
oem.img / userdata.img |
挂载到 /oem、/userdata |
parameter.txt |
分区表(update.img 按此存放各镜像) |
update.img |
完整系统镜像 = 上述镜像的打包 |
4. 局部编译与重新打包(改完内核/U-Boot/文件系统后)
bash
./build.sh uboot # 生成 output/firmware/uboot.img
./build.sh kernel # 生成 output/firmware/boot.img
./build.sh ubuntu # 生成 output/firmware/rootfs.img
./build.sh firmware # 重新打包 → output/update/Image/update.img
单独替换内核到已制作的 SD 启动卡:dd if=boot.img of=/dev/mmcblk1p3(eMMC 启动则为 /dev/mmcblk0p3)。
5.(可选)编译 Linux-RT 实时内核
bash
cd kernel/
cp arch/arm64/configs/rk3588_linux.config arch/arm64/configs/rk3588_linux-bak.config # 备份
cp arch/arm64/configs/rockchip_rt.config arch/arm64/configs/rk3588_linux.config # 换 RT 配置
cd .. && ./build.sh kernel
# 恢复普通内核:反向 cp 回 rk3588_linux-bak.config
(资料另提供现成 RT 内核镜像 boot-rt.img,位于 4-软件资料\Ubuntu\Kernel\image\linux-6.1.141-v1.0-g8c14797\,无需自己编译即可 dd 替换。)
完成后验证
ls -l rockdev/update.img存在且时间戳为本次编译时间;- 产物目录含 boot.img / uboot.img / rootfs.img / parameter.txt 等 9 类文件。
常见错误
| 现象 | 原因 / 解决 |
|---|---|
| 打包失败/缺 rootfs | 阶段②第 3 步遗漏:rootfs.img 必须在 SDK ubuntu/ 目录 |
| PCIe 3.0 设备(NVMe 等)不识别 | 默认设备树 tl3588-evm.dts / tl3588-evm-edp.dts 已关闭 PCIe 3.0 :将 dts 中对应节点 status = "disabled" 改 "okay" 后 ./build.sh kernel 重编;或直接 dd 资料中的 boot-enable-pcie.img |
| eDP 屏画面冻结 | 在 tl3588-evm-edp.dts 的 edp1 节点增加 rockchip,disable-psr; 禁用自刷新 |
| 换了设备树不生效 | 修改 defconfig 后需重新执行 ./build.sh lunch:tl3588_evm_ubuntu_defconfig |
| kernel-config 打不开菜单 | 先 sudo apt-get install libncurses5-dev libncursesw5-dev,再 ./build.sh kernel-config |
| 编译中途 OOM/卡死 | 虚拟机内存不足(应 8GB),或磁盘满 |
阶段④ 制作 SD 启动卡 / USB OTG 烧录 eMMC
所有 Windows 烧写工具务必解压到非中文路径使用。
目的
把 update.img 写入 Micro SD 卡(调试用启动卡 / 量产用升级卡),或经 USB3.1 OTG 固化到板载 eMMC。
方式 A:制作 SD 启动卡(SDDiskTool,日常调试推荐)
- 解压
SDDiskTool_v1.78.zip至非中文目录,右键管理员运行SD_Firmware_Tool.exe; - 插入 Micro SD 卡(经读卡器),"第一步:选择可移动设备"选中该卡;
- 点 恢复磁盘 格式化 → 弹窗"是(Y)" → 完成后"确定";
- 勾选 "SD 启动" → 点 选择固件 → 选中
update.img(自制产物或update_v1.0.img)→ 点 开始创建 → "是(Y)"; - 等待约 10min,弹窗"确定"完成。
上电验证 :评估板断电 → 插入 SD 启动卡 → SW1 拨 ON → 串口(115200)看到 Bootdev(atags): mmc 1 即从 SD 卡启动,系统自动登录 root。
方式 B:SD 升级卡固化到 eMMC(批量/免 PC)
- 若 update.img 大于 4GB :先将工具目录下
config.ini中默认 FAT32 改为 NTFS(FAT32 单文件上限 4GB); - SDDiskTool 中格式化后,功能模式勾选 "固件升级" (而非"SD 启动")→ 选择固件 → 开始创建,约 5min 完成;
- 评估板断电插入该 SD 升级卡 → 上电,自动将系统固化至 eMMC(串口打印固化进度);
- 固化完成后无需断电直接取出升级卡,评估板自动从 eMMC 启动。
方式 C:RKDevTool 经 USB OTG 烧录 eMMC(PC 在线烧写)
1. 安装驱动 :解压 DriverAssitant_v5.13.zip 运行 DriverInstall.exe,先点"驱动卸载"→确定,再点"驱动安装"→确定(先卸载再安装,确保 Rockusb 驱动生效)。
2. 连接 :从 SD 卡槽取出 SD 卡 ;两根 Type-C 线分别连接 CON12(USB3.1 OTG) 和 CON6(调试串口) 到 PC。
3. 进入烧录模式(按键,非拨码) :评估板断电,按住 USER1(KEY4) 不放 → 上电 → RKDevTool 提示 "发现一个 LOADER 设备" (eMMC 已固化过系统)或 "发现一个 MASKROM 设备"(eMMC 为空/损坏)→ 松开按键。两种提示均可烧录。
系统损坏(误删分区、U-Boot/SPL 损坏等无法启动)时,改按 Maskrom(KEY3) 上电进 Maskrom 模式,为最终救砖方式。
4. 烧写 :运行 RKDevTool_Release_v3.37\RKDevTool_v3.37_for_window\RKDevTool.exe:
- 切到 "升级固件" 页 → 点 "固件" 选择
update.img→ 点 "升级"; - 提示 "下载固件成功" 即固化完成,评估板自动重启并从 eMMC 启动。
若 eMMC 之前烧写过其他镜像:先切 "高级功能" → "擦除所有" 完全擦除后再烧,避免分区信息异常。
(备选)按分区单烧:进入 Loader 模式后切"下载镜像"页,点"设备分区表"读取分区,勾选对应分区(如 boot 勾 boot.img)执行------仅支持 eMMC,不支持写 SD 启动卡。
完成后验证(烧录后必查)
bash
# 串口(115200)启动日志确认启动介质:
# Bootdev(atags): mmc 1 → 从 SD 启动卡启动
# Bootdev(atags): mmc 0 → 从 eMMC 启动
# 系统内(自动登录 root):
fdisk -l # mmcblk0 = eMMC,mmcblk1 = SD 启动卡,各 8 个分区(p1 uboot ... p8 userdata)
df -Th # rootfs 剩余约 9.8GB、userdata 剩余约 16GB(默认分区表)
cat /proc/version # 确认内核版本 6.1.141(自制 RT 内核则显示 6.1.141-rt36)
常见错误
| 现象 | 原因 / 解决 |
|---|---|
| RKDevTool 一直无设备提示 | ① SD 卡未取出(优先从 SD 启动了)② 按键时机错误------必须断电状态按住按键再上电 ③ 线插错口,烧录口是 CON12(USB3.1 OTG/DP 共用 Type-C),不是 CON6 ④ Type-C 线为充电线无数据 ⑤ 驱动未装好,重做"先卸载再安装" |
| 烧录后启动异常/分区错乱 | eMMC 旧镜像残留------"高级功能→擦除所有"后重烧 |
| SD 升级卡制作时失败/镜像拷入不全 | update.img >4GB 且未改 config.ini 为 NTFS |
| SDDiskTool 打不开或报错 | 未以管理员身份运行;或工具/镜像放在中文路径 |
| 想从 eMMC 启动却仍走 SD | Micro SD 卡槽中的启动卡未取出 |
| 串口无输出 | 波特率非 115200;线插在 CON12 而非 CON6;CH340 驱动未装 |
| eMMC 空板烧录无 LOADER 提示 | 正常现象,空 eMMC 显示 MASKROM 设备,直接烧即可 |
附录 A:出厂镜像 / 内核变体速查(4-软件资料\Ubuntu\)
| 文件 | 位置 | 用途 |
|---|---|---|
update_v1.0.img |
updateimg\ |
出厂完整系统镜像(可直接烧) |
boot.img |
Kernel\image\linux-6.1.141-v1.0-g8c14797\ |
默认内核(PCIe 3.0 关闭) |
boot-rt.img |
同上 | Linux-RT 实时内核 |
boot-edp.img / boot-edp-rt.img |
同上 | 启用 eDP(HDMI/DP 限 4K) |
boot-enable-pcie.img / boot-enable-pcie-rt.img |
同上 | 启用 PCIe 3.0 |
rootfs.img |
Filesystem\ubuntu-22.04\image\ubuntu-22.04-v1.0-g27dfff7\ |
文件系统镜像(拷入 SDK ubuntu/ 用) |
内核变体替换:dd if=boot-xxx.img of=/dev/mmcblk1p3(SD 启动卡)或 of=/dev/mmcblk0p3(eMMC)→ sync → reboot。
附录 B:分区表(eMMC 与 SD 启动卡同构,8 分区)
| 分区 | 内容 | 分区 | 内容 |
|---|---|---|---|
| p1 | uboot | p5 | backup(预留) |
| p2 | misc | p6 | rootfs(系统) |
| p3 | boot(内核) | p7 | oem |
| p4 | recovery | p8 | userdata(推荐日常数据写这里) |
分区大小由 SDK device/rockchip/rk3588/parameter.txt 决定(1 扇区 = 512Byte),改后需重编打包 update.img。
附录 C:设备树修改操作
设备树源码位于 SDK kernel/arch/arm64/boot/dts/rockchip/ 目录:
| 文件 | 说明 |
|---|---|
tl3588-evm.dts |
基础设备树(默认编译):HDMI OUT 8K、DP 1.4a 8K、LVDS、MIPI LCD |
tl3588-evm-edp.dts |
增加 eDP OUT,但 HDMI OUT / DP 被限制为 4K |
rk3588.dtsi 等其余 .dtsi |
公共依赖文件(依赖链:dts → rk3588-evb7-lp4.dtsi / rk3588-linux.dtsi → rk3588.dtsi 等),手册示例均只改板级 dts |
标准流程:改 → 编 → 烧 → 验证
bash
# 1. 备份并修改
cd /home/tronlong/RK3588/rk3588_linux_release/kernel
cp arch/arm64/boot/dts/rockchip/tl3588-evm.dts arch/arm64/boot/dts/rockchip/tl3588-evm.dts.bak
vim arch/arm64/boot/dts/rockchip/tl3588-evm.dts
# 2. 重编内核(设备树编译进 boot.img)
cd ~/RK3588/rk3588_linux_release/ && ./build.sh kernel # 产物 output/firmware/boot.img
# 3. 更新(当前 SD 启动卡启动写 mmcblk1p3;eMMC 启动写 mmcblk0p3)
dd if=output/firmware/boot.img of=/dev/mmcblk1p3 && sync && reboot
# 或 RKDevTool(Loader 模式)单烧 boot 分区(仅 eMMC)
# 或 ./build.sh firmware 打包新 update.img 整包烧录(产物 output/update/Image/update.img)
切换为 eDP 设备树(改整树)
bash
vi device/rockchip/rk3588/tl3588_evm_ubuntu_defconfig
# #RK_KERNEL_DTS_NAME="tl3588-evm" // 注释原行
# RK_KERNEL_DTS_NAME="tl3588-evm-edp" // 启用 edp 树
./build.sh lunch:tl3588_evm_ubuntu_defconfig # 必须重新 lunch
./build.sh kernel
资料中的实际修改案例
| 需求 | 修改 | 验证 |
|---|---|---|
| 启用 PCIe 3.0 | tl3588-evm.dts PCIe 3.0 节点 status = "disabled" → "okay" |
lspci -vv |
| eDP 画面冻结 | tl3588-evm-edp.dts edp1 节点新增 rockchip,disable-psr; |
eDP 显示正常 |
| CPU overdrive 提频 | tl3588-evm.dts OPP 节点:RK3588(本板)改 opp-xxxxxxx ;RK3588J 才用 opp-j-m-xxxxxxx。示例:删除 /delete-node/ opp-j-m-1800000000、/delete-node/ opp-j-m-2016000000 两行放出高主频档 |
cat /sys/devices/system/cpu/cpufreq/policy4/scaling_available_frequencies |
| 开机 LOGO 旋转 | &route_hdmi0(DP/MIPI/eDP 对应 &route_dp0/&route_dsi0/&route_edp0)加 logo,rotate,取值 0/90/180/270 |
重启查看 LOGO |
注意事项
- 本板为 RK3588(宽温级),OPP 节点是
opp-xxxxxxx,改opp-j-m-*无效; - overdrive 高主频会高温缩短寿命,厂家默认 A76 限 1.6GHz / A55 限 1.3GHz;
- source 过应用环境变量的终端不能编内核,另开终端重新 export 工具链 PATH;
./build.sh kernel-config(menuconfig)改的是内核 .config,与设备树无关;- 切换设备树文件名后必须重新执行 lunch,否则仍编译旧树。