- 一次构建
- 自己实验
一次构建
参考流程:https://gitee.com/guningbo__buaa/rockchip/tree/master#rockchip
构建镜像需执行命令:
sudo bash build.sh -n NAME -k KERNEL_URL -b KERNEL_BRANCH -c BOARD_CONFIG -r REPO_INFO -d DTB_NAME -s SPEC
各个参数意义:
1.-n, --name IMAGE_NAME
构建的镜像名称,例如:openEuler-20.03-LTS-Firefly-RK3399-aarch64-alpha1 或 openEuler-21.09-Firefly-RK3399-aarch64-alpha1。
2.-k, --kernel KERNEL_URL
内核源码仓库的项目地址,默认为 https://gitee.com/openeuler/rockchip-kernel.git。可根据需要设置为 git@gitee.com:openeuler/rockchip-kernel.git 或 git@gitee.com:openeuler/kernel.git。
3.-b, --branch KERNEL_BRANCH
内核源码的对应分支,默认为 openEuler-20.03-LTS。下图是可选的:
4.-c, --config BOARD_CONFIG
开发板对应的 defconfig 的文件名称,对应 u-boot/configs 下 BOARD_CONFIG 文件,默认为 firefly-rk3399_defconfig;如需在 RK3588 开发板上使用预编译的 u-boot,可以将此项设置为 none。
5.-r, --repo REPO_INFO
开发源 repo 文件的 URL 或者路径,也可以是开发源中资源库的 baseurl 列表。
6.-d, --device-tree DTB_NAME
内核设备树中的设备名称,和开发板名称有一点区别,对应 kernel/arch/arm64/boot/dts/rockchip 下的 DTB_NAME.dts 文件,默认为 rk3399-firefly。
下面是一些 rk3588 的设备名称:
7.-s, --spec SPEC
构建的镜像版本:
- headless,无图形界面版的镜像。
- xfce,带 Xfce 桌面以及中文字体、输入法等全部配套软件。
- ukui,带 UKUI 桌面及必要的配套软件(不包括中文字体以及输入法)。
- dde,带 DDE 桌面及必要的配套软件(不包括中文字体以及输入法)。
- rpmlist 文件路径,其中包含镜像中要安装的软件列表,内容参考 rpmlist。
默认使用 headless 选项。
8.-h, --help
显示帮助信息。
自己实验
自己试验阶段:
进入服务器 root@192.168.1.46 ,进入 /home/fan/rockchip/scripts 目录下,执行下面的指令:
[root@localhost scripts]# sudo bash build.sh -n openEuler-22.03-LTS-Station-M3-aarch64-alpha1 -k https://gitee.com/openeuler/rockchip-kernel.git -b openEuler-22.03-LTS-RK3588 -c none -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-22.03-LTS-SP3/generic.repo -d rk3588s-roc-pc -s headless
在当前路径下新生成了 build 目录:
[root@localhost scripts]# ll
总用量 64
drwxr-xr-x 6 root root 4096 9月 9 14:09 bin
drwxr-xr-x 6 root root 4096 9月 9 15:03 build //时间晚于其他,是新生成的
-rwxr-xr-x 1 root root 7811 9月 9 14:09 build_boot.sh
-rwxr-xr-x 1 root root 13682 9月 9 14:09 build_rootfs.sh
-rwxr-xr-x 1 root root 4919 9月 9 14:09 build.sh
-rwxr-xr-x 1 root root 4397 9月 9 14:09 build_u-boot.sh
drwxr-xr-x 2 root root 4096 9月 9 14:09 configs
-rwxr-xr-x 1 root root 7479 9月 9 14:09 gen_image.sh
-rw-r--r-- 1 root root 2122 9月 9 14:09 gen_image-x86_64.sh
build 目录下面内容如下:
[root@localhost build]# ls
2025-09-09 boot.img kernel log rootfs.img u-boot
其中 2025-09-09 中有压缩后的镜像文件:
[root@localhost build]# ls 2025-09-09/
openEuler-22.03-LTS-Station-M3-aarch64-alpha1.img.xz //想要烧录到板子上需要解压缩
openEuler-22.03-LTS-Station-M3-aarch64-alpha1.img.xz.sha256sum
其中 kernel 目录就是内核源码目录,这里为了与板子设备树对应,现在有从其他机器上下载来的对应板子的设备树压缩包,将其解压并到 /home/fan/rockchip/scripts/build/kernel/arch/arm64/boot/dts/rockchip 目录下,之前的目录树文件目录先删除。
[root@localhost dts]# rm -rf rockchip/
[root@localhost dts]# cd /home/fan/
[root@localhost fan]# ls
rockchip rockchip.tar.gz
[root@localhost fan]# tar -xzf rockchip.tar.gz -C /home/fan/rockchip/scripts/build/kernel/arch/arm64/boot/dts/