!5 修复:使用命令行传递构建框架内核配置;统一传入参数
From: @chainsx Reviewed-by: @jianminw Signed-off-by: @jianminw
This commit is contained in:
commit
6cfff5e556
@ -62,7 +62,7 @@
|
||||
|
||||
构建镜像需执行命令:
|
||||
|
||||
`sudo bash build.sh -n NAME -k KERNEL_URL -b KERNEL_BRANCH -c BOARD_CONFIG -r REPO_INFO -d DTB_NAME -s SPEC`
|
||||
`sudo bash build.sh -n NAME -k KERNEL_URL -b KERNEL_BRANCH -u UBOOT_DEFCONFIG -c KERNEL_DEFCONFIG -r REPO_INFO -d DTB_NAME -p PLATFORM -s SPEC --cores N`
|
||||
|
||||
**说明: 基于 build.sh 提供的默认参数,执行 sudo bash build.sh 可构建 Firefly-RK3399 的 openEuler-20.03-LTS 镜像。**
|
||||
|
||||
@ -97,11 +97,15 @@
|
||||
- -k https://gitee.com/openeuler/kernel.git
|
||||
- openEuler-21.09
|
||||
|
||||
4. -c, --config BOARD_CONFIG
|
||||
4. -u, --ubootconfig UBOOT_DEFCONFIG
|
||||
|
||||
开发板对应的 defconfig 的文件名称,对应 [u-boot/configs](https://github.com/u-boot/u-boot/tree/master/configs) 下 `BOARD_CONFIG` 文件,默认为 `firefly-rk3399_defconfig`;如需在 RK3588 开发板上使用预编译的 u-boot,可以将此项设置为 `none`。
|
||||
开发板对应的 defconfig 的文件名称,对应 [u-boot/configs](https://github.com/u-boot/u-boot/tree/master/configs) 下 `UBOOT_DEFCONFIG` 文件,默认为 `firefly-rk3399_defconfig`;如需在 RK3588 开发板上使用预编译的 u-boot,可以将此项设置为 `none`。
|
||||
|
||||
5. -r, --repo REPO_INFO
|
||||
5. -c, --config KERNEL_DEFCONFIG
|
||||
|
||||
内核编译使用的配置文件名称或路径,默认为 `openeuler-raspi_defconfig`。如果该参数为配置文件名称,请确保该文件在内核源码的目录 arch/arm64/configs 下。
|
||||
|
||||
6. -r, --repo REPO_INFO
|
||||
|
||||
开发源 repo 文件的 URL 或者路径,也可以是开发源中资源库的 baseurl 列表。注意,如果该参数为资源库的 baseurl 列表,该参数需要使用双引号,各个 baseurl 之间以空格隔开。
|
||||
下面分别举例:
|
||||
@ -113,15 +117,15 @@
|
||||
|
||||
- 资源库的 baseurl 列表,如 `http://repo.openeuler.org/openEuler-20.03-LTS/OS/aarch64/ http://repo.openeuler.org/openEuler-20.03-LTS/EPOL/aarch64/`。
|
||||
|
||||
6. -d, --device-tree DTB_NAME
|
||||
7. -d, --device-tree DTB_NAME
|
||||
|
||||
内核设备树中的设备名称,和开发板名称有一点区别,对应 [kernel/arch/arm64/boot/dts/rockchip](https://gitee.com/openeuler/kernel/tree/master/arch/arm64/boot/dts/rockchip) 下的 `DTB_NAME.dts` 文件,默认为 `rk3399-firefly`。
|
||||
|
||||
7. -p, --platform PLATFORM
|
||||
8. -p, --platform PLATFORM
|
||||
|
||||
开发板所使用的平台,目前支持的平台有:rockchip、phytium,默认为 `rockchip`。
|
||||
|
||||
8. -s, --spec SPEC
|
||||
9. -s, --spec SPEC
|
||||
|
||||
构建的镜像版本:
|
||||
- `headless`,无图形界面版的镜像。
|
||||
@ -132,7 +136,11 @@
|
||||
|
||||
默认使用 `headless` 选项。
|
||||
|
||||
9. -h, --help
|
||||
10. --cores N
|
||||
|
||||
并行编译的数量,根据运行脚本的宿主机 CPU 实际数目设定,默认为可用的 CPU 总数。
|
||||
|
||||
11. -h, --help
|
||||
|
||||
显示帮助信息。
|
||||
|
||||
@ -146,11 +154,11 @@
|
||||
|
||||
- openEuler-20.03-LTS,构建命令如下:
|
||||
|
||||
`sudo bash build.sh -n openEuler-20.03-LTS-Firefly-RK3399-aarch64-alpha1 -k https://gitee.com/openeuler/rockchip-kernel.git -b openEuler-20.03-LTS -c firefly-rk3399_defconfig -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-20.03-LTS/generic.repo -d rk3399-firefly -p rockchip -s headless`
|
||||
`sudo bash build.sh -n openEuler-20.03-LTS-Firefly-RK3399-aarch64-alpha1 -k https://gitee.com/openeuler/rockchip-kernel.git -b openEuler-20.03-LTS -u firefly-rk3399_defconfig -c openeuler_rockchip_defconfig -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-20.03-LTS/generic.repo -d rk3399-firefly -p rockchip -s headless`
|
||||
|
||||
- openEuler-22.03-LTS-SP3,构建命令如下:
|
||||
|
||||
`sudo bash build.sh -n openEuler-22.03-LTS-SP3-Firefly-RK3399-aarch64-alpha1 -k https://gitee.com/openeuler/rockchip-kernel.git -b openEuler-22.03-LTS-SP3 -c firefly-rk3399_defconfig -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-22.03-LTS-SP3/generic.repo -d rk3399-firefly -p rockchip -s headless`
|
||||
`sudo bash build.sh -n openEuler-22.03-LTS-SP3-Firefly-RK3399-aarch64-alpha1 -k https://gitee.com/openeuler/rockchip-kernel.git -b openEuler-22.03-LTS-SP3 -u firefly-rk3399_defconfig -c openeuler_rockchip_defconfig -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-22.03-LTS-SP3/generic.repo -d rk3399-firefly -p rockchip -s headless`
|
||||
|
||||
2. RockPi-4A
|
||||
|
||||
@ -158,11 +166,11 @@
|
||||
|
||||
- openEuler-20.03-LTS,构建命令如下:
|
||||
|
||||
`sudo bash build.sh -n openEuler-20.03-LTS-RockPi-4A-aarch64-alpha1 -k https://gitee.com/openeuler/rockchip-kernel.git -b openEuler-20.03-LTS -c rock-pi-4-rk3399_defconfig -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-20.03-LTS/generic.repo -d rk3399-rock-pi-4a -p rockchip -s headless`
|
||||
`sudo bash build.sh -n openEuler-20.03-LTS-RockPi-4A-aarch64-alpha1 -k https://gitee.com/openeuler/rockchip-kernel.git -b openEuler-20.03-LTS -u rock-pi-4-rk3399_defconfig -c openeuler_rockchip_defconfig -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-20.03-LTS/generic.repo -d rk3399-rock-pi-4a -p rockchip -s headless`
|
||||
|
||||
- openEuler-22.03-LTS,构建命令如下:
|
||||
|
||||
`sudo bash build.sh -n openEuler-22.03-LTS-RockPi-4A-aarch64-alpha1 -k https://gitee.com/openeuler/kernel.git -b openEuler-22.03-LTS -c rock-pi-4-rk3399_defconfig -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-22.03-LTS/generic.repo -d rk3399-rock-pi-4a -p rockchip -s headless`
|
||||
`sudo bash build.sh -n openEuler-22.03-LTS-RockPi-4A-aarch64-alpha1 -k https://gitee.com/openeuler/kernel.git -b openEuler-22.03-LTS -u rock-pi-4-rk3399_defconfig -c openeuler_rockchip_defconfig -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-22.03-LTS/generic.repo -d rk3399-rock-pi-4a -p rockchip -s headless`
|
||||
|
||||
适用的 RK3588 开发板:
|
||||
|
||||
@ -174,23 +182,23 @@
|
||||
|
||||
- openEuler-22.03-LTS,构建命令如下:
|
||||
|
||||
`sudo bash build.sh -n openEuler-22.03-RK3588-Firefly-ITX-3588J-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/generic.repo -d rk3588-firefly-itx-3588j -p rockchip -s headless`
|
||||
`sudo bash build.sh -n openEuler-22.03-RK3588-Firefly-ITX-3588J-aarch64-alpha1 -k https://gitee.com/openeuler/rockchip-kernel.git -b openEuler-22.03-LTS-RK3588 -u none -c openeuler_rk3588_defconfig -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-22.03-LTS/generic.repo -d rk3588-firefly-itx-3588j -p rockchip -s headless`
|
||||
|
||||
2. Firefly ROC-RK3588S-PC
|
||||
|
||||
已测试的版本如下:
|
||||
|
||||
- openEuler-22.03-LTS,构建命令如下:
|
||||
- openEuler-22.03-LTS-SP3,构建命令如下:
|
||||
|
||||
`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/generic.repo -d rk3588s-roc-pc -p rockchip -s headless`
|
||||
`sudo bash build.sh -n openEuler-22.03-LTS-SP3-Station-M3-aarch64-alpha1 -k https://gitee.com/openeuler/rockchip-kernel.git -b openEuler-22.03-LTS-SP3 -u none -c openeuler_rockchip_defconfig -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-22.03-LTS-SP3/generic.repo -d rk3588s-roc-pc -p rockchip -s headless`
|
||||
|
||||
3. Radxa Rock-5B
|
||||
|
||||
已测试的版本如下:
|
||||
|
||||
- openEuler-22.03-LTS,构建命令如下:
|
||||
- openEuler-22.03-LTS-SP3,构建命令如下:
|
||||
|
||||
`sudo bash build.sh -n openEuler-22.03-LTS-Rock5B-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/generic.repo -d rk3588-rock-5b -p rockchip -s headless`
|
||||
`sudo bash build.sh -n openEuler-22.03-LTS-SP3-Rock5B-aarch64-alpha1 -k https://gitee.com/openeuler/rockchip-kernel.git -b openEuler-22.03-LTS-SP3 -u none -c openeuler_rockchip_defconfig -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-22.03-LTS-SP3/generic.repo -d rk3588-rock-5b -p rockchip -s headless`
|
||||
|
||||
适用的 RK356X 开发板:
|
||||
|
||||
@ -202,15 +210,15 @@
|
||||
|
||||
- openEuler-22.03-LTS-SP2,构建命令如下:
|
||||
|
||||
`sudo bash build.sh -n openEuler-22.03-LTS-SP2-Station-M2-aarch64-alpha1 -k https://gitee.com/openeuler/rockchip-kernel.git -b openEuler-22.03-LTS-SP2 -c none -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-22.03-LTS-SP2/generic.repo -d rk3566-roc-pc -p rockchip -s headless`
|
||||
`sudo bash build.sh -n openEuler-22.03-LTS-SP2-Station-M2-aarch64-alpha1 -k https://gitee.com/openeuler/rockchip-kernel.git -b openEuler-22.03-LTS-SP2 -u none -c openeuler_rockchip_defconfig -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-22.03-LTS-SP2/generic.repo -d rk3566-roc-pc -p rockchip -s headless`
|
||||
|
||||
- openEuler-22.03-LTS-SP3,构建命令如下:
|
||||
|
||||
`sudo bash build.sh -n openEuler-22.03-LTS-SP3-Station-M2-aarch64-alpha1 -k https://gitee.com/openeuler/rockchip-kernel.git -b openEuler-22.03-LTS-SP3 -c none -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-22.03-LTS-SP3/generic.repo -d rk3566-roc-pc -p rockchip -s headless`
|
||||
`sudo bash build.sh -n openEuler-22.03-LTS-SP3-Station-M2-aarch64-alpha1 -k https://gitee.com/openeuler/rockchip-kernel.git -b openEuler-22.03-LTS-SP3 -u none -c openeuler_rockchip_defconfig -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-22.03-LTS-SP3/generic.repo -d rk3566-roc-pc -p rockchip -s headless`
|
||||
|
||||
- openEuler-24.03-LTS,构建命令如下:
|
||||
|
||||
`sudo bash build.sh -n openEuler-24.03-LTS-Station-M2-aarch64-alpha1 -k https://gitee.com/openeuler/rockchip-kernel.git -b openEuler-24.03-LTS -c none -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-24.03-LTS/generic.repo -d rk3566-roc-pc -p rockchip -s headless`
|
||||
`sudo bash build.sh -n openEuler-24.03-LTS-Station-M2-aarch64-alpha1 -k https://gitee.com/openeuler/rockchip-kernel.git -b openEuler-24.03-LTS -u none -c openeuler_rockchip_defconfig -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-24.03-LTS/generic.repo -d rk3566-roc-pc -p rockchip -s headless`
|
||||
|
||||
2. Firefly ROC-RK3568-PC-SE
|
||||
|
||||
@ -218,11 +226,11 @@
|
||||
|
||||
- openEuler-22.03-LTS-SP2,构建命令如下:
|
||||
|
||||
`sudo bash build.sh -n openEuler-22.03-LTS-SP2-ROC-RK3568-PC-SE-aarch64-alpha1 -k https://gitee.com/openeuler/rockchip-kernel.git -b openEuler-22.03-LTS-SP2 -c none -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-22.03-LTS-SP2/generic.repo -d rk3568-roc-pc-se -p rockchip -s headless`
|
||||
`sudo bash build.sh -n openEuler-22.03-LTS-SP2-ROC-RK3568-PC-SE-aarch64-alpha1 -k https://gitee.com/openeuler/rockchip-kernel.git -b openEuler-22.03-LTS-SP2 -u none -c openeuler_rockchip_defconfig -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-22.03-LTS-SP2/generic.repo -d rk3568-roc-pc-se -p rockchip -s headless`
|
||||
|
||||
- openEuler-22.03-LTS-SP3,构建命令如下:
|
||||
|
||||
`sudo bash build.sh -n openEuler-22.03-LTS-SP3-ROC-RK3568-PC-SE-aarch64-alpha1 -k https://gitee.com/openeuler/rockchip-kernel.git -b openEuler-22.03-LTS-SP3 -c none -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-22.03-LTS-SP3/generic.repo -d rk3568-roc-pc-se -p rockchip -s headless`
|
||||
`sudo bash build.sh -n openEuler-22.03-LTS-SP3-ROC-RK3568-PC-SE-aarch64-alpha1 -k https://gitee.com/openeuler/rockchip-kernel.git -b openEuler-22.03-LTS-SP3 -u none -c openeuler_rockchip_defconfig -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-22.03-LTS-SP3/generic.repo -d rk3568-roc-pc-se -p rockchip -s headless`
|
||||
|
||||
适用的 Phytium 开发板:
|
||||
|
||||
@ -234,11 +242,11 @@
|
||||
|
||||
- openEuler-22.03-LTS-SP3,构建命令如下:
|
||||
|
||||
`sudo bash build.sh -n openEuler-22.03-LTS-PhytiumPi-4GB-aarch64-alpha1 -k https://gitee.com/openeuler/phytium-kernel.git -b openEuler-22.03-LTS-Phytium -c none -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-22.03-LTS/generic.repo -d phytiumpi_firefly -p phytium -s headless`
|
||||
`sudo bash build.sh -n openEuler-22.03-LTS-PhytiumPi-4GB-aarch64-alpha1 -k https://gitee.com/openeuler/phytium-kernel.git -b openEuler-22.03-LTS-Phytium -u none -c phytium_defconfig -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-22.03-LTS/generic.repo -d phytiumpi_firefly -p phytium -s headless`
|
||||
|
||||
- openEuler-24.03-LTS,构建命令如下:
|
||||
|
||||
`sudo bash build.sh -n openEuler-24.03-LTS-PhytiumPi-4GB-aarch64-alpha1 -k https://gitee.com/openeuler/phytium-kernel.git -b openEuler-24.03-LTS-Phytium -c none -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-24.03-LTS/generic.repo -d phytiumpi_firefly -p phytium -s headless`
|
||||
`sudo bash build.sh -n openEuler-24.03-LTS-PhytiumPi-4GB-aarch64-alpha1 -k https://gitee.com/openeuler/phytium-kernel.git -b openEuler-24.03-LTS-Phytium -u none -c phytium_defconfig -r https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-24.03-LTS/generic.repo -d phytiumpi_firefly -p phytium -s headless`
|
||||
|
||||
|
||||
### 顺序构建
|
||||
|
||||
@ -6,15 +6,17 @@ Build Rockchip bootable images.
|
||||
The target bootable compressed images will be generated in the build/YYYY-MM-DD folder of the directory where the build script is located.
|
||||
|
||||
Options:
|
||||
-n, --name IMAGE_NAME The Rockchip image name to be built.
|
||||
-k, --kernel KERNEL_URL The URL of kernel source's repository, which defaults to https://gitee.com/openeuler/rockchip-kernel.git.
|
||||
-b, --branch KERNEL_BRANCH The branch name of kernel source's repository, which defaults to openEuler-20.03-LTS.
|
||||
-c, --config BOARD_CONFIG Required! The name of target board which should be a space separated list, which defaults to firefly-rk3399_defconfig.
|
||||
-p, --platform PLATFORM Required! The platform of target board, which defaults to rockchip.
|
||||
-r, --repo REPO_INFO The URL/path of target repo file or list of repo's baseurls which should be a space separated list.
|
||||
-d, --device-tree DTB_NAME Required! The device tree name of target board, which defaults to rk3399-firefly.
|
||||
-s, --spec SPEC The image's specification: headless, xfce, ukui, dde or the file path of rpmlist. The default is headless.
|
||||
-h, --help Show command help.
|
||||
-n, --name IMAGE_NAME The Rockchip image name to be built.
|
||||
-k, --kernel KERNEL_URL The URL of kernel source's repository, which defaults to https://gitee.com/openeuler/rockchip-kernel.git.
|
||||
-b, --branch KERNEL_BRANCH The branch name of kernel source's repository, which defaults to openEuler-20.03-LTS.
|
||||
-c, --config KERNEL_DEFCONFIG The name/path of defconfig file when compiling kernel, which defaults to openeuler_rockchip_defconfig.
|
||||
-u, --ubootconfig UBOOT_DEFCONFIG Required! The name of defconfig file when compiling u-boot, which defaults to firefly-rk3399_defconfig.
|
||||
-p, --platform PLATFORM Required! The platform of target board, which defaults to rockchip.
|
||||
-r, --repo REPO_INFO The URL/path of target repo file or list of repo's baseurls which should be a space separated list.
|
||||
-d, --device-tree DTB_NAME Required! The device tree name of target board, which defaults to rk3399-firefly.
|
||||
-s, --spec SPEC The image's specification: headless, xfce, ukui, dde or the file path of rpmlist. The default is headless.
|
||||
--cores N The number of cpu cores to be used during making.
|
||||
-h, --help Show command help.
|
||||
"
|
||||
|
||||
help()
|
||||
@ -26,7 +28,7 @@ help()
|
||||
used_param() {
|
||||
echo ""
|
||||
echo "Default args"
|
||||
echo "CONFIG_NAME : $config"
|
||||
echo "KERNEL_DEFCONFIG : $default_defconfig"
|
||||
echo ""
|
||||
echo "DTB_NAME : $dtb_name"
|
||||
echo ""
|
||||
@ -37,7 +39,8 @@ used_param() {
|
||||
}
|
||||
|
||||
default_param() {
|
||||
config=firefly-rk3399_defconfig
|
||||
default_defconfig=openeuler_rockchip_defconfig
|
||||
ubootconfig=firefly-rk3399_defconfig
|
||||
dtb_name=rk3399-firefly
|
||||
platform=rockchip
|
||||
branch=openEuler-20.03-LTS
|
||||
@ -46,6 +49,7 @@ default_param() {
|
||||
workdir=$(pwd)/build
|
||||
board_type=rk3399
|
||||
name=${branch}-${dtb_name}-aarch64-alpha1
|
||||
make_cores=$(nproc)
|
||||
}
|
||||
|
||||
save_param() {
|
||||
@ -55,7 +59,8 @@ save_param() {
|
||||
if [ -f $workdir/.param ]; then
|
||||
mv $workdir/.param $workdir/.param_last
|
||||
fi
|
||||
echo "config=$config
|
||||
echo "default_defconfig=$default_defconfig
|
||||
ubootconfig=$ubootconfig
|
||||
dtb_name=$dtb_name
|
||||
platform=$platform
|
||||
branch=$branch
|
||||
@ -98,7 +103,11 @@ parseargs()
|
||||
shift
|
||||
shift
|
||||
elif [ "x$1" == "x-c" -o "x$1" == "x--config" ]; then
|
||||
config=`echo $2`
|
||||
default_defconfig=`echo $2`
|
||||
shift
|
||||
shift
|
||||
elif [ "x$1" == "x-u" -o "x$1" == "x--ubootconfig" ]; then
|
||||
ubootconfig=`echo $2`
|
||||
shift
|
||||
shift
|
||||
elif [ "x$1" == "x-r" -o "x$1" == "x--repo" ]; then
|
||||
@ -113,6 +122,10 @@ parseargs()
|
||||
spec_param=`echo $2`
|
||||
shift
|
||||
shift
|
||||
elif [ "x$1" == "x--cores" ]; then
|
||||
make_cores=`echo $2`
|
||||
shift
|
||||
shift
|
||||
else
|
||||
echo `date` - ERROR, UNKNOWN params "$@"
|
||||
return 2
|
||||
|
||||
@ -8,8 +8,10 @@ The target boot.img will be generated in the build folder of the directory where
|
||||
Options:
|
||||
-b, --branch KERNEL_BRANCH The branch name of kernel source's repository, which defaults to openEuler-20.03-LTS.
|
||||
-k, --kernel KERNEL_URL Required! The URL of kernel source's repository.
|
||||
-c, --config KERNEL_DEFCONFIG The name/path of defconfig file when compiling kernel, which defaults to openeuler_rockchip_defconfig.
|
||||
-d, --device-tree DTB_NAME Required! The device tree name of target board, which defaults to rk3399-firefly.
|
||||
-p, --platform PLATFORM Required! The platform of target board, which defaults to rockchip.
|
||||
--cores N The number of cpu cores to be used during making.
|
||||
-h, --help Show command help.
|
||||
"
|
||||
|
||||
@ -22,11 +24,13 @@ help()
|
||||
default_param() {
|
||||
workdir=$(pwd)/build
|
||||
branch=openEuler-20.03-LTS
|
||||
default_defconfig=openeuler_rockchip_defconfig
|
||||
dtb_name=rk3399-firefly
|
||||
platform=rockchip
|
||||
kernel_url="https://gitee.com/openeuler/rockchip-kernel.git"
|
||||
boot_dir=$workdir/boot
|
||||
log_dir=$workdir/log
|
||||
make_cores=$(nproc)
|
||||
}
|
||||
|
||||
local_param(){
|
||||
@ -34,6 +38,9 @@ local_param(){
|
||||
branch=$(cat $workdir/.param | grep branch)
|
||||
branch=${branch:7}
|
||||
|
||||
default_defconfig=$(cat $workdir/.param | grep default_defconfig)
|
||||
default_defconfig=${branch:18}
|
||||
|
||||
dtb_name=$(cat $workdir/.param | grep dtb_name)
|
||||
dtb_name=${dtb_name:9}
|
||||
|
||||
@ -61,6 +68,10 @@ parseargs()
|
||||
branch=`echo $2`
|
||||
shift
|
||||
shift
|
||||
elif [ "x$1" == "x-c" -o "x$1" == "x--config" ]; then
|
||||
default_defconfig=`echo $2`
|
||||
shift
|
||||
shift
|
||||
elif [ "x$1" == "x-d" -o "x$1" == "x--device-tree" ]; then
|
||||
dtb_name=`echo $2`
|
||||
shift
|
||||
@ -73,6 +84,10 @@ parseargs()
|
||||
platform=`echo $2`
|
||||
shift
|
||||
shift
|
||||
elif [ "x$1" == "x--cores" ]; then
|
||||
make_cores=`echo $2`
|
||||
shift
|
||||
shift
|
||||
else
|
||||
echo `date` - ERROR, UNKNOWN params "$@"
|
||||
return 2
|
||||
@ -111,6 +126,9 @@ clone_and_check_kernel_source() {
|
||||
last_branch=$(cat $workdir/.param_last | grep branch)
|
||||
last_branch=${last_branch:7}
|
||||
|
||||
last_default_defconfig=$(cat $workdir/.param_last | grep default_defconfig)
|
||||
last_default_defconfig=${last_default_defconfig:18}
|
||||
|
||||
last_dtb_name=$(cat $workdir/.param_last | grep dtb_name)
|
||||
last_dtb_name=${last_dtb_name:9}
|
||||
|
||||
@ -127,6 +145,7 @@ clone_and_check_kernel_source() {
|
||||
cd $workdir
|
||||
|
||||
if [[ ${last_branch} != ${branch} || \
|
||||
${last_default_defconfig} != ${default_defconfig} || \
|
||||
${last_dtb_name} != ${dtb_name} || \
|
||||
${last_kernel_url} != ${kernel_url} || \
|
||||
${lastest_kernel_version} != ${local_kernel_version} ]]; then
|
||||
@ -143,49 +162,23 @@ clone_and_check_kernel_source() {
|
||||
fi
|
||||
}
|
||||
|
||||
build_rockchip-6.6-kernel() {
|
||||
cp $workdir/../configs/rockchip64-6.6_defconfig kernel/arch/arm64/configs
|
||||
cd $workdir/kernel
|
||||
make ARCH=arm64 rockchip64-6.6_defconfig
|
||||
LOG "make kernel begin..."
|
||||
make ARCH=arm64 -j$(nproc)
|
||||
}
|
||||
|
||||
build_rockchip-5.10-kernel() {
|
||||
cp $workdir/../configs/rockchip64-5.10_defconfig kernel/arch/arm64/configs
|
||||
cd $workdir/kernel
|
||||
make ARCH=arm64 rockchip64-5.10_defconfig
|
||||
LOG "make kernel begin..."
|
||||
make ARCH=arm64 -j$(nproc)
|
||||
}
|
||||
|
||||
build_rockchip-4.19-kernel() {
|
||||
cp $workdir/../configs/rockchip64-4.19_defconfig kernel/arch/arm64/configs
|
||||
cd $workdir/kernel
|
||||
make ARCH=arm64 rockchip64_4.19_defconfig
|
||||
LOG "make kernel begin..."
|
||||
make ARCH=arm64 -j$(nproc)
|
||||
}
|
||||
|
||||
build_phytium-5.10-kernel() {
|
||||
cd $workdir/kernel
|
||||
make ARCH=arm64 phytium_defconfig
|
||||
LOG "make kernel begin..."
|
||||
make ARCH=arm64 -j$(nproc)
|
||||
}
|
||||
|
||||
build_phytium-6.6-kernel() {
|
||||
cd $workdir/kernel
|
||||
make ARCH=arm64 phytium_defconfig
|
||||
LOG "make kernel begin..."
|
||||
make ARCH=arm64 -j$(nproc)
|
||||
}
|
||||
|
||||
build_rk3588-kernel() {
|
||||
cd $workdir/kernel
|
||||
make ARCH=arm64 openeuler_rk3588_defconfig
|
||||
LOG "make kernel begin..."
|
||||
make ARCH=arm64 -j$(nproc)
|
||||
make_kernel(){
|
||||
LOG "make kernel(${default_defconfig}) begin..."
|
||||
kernel_dir_tmp=$1
|
||||
cd "${kernel_dir_tmp}"
|
||||
if [ "x${kernel_defconfig:0:1}" != "x/" ]; then
|
||||
if [ ! -f arch/arm64/configs/${kernel_defconfig} ]; then
|
||||
ERROR "config file ${kernel_defconfig} can not be found in kernel source".
|
||||
exit 2
|
||||
fi
|
||||
kernel_defconfig=arch/arm64/configs/${kernel_defconfig}
|
||||
fi
|
||||
make distclean
|
||||
cp ${kernel_defconfig} .config
|
||||
make ARCH=arm64 olddefconfig
|
||||
kernel_defconfig=${kernel_defconfig##*/}
|
||||
make ARCH=arm64 -j${make_cores}
|
||||
LOG "make kernel(${default_defconfig}) end."
|
||||
}
|
||||
|
||||
install_kernel() {
|
||||
@ -204,6 +197,7 @@ install_kernel() {
|
||||
make ARCH=arm64 modules_install INSTALL_MOD_PATH=$workdir/kernel/kernel-modules
|
||||
LOG "device tree name is ${dtb_name}.dtb"
|
||||
cp arch/arm64/boot/dts/${platform}/${dtb_name}.dtb ${boot_dir}
|
||||
cp arch/arm64/boot/Image ${boot_dir}
|
||||
LOG "prepare kernel done."
|
||||
}
|
||||
|
||||
@ -215,7 +209,6 @@ mk_boot() {
|
||||
dracut --no-kernel ${boot_dir}/initrd.img
|
||||
LOG "gen initrd done."
|
||||
|
||||
kernel_name=$(ls $boot_dir | grep vmlinuz)
|
||||
dtb_name=$(ls $boot_dir | grep dtb)
|
||||
LOG "gen extlinux config for $dtb_name"
|
||||
if [ "${platform}" == "rockchip" ];then
|
||||
@ -227,7 +220,7 @@ mk_boot() {
|
||||
exit 2
|
||||
fi
|
||||
echo "label openEuler
|
||||
kernel /${kernel_name}
|
||||
kernel /Image
|
||||
initrd /initrd.img
|
||||
fdt /${dtb_name}
|
||||
append ${bootargs}" \
|
||||
@ -263,6 +256,19 @@ set -e
|
||||
rockchip_bootargs="earlyprintk console=ttyS2,1500000 rw root=UUID=614e0000-0000-4b53-8000-1d28000054a9 rootfstype=ext4 init=/sbin/init rootwait"
|
||||
phytium_bootargs="console=ttyAMA1,115200 earlycon=pl011,0x2800d000 rw root=UUID=614e0000-0000-4b53-8000-1d28000054a9 rootfstype=ext4 rootwait cma=256m"
|
||||
|
||||
kernel_defconfig="openeuler_rockchip_defconfig"
|
||||
default_defconfig=""
|
||||
|
||||
if [ "x$default_defconfig" == "x" ] ; then
|
||||
default_defconfig=$kernel_defconfig
|
||||
elif [ -f $default_defconfig ]; then
|
||||
cp $default_defconfig ${workdir}/
|
||||
kernel_defconfig=${workdir}/${default_defconfig##*/}
|
||||
else
|
||||
echo `date` - ERROR, config file $default_defconfig can not be found.
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if [ ! -d $workdir ]; then
|
||||
mkdir $workdir
|
||||
fi
|
||||
@ -277,30 +283,7 @@ clone_and_check_kernel_source
|
||||
if [[ -f $workdir/kernel/arch/arm64/boot/dts/${platform}/${dtb_name}.dtb && -f $workdir/kernel/arch/arm64/boot/Image ]];then
|
||||
LOG "kernel is the latest"
|
||||
else
|
||||
if [ "${platform}" == "rockchip" ];then
|
||||
if [ "${branch:0:19}" == "openEuler-20.03-LTS" ];then # include: openEuler-20.03-LTS*
|
||||
build_rockchip-4.19-kernel
|
||||
elif [ "${branch}" == "openEuler-22.03-LTS-RK3588" ]; then
|
||||
build_rk3588-kernel
|
||||
elif [ "${branch:0:19}" == "openEuler-22.03-LTS" ]; then # include: openEuler-22.03-LTS*
|
||||
build_rockchip-5.10-kernel
|
||||
elif [ "${branch:0:19}" == "openEuler-24.03-LTS" ]; then # include: openEuler-24.03-LTS*
|
||||
build_rockchip-6.6-kernel
|
||||
else
|
||||
echo "Unsupported version."
|
||||
fi
|
||||
elif [ "${platform}" == "phytium" ];then
|
||||
if [ "${branch:0:19}" == "openEuler-22.03-LTS" ]; then # include: openEuler-22.03-LTS*
|
||||
build_phytium-5.10-kernel
|
||||
elif [ "${branch:0:19}" == "openEuler-24.03-LTS" ]; then # include: openEuler-24.03-LTS*
|
||||
build_phytium-6.6-kernel
|
||||
else
|
||||
echo "Unsupported version."
|
||||
fi
|
||||
else
|
||||
echo "Unsupported platform"
|
||||
exit 2
|
||||
fi
|
||||
make_kernel $workdir/kernel
|
||||
fi
|
||||
if [[ -f $workdir/boot.img && $(cat $workdir/.done | grep bootimg) == "bootimg" ]];then
|
||||
LOG "boot is the latest"
|
||||
|
||||
@ -6,8 +6,9 @@ Build Rockchip u-boot image.
|
||||
The target files idbloader.img and u-boot.itb will be generated in the build/u-boot folder of the directory where the build_u-boot.sh script is located.
|
||||
|
||||
Options:
|
||||
-c, --config BOARD_CONFIG Required! The name of target board which should be a space separated list, which defaults to firefly-rk3399_defconfig, set none to use prebuild u-boot image.
|
||||
-h, --help Show command help.
|
||||
-u, --ubootconfig UBOOT_DEFCONFIG Required! The name of defconfig file when compiling u-boot, which defaults to firefly-rk3399_defconfig, set none to use prebuild u-boot image.
|
||||
--cores N The number of cpu cores to be used during making.
|
||||
-h, --help Show command help.
|
||||
"
|
||||
|
||||
help()
|
||||
@ -17,18 +18,19 @@ help()
|
||||
}
|
||||
|
||||
default_param() {
|
||||
config="firefly-rk3399_defconfig"
|
||||
ubootconfig="firefly-rk3399_defconfig"
|
||||
workdir=$(pwd)/build
|
||||
u_boot_url="https://gitlab.arm.com/systemready/firmware-build/u-boot.git"
|
||||
rk3399_bl31_url="https://github.com/rockchip-linux/rkbin/raw/master/bin/rk33/rk3399_bl31_v1.36.elf"
|
||||
log_dir=$workdir/log
|
||||
nonfree_bin_dir=${workdir}/../bin
|
||||
make_cores=$(nproc)
|
||||
}
|
||||
|
||||
local_param(){
|
||||
if [ -f $workdir/.param ]; then
|
||||
config=$(cat $workdir/.param | grep config)
|
||||
config=${config:7}
|
||||
ubootconfig=$(cat $workdir/.param | grep ubootconfig)
|
||||
ubootconfig=${ubootconfig:12}
|
||||
fi
|
||||
}
|
||||
|
||||
@ -44,8 +46,12 @@ parseargs()
|
||||
return 1
|
||||
elif [ "x$1" == "x" ]; then
|
||||
shift
|
||||
elif [ "x$1" == "x-c" -o "x$1" == "x--config" ]; then
|
||||
config=`echo $2`
|
||||
elif [ "x$1" == "x-u" -o "x$1" == "x--ubootconfig" ]; then
|
||||
ubootconfig=`echo $2`
|
||||
shift
|
||||
shift
|
||||
elif [ "x$1" == "x--cores" ]; then
|
||||
make_cores=`echo $2`
|
||||
shift
|
||||
shift
|
||||
else
|
||||
@ -97,9 +103,9 @@ build_u-boot() {
|
||||
ERROR "arm-trusted-firmware(bl31.elf) can not be found!"
|
||||
exit 2
|
||||
fi
|
||||
make ARCH=arm $config
|
||||
make ARCH=arm -j$(nproc)
|
||||
make ARCH=arm u-boot.itb -j$(nproc)
|
||||
make ARCH=arm $ubootconfig
|
||||
make ARCH=arm -j${make_cores}
|
||||
make ARCH=arm u-boot.itb -j${make_cores}
|
||||
LOG "make u-boot done."
|
||||
fi
|
||||
if [ ! -f u-boot.itb ]; then
|
||||
@ -152,7 +158,7 @@ fi
|
||||
sed -i 's/u-boot//g' $workdir/.done
|
||||
LOG "build u-boot..."
|
||||
|
||||
if [ "x$config" == "xnone" ]; then
|
||||
if [ "x$ubootconfig" == "xnone" ]; then
|
||||
use_prebuild_u-boot
|
||||
else
|
||||
build_u-boot
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user