从零开始:在RK3568开发板上手把手搭建Linux驱动开发环境(含完整SDK编译与镜像烧录流程)
2026/4/19 11:04:19 网站建设 项目流程

从零开始:在RK3568开发板上手把手搭建Linux驱动开发环境(含完整SDK编译与镜像烧录流程)

1. 环境准备与工具链配置

对于嵌入式Linux开发而言,正确的工具链配置是成功的第一步。RK3568作为瑞芯微推出的高性能处理器,其开发环境搭建需要特别注意工具链的兼容性。

推荐开发主机配置

  • Ubuntu 20.04 LTS或更新版本(物理机或虚拟机)
  • 至少16GB内存(32GB更佳)
  • 100GB以上可用磁盘空间
  • 稳定的网络连接

必要工具安装清单

sudo apt update sudo apt install -y git make gcc g++ bison flex libssl-dev \ libncurses-dev device-tree-compiler lzop u-boot-tools \ gcc-aarch64-linux-gnu g++-aarch64-linux-gnu

RK3568专用工具链配置

  1. 从官方获取工具链(如gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz
  2. 解压并设置环境变量:
tar xvf gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz export PATH=$PATH:/path/to/toolchain/bin export CROSS_COMPILE=aarch64-none-linux-gnu-

注意:不同版本的SDK可能需要特定版本的工具链,务必参考官方文档确认兼容性。

2. SDK获取与初始化

RK3568的Linux SDK包含U-Boot、Kernel和Buildroot三大核心组件,其获取和初始化有特定流程。

SDK仓库克隆

git clone --recursive https://github.com/rockchip-linux/rk3568_linux_sdk.git cd rk3568_linux_sdk

SDK目录结构关键说明

目录内容描述
u-boot/U-Boot引导加载程序源码
kernel/Linux内核源码(含Rockchip补丁)
buildroot/根文件系统构建工具
device/板级配置文件
docs/开发文档和技术参考

初始化环境变量

source build/envsetup.sh lunch rk3568_defconfig

常见问题解决方案:

  • 问题build/envsetup.sh: No such file or directory解决:确认当前在SDK根目录执行
  • 问题lunch命令无响应解决:检查.repo目录完整性,尝试repo sync

3. 全系统编译流程详解

完整的系统构建包含多个组件的协同编译,每个阶段都有其特定的配置要点。

3.1 U-Boot编译与配置

标准编译流程

./build.sh uboot

关键配置选项

  • DDR初始化CONFIG_ROCKCHIP_RK3568必须启用
  • 存储设备支持:根据实际硬件选择CONFIG_ROCKCHIP_SDHCICONFIG_ROCKCHIP_DWMMC
  • 调试接口:确保CONFIG_DEBUG_UART正确配置串口

生成的关键镜像

  • u-boot/uboot.img:主引导镜像
  • u-boot/rk356x_spl_loader_v1.*.bin:二级加载器

3.2 Linux内核定制化编译

内核配置建议

cd kernel make ARCH=arm64 rockchip_linux_defconfig make ARCH=arm64 menuconfig

必须启用的驱动模块

  • CPU相关:CONFIG_ARM64_CPU_PARK
  • GPU驱动:CONFIG_DRM_PANFROST
  • 视频编解码:CONFIG_VIDEO_ROCKCHIP_VDEC

生成FIT格式镜像

../device/rockchip/common/mk-fitimage.sh kernel/boot.img device/rockchip/rk356x/boot.its

3.3 Buildroot根文件系统构建

基础配置命令

./build.sh buildroot

自定义软件包添加

  1. 编辑buildroot/package/Config.in添加新条目
  2. 创建对应的package/<name>/Config.in<name>.mk
  3. 重新运行make menuconfig选择新增包

常见依赖问题解决

# 当出现libmpfr.so.4缺失时 sudo ln -s /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-linux-gnu/libmpfr.so.4

4. 镜像烧录实战指南

4.1 Windows平台烧录(RKDevTool)

详细操作步骤

  1. 开发板进入Maskrom模式:

    • 按住UPDATE按键
    • 连接USB OTG接口
    • 上电或复位
  2. RKDevTool配置要点:

    • Loader地址:必须保持0x0
    • Parameter配置:根据实际存储设备调整分区表
    • 烧录模式选择:开发阶段建议使用Loader模式

分区表parameter.txt示例

FIRMWARE_VER: 1.0 MACHINE_MODEL: RK3568 MACHINE_ID: 007 MANUFACTURER: RK3568 MAGIC: 0x5041524B ATAG: 0x00200800 MACHINE: 3568 CHECK_MASK: 0x80 TYPE: GPT CMDLINE: mtdparts=rk29xxnand:0x00002000@0x00004000(uboot),0x00002000@0x00006000(misc),0x00010000@0x00008000(boot),0x00010000@0x00018000(recovery),0x00010000@0x00028000(backup),0x00040000@0x00038000(rootfs),0x00002000@0x00078000(oem),-@0x0007A000(userdata)

4.2 Linux平台烧录(Linux_Upgrade_Tool)

命令行烧录流程

sudo ./rkflash.sh all

各镜像文件作用说明

镜像文件对应分区功能描述
MiniLoaderAll.binLoader初级引导加载程序
uboot.imguboot完整U-Boot镜像
boot.imgboot内核与设备树打包
rootfs.imgrootfs根文件系统镜像
userdata.imguserdata用户数据分区

5. 驱动开发环境验证

5.1 基础驱动测试(LED控制)

设备树节点添加示例

rk3568_led { compatible = "atkrk3568-led"; status = "okay"; reg = <0x0 0xFDC20010 0x0 0x08 /* PMU_GRF_GPIO0C_IOMUX_L */ 0x0 0xFDC20090 0x0 0x08 /* PMU_GRF_GPIO0C_DS_0 */ 0x0 0xFDD60004 0x0 0x08 /* GPIO0_SWPORT_DR_H */ 0x0 0xFDD6000C 0x0 0x08>; /* GPIO0_SWPORT_DDR_H */ };

驱动加载与测试

# 编译驱动 make ARCH=arm64 -C /path/to/kernel M=$PWD modules # 加载测试 insmod newchrled.ko ./ledApp /dev/newchrled 1 # 点亮LED ./ledApp /dev/newchrled 0 # 关闭LED

5.2 进阶调试技巧

内核日志查看

dmesg -wH

U-Boot环境变量操作

# 进入U-Boot命令行后 printenv # 查看当前环境变量 setenv bootdelay 5 # 设置启动延时 saveenv # 保存配置

网络调试配置

# 开发板网络设置 ifconfig eth0 192.168.1.100 netmask 255.255.255.0 route add default gw 192.168.1.1 # 主机端NFS挂载 mount -t nfs 192.168.1.1:/path/to/nfs /mnt

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询