野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 325|回复: 1

[经验\资料] 【笔记】Ubuntu22.04实现高效的开发与测试流程

[复制链接]
发表于 2025-3-24 11:28:26 | 显示全部楼层 |阅读模式

描述了如何在 x86 Ubuntu 22.04 系统上构建 U-Boot 和 Kernel,然后将结果移植到 RK3588 Ubuntu 22.04 系统上完成 RootFS 构建,实现高效的开发与测试流程。
环境要求

构建环境: x86 Ubuntu 22.04
目标系统: RK3588 Ubuntu 22.04
源码目录: ~/linux/ubuntu-rockchip
第一部分:在 x86 Ubuntu 22.04 上构建 U-Boot 和 Kernel
目录结构

源码目录结构如下:

dev@dev:~/linux/ubuntu-rockchip$ ls -l
total 96
drwxrwxr-x 11 dev  dev   4096 Mar 21 18:55 ./
drwxrwxr-x  4 dev  dev   4096 Mar 21 11:31 ../
drwxr-xr-x  6 root root  4096 Mar 22 12:16 build/
-rwxrwxr-x  1 dev  dev   4424 Mar 21 11:30 build.sh*
drwxrwxr-x  4 dev  dev   4096 Mar 21 11:30 config/
drwxrwxr-x  2 dev  dev   4096 Mar 21 11:30 docker/
drwxr-xr-x  2 root root  4096 Mar 22 12:16 images/
drwxrwxr-x 26 dev  dev   4096 Mar 21 11:30 kernel-6.1/
-rw-rw-r--  1 dev  dev  35123 Mar 21 11:30 LICENSE
drwxrwxr-x  5 dev  dev   4096 Mar 21 11:30 overlay/
drwxrwxr-x  4 dev  dev   4096 Mar 21 11:30 packages/
-rw-rw-r--  1 dev  dev   6258 Mar 21 11:30 README.md
drwxrwxr-x  2 dev  dev   4096 Mar 21 11:30 scripts/
drwxrwxr-x 24 dev  dev   4096 Mar 21 11:30 u-boot/

执行构建

在 x86 系统上运行以下命令,仅构建 U-Boot 和 Kernel:
sudo ./build.sh --board=lubancat-4 -k (kernel)
sudo ./build.sh --board=lubancat-4 -u (u-boot)
该命令会生成 .deb 文件并存储在 build/ 目录下。

检查构建结果

构建完成后,build/ 目录内容如下:
dev@dev:~/linux/ubuntu-rockchip/build$ ls -l
total 2729056
drwxr-xr-x  6 root root       4096 Mar 22 12:16 ./
drwxrwxr-x 11 dev  dev        4096 Mar 21 18:55 ../
-rw-r--r--  1 root root    8923426 Mar 21 21:36 linux-headers-6.1.84_6.1.84-1_arm64.deb
-rw-r--r--  1 root root   39481510 Mar 21 21:37 linux-image-6.1.84_6.1.84-1_arm64.deb
drwxr-xr-x 27 root root       4096 Mar 21 21:34 linux-rockchip/
drwxr-xr-x  2 root root       4096 Mar 22 11:47 logs/
-rw-r--r--  1 root root    1267792 Mar 22 11:48 u-boot-lubancat-4_2017.09+20230711.gitddc91cd0-2_arm64.deb
-rw-r--r--  1 root root    1177574 Mar 22 11:48 u-boot-lubancat-5_2017.09+20230711.gitddc91cd0-2_arm64.deb
-rw-r--r--  1 root root    1176912 Mar 22 11:48 u-boot-lubancat-5io_2017.09+20230711.gitddc91cd0-2_arm64.deb
-rw-r--r--  1 root root    1177588 Mar 22 11:48 u-boot-lubancat-5-v2_2017.09+20230711.gitddc91cd0-2_arm64.deb
drwxr-xr-x 25 root root       4096 Mar 22 11:47 u-boot-lubancat-rk3588/

主要输出文件:
linux-headers-.deb 和 linux-image-.deb(Kernel)
u-boot-lubancat-*.deb(U-Boot)

清理与打包

执行以下命令清理临时文件夹并打包:

清理临时文件夹

sudo rm -rf build/linux-rockchip build/u-boot-lubancat-rk3588
返回上一级并打包

cd ~/linux
tar -zcvf ubuntu-rockchip.tar.gz ubuntu-rockchip

将生成的 ubuntu-rockchip.tar.gz 传输到 RK3588 系统(例如通过 SCP 或 USB)。

第二部分:在 RK3588 Ubuntu 22.04 上完成 RootFS 构建

安装依赖

在 RK3588 系统上安装必要的依赖工具:
sudo apt-get install -y build-essential gcc-aarch64-linux-gnu bison
qemu-user-static qemu-system-arm qemu-efi u-boot-tools binfmt-support
debootstrap flex libssl-dev bc rsync kmod cpio xz-utils fakeroot parted
udev dosfstools uuid-runtime git-lfs device-tree-compiler python3 fdisk bc
python-is-python3

解压并构建

执行以下步骤:

解压文件

tar -zxvf ubuntu-rockchip.tar.gz

cd ubuntu-rockchip

执行构建,检测已有 .deb 文件并跳过 U-Boot 和 Kernel 构建

sudo ./build.sh --board=lubancat-4

脚本会检查 build/ 目录下的 .deb 文件,若存在则直接构建 RootFS。

测试与替换

将生成的镜像刷写到设备上测试。

测试通过后,将 x86 系统生成的 build/ 目录下的 .deb 文件替换到 RK3588 系统 ubuntu-rockchip/build/ 目录下。

后续开发流程

修改内核:

在 x86 系统上修改 kernel-6.1/ 目录下的源码。

重复“第一部分”中的步骤,生成新的 .deb 文件。

测试与部署:

将新的 ubuntu-rockchip.tar.gz 传输到 RK3588 系统。

重复“第二部分”中的步骤,完成 RootFS 构建并测试。

测试通过后,更新 RK3588 系统上的 build/ 目录。

注意事项

确保 x86 和 RK3588 系统的 build.sh 版本一致。

清理时仅删除 linux-rockchip/ 和 u-boot-lubancat-rk3588/,保留 .deb 文件。

调试时可查看 build/logs/ 下的日志文件。



回复

使用道具 举报

发表于 6 天前 | 显示全部楼层
大佬能分享一下源码吗
回复 支持 反对

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-4-1 23:53 , Processed in 0.204229 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表