provide a unified entry script to build images
This commit is contained in:
parent
27f7506d97
commit
a698f7964d
51
README.en.md
51
README.en.md
@ -13,6 +13,9 @@ This repository is the main repository of the openEuler SBC (Single-Board Comput
|
||||
- [How to download latest image](#how-to-download-latest-image)
|
||||
- [Raspberry Pi](#raspberry-pi)
|
||||
- [Rockchip](#rockchip)
|
||||
- [How to build image](#how-to-build-image)
|
||||
- [Prepare the environment](#prepare-the-environment)
|
||||
- [Run the scripts to build image](#run-the-scripts-to-build-image)
|
||||
|
||||
<!-- /TOC -->
|
||||
|
||||
@ -286,4 +289,50 @@ Basic information of the image is as follows:
|
||||
<td class="cellrowborder" valign="top" width="10%"><a href="https://gitee.com/src-openeuler/openEuler-repos/blob/openEuler-22.03-LTS-SP3/generic.repo">openEuler 22.03 LTS SP3 repository</a></td>
|
||||
<td class="cellrowborder" valign="top" width="10%"><p>A compressed RAW original image</p></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
</tbody></table>
|
||||
|
||||
## How to build image
|
||||
|
||||
### Prepare the environment
|
||||
|
||||
To build openEuler AArch64 image for Raspberry Pi, Rockchip or other SoCs, the requirements of running scripts of this repository are as follows:
|
||||
|
||||
- OS: openEuler or CentOS 8
|
||||
- Hardware: AArch64 hardware, such as Raspberry Pi, Firefly RK3399, Firefly ROC-RK3588S-PC
|
||||
|
||||
For other architecture hardware, you can use [QEMU](https://www.qemu.org/) to build AArch64 system emulation.
|
||||
|
||||
### Run the scripts to build image
|
||||
|
||||
You can use the respective scripts of Raspberry Pi, Rockchip or other SoCs to build images. Refer to the specific documentation:
|
||||
- [Build Raspberry Pi images](./documents/树莓派.md#构建镜像)
|
||||
- [Build images for Rochchip and other SoCs](./documents/瑞芯微等开发板.md#镜像构建)
|
||||
|
||||
Alternatively, you can use the unified entry point [build.sh](./scripts/build.sh) to build images for Raspberry Pi, Rockchip or other SoCs by executing the following command:
|
||||
|
||||
`sudo bash scripts/build.sh --board BOARD_TYPE --in-docker [other_args...]`
|
||||
|
||||
Parameter Definitions & Meaning:
|
||||
|
||||
1. `--in-docker`
|
||||
Build the image using a Docker container. Refer to the links below:
|
||||
- [Build Raspberry Pi images in Docker](./documents/树莓派.md#docker-容器内构建)
|
||||
- [Build images for Rockchip or other SoCs in Docker](./documents/瑞芯微等开发板.md#docker-容器内构建)
|
||||
|
||||
2. `--board BOARD_TYPE`
|
||||
Specifies the development board type. Currently supported parameters include:
|
||||
|
||||
- `rpi`: Build a Raspberry Pi image without compiling the kernel. For other parameters, refer to [Quick build for Raspberry Pi (no kernel compilation)](./documents/树莓派.md#快速构建无需编译内核推荐).
|
||||
- `rpi-custom`: Build a Raspberry Pi image with kernel compilation. For other parameters, refer to [Build a Raspberry Pi image using a custom-compiled kernel](./documents/树莓派.md#完全构建包括编译内核).
|
||||
- `firefly-itx-3588j`: Build a Firefly ITX-3588J image. For other parameters, refer to [Build an image for Rockchip or other SoCs](./documents/瑞芯微等开发板.md#一次构建).
|
||||
- `firefly-rk3399`: Build a Firefly RK3399 image. For other parameters, refer to [Build an image for Rockchip or other SoCs](./documents/瑞芯微等开发板.md#一次构建).
|
||||
- `firefly-roc-rk3566-pc`: Build a Firefly ROC-RK3566-PC image. For other parameters, refer to [Build an image for Rockchip or other SoCs](./documents/瑞芯微等开发板.md#一次构建).
|
||||
- `firefly-roc-rk3568-pc`: Build a Firefly ROC-RK3568-PC image. For other parameters, refer to [Build an image for Rockchip or other SoCs](./documents/瑞芯微等开发板.md#一次构建).
|
||||
- `firefly-roc-rk3568-pc-se`: Build a Firefly ROC-RK3568-PC-SE image. For other parameters, refer to [Build an image for Rockchip or other SoCs](./documents/瑞芯微等开发板.md#一次构建).
|
||||
- `firefly-roc-rk3588s-pc`: Build a Firefly ROC-RK3588S-PC image. For other parameters, refer to [Build an image for Rockchip or other SoCs](./documents/瑞芯微等开发板.md#一次构建).
|
||||
- `phytiumpi-4gb`: Build a Phytium Pi 4GB image. For other parameters, refer to [Build an image for Rockchip or other SoCs](./documents/瑞芯微等开发板.md#一次构建).
|
||||
- `radxa-rock5b`: Build a Radxa Rock-5B image. For other parameters, refer to [Build an image for Rockchip or other SoCs](./documents/瑞芯微等开发板.md#一次构建).
|
||||
- `radxa-rockpi-4a`: Build a Radxa RockPi-4A image. For other parameters, refer to [Build an image for Rockchip or other SoCs](./documents/瑞芯微等开发板.md#一次构建).
|
||||
|
||||
3. `-h`, `--help`
|
||||
Display help information.
|
||||
|
||||
48
README.md
48
README.md
@ -13,6 +13,9 @@
|
||||
- [最新镜像](#最新镜像)
|
||||
- [树莓派](#树莓派)
|
||||
- [瑞芯微等其他开发板](#瑞芯微等其他开发板)
|
||||
- [镜像构建](#镜像构建)
|
||||
- [准备环境](#准备环境)
|
||||
- [构建镜像](#构建镜像)
|
||||
|
||||
<!-- /TOC -->
|
||||
## To Do List
|
||||
@ -286,3 +289,48 @@ SIG 组基本信息位于 [sig-SBC](https://gitee.com/openeuler/community/tree/m
|
||||
<td class="cellrowborder" valign="top" width="10%"><p>压缩后的 RAW 原始镜像</p></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
|
||||
## 镜像构建
|
||||
|
||||
### 准备环境
|
||||
|
||||
本仓库的脚本运行环境要求如下:
|
||||
|
||||
- 操作系统:openEuler、CentOS 8
|
||||
- 架构:AArch64,如树莓派、 RK3399 开发板、 RK3588 开发板
|
||||
|
||||
其他架构可以使用 [QEMU](https://www.qemu.org/) 模拟器搭建 AArch64 运行环境。
|
||||
|
||||
### 构建镜像
|
||||
|
||||
可以使用树莓派或瑞芯微等开发板各自的脚本构建镜像,具体文档参考:
|
||||
- [树莓派镜像构建](./documents/树莓派.md#构建镜像)
|
||||
- [瑞芯微等开发板镜像构建](./documents/瑞芯微等开发板.md#镜像构建)
|
||||
|
||||
也可以使用统一入口 [build.sh](./scripts/build.sh) 构建树莓派或瑞芯微等开发板镜像,执行命令:
|
||||
|
||||
`sudo bash scripts/build.sh --board BOARD_TYPE --in-docker [other_args...]`
|
||||
|
||||
各个参数含义:
|
||||
|
||||
1. --in-docker
|
||||
使用 Docker 容器构建镜像,参考链接:
|
||||
- [使用 Docker 容器构建树莓派镜像](./documents/树莓派.md#docker-容器内构建)
|
||||
- [使用 Docker 容器构建瑞芯微等开发板镜像](./documents/瑞芯微等开发板.md#docker-容器内构建)
|
||||
|
||||
2. --board BOARD_TYPE
|
||||
开发板类型和构建方式。当前支持的参数有:
|
||||
- rpi,无需编译内核直接构建树莓派镜像,其他参数请参考 [无需编译内核快速构建树莓派镜像](./documents/树莓派.md#快速构建无需编译内核推荐)。
|
||||
- rpi-custom,编译内核并构建树莓派镜像,其他参数请参考 [编译内核构建树莓派镜像](./documents/树莓派.md#完全构建包括编译内核)。
|
||||
- firefly-itx-3588j,构建 Firefly ITX-3588J 开发板镜像,其他参数请参考 [构建瑞芯微等开发板镜像](./documents/瑞芯微等开发板.md#一次构建)。
|
||||
- firefly-rk3399,构建 Firefly RK3399 开发板镜像,其他参数请参考 [构建瑞芯微等开发板镜像](./documents/瑞芯微等开发板.md#一次构建)。
|
||||
- firefly-roc-rk3566-pc,构建 Firefly ROC-RK3566-PC 开发板镜像,其他参数请参考 [构建瑞芯微等开发板镜像](./documents/瑞芯微等开发板.md#一次构建)。
|
||||
- firefly-roc-rk3568-pc,构建 Firefly ROC-RK3568-PC 开发板镜像,其他参数请参考 [构建瑞芯微等开发板镜像](./documents/瑞芯微等开发板.md#一次构建)。
|
||||
- firefly-roc-rk3568-pc-se,构建 Firefly ROC-RK3568-PC-SE 开发板镜像,其他参数请参考 [构建瑞芯微等开发板镜像](./documents/瑞芯微等开发板.md#一次构建)。
|
||||
- firefly-roc-rk3588s-pc,构建 Firefly ROC-RK3588S-PC 开发板镜像,其他参数请参考 [构建瑞芯微等开发板镜像](./documents/瑞芯微等开发板.md#一次构建)。
|
||||
- phytiumpi-4gb,构建 Phytium Pi 4GB 开发板镜像,其他参数请参考 [构建瑞芯微等开发板镜像](./documents/瑞芯微等开发板.md#一次构建)。
|
||||
- radxa-rock5b,构建 Radxa Rock-5B 开发板镜像,其他参数请参考 [构建瑞芯微等开发板镜像](./documents/瑞芯微等开发板.md#一次构建)。
|
||||
- radxa-rockpi-4a,构建 Radxa RockPi-4A 开发板镜像,其他参数请参考 [构建瑞芯微等开发板镜像](./documents/瑞芯微等开发板.md#一次构建)。
|
||||
|
||||
3. -h, --help
|
||||
显示帮助信息。
|
||||
|
||||
@ -13,8 +13,7 @@
|
||||
- [构建镜像](#构建镜像)
|
||||
- [快速构建(无需编译内核,推荐)](#快速构建无需编译内核推荐)
|
||||
- [完全构建(包括编译内核)](#完全构建包括编译内核)
|
||||
- [主机上构建](#主机上构建)
|
||||
- [Docker 容器内构建](#docker-容器内构建)
|
||||
- [Docker 容器内构建](#docker-容器内构建)
|
||||
|
||||
<!-- /TOC -->
|
||||
|
||||
@ -41,8 +40,8 @@
|
||||
- [openEuler 21.09 内测版(LXDE 桌面、中文输入法)更新日志](raspberrypi/changelog/changelog-21.09-LXDE.md)
|
||||
- [scripts](../scripts/raspberrypi): 构建 openEuler 树莓派镜像的脚本
|
||||
- [快速构建(不编译内核)](../scripts/raspberrypi/build-image.sh)
|
||||
- [主机上构建(编译内核)](../scripts/raspberrypi/build-image-common.sh)
|
||||
- [Docker 容器中构建(编译内核)](../scripts/raspberrypi/build-image-docker.sh)
|
||||
- [完全构建(编译内核)](../scripts/raspberrypi/build-image-common.sh)
|
||||
- [Docker 容器中构建](../scripts/raspberrypi/build-image-docker.sh)
|
||||
|
||||
## 最新镜像
|
||||
|
||||
@ -140,8 +139,6 @@
|
||||
|
||||
包含编译内核、下载树莓派相关固件等过程,速度相对较慢。
|
||||
|
||||
这里,提供两种构建方式。
|
||||
|
||||
> **须知:**
|
||||
>当前支持三个 openEuler 版本,即 20.03 LTS、20.09、20.03 LTS SP1、21.03、20.03 LTS SP2、21.09、20.03 LTS SP3、22.03 LTS、22.09、22.03 LTS SP1、23.03、22.03 LTS SP2、22.03 LTS SP3、24.03 LTS、22.03 LTS SP4、24.09、24.03 LTS SP1、25.03 版本。
|
||||
>如果构建包含 Xfce/UKUI/DDE 桌面环境或者 DevStation 开发者工作站的镜像,需要注意六点:
|
||||
@ -189,13 +186,11 @@
|
||||
> - openEuler 25.03:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-25.03](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-25.03/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-25.03`。
|
||||
>6. 根据需要设置 -s/--spec,其具体意义见该参数的介绍部分。
|
||||
|
||||
##### 主机上构建
|
||||
|
||||
构建镜像需执行命令:
|
||||
|
||||
`sudo bash build-image-common.sh -n IMAGE_NAME -k KERNEL_URL -b KERNEL_BRANCH -c KERNEL_DEFCONFIG -r REPO -s SPEC --cores N`
|
||||
|
||||
脚本运行结束后,会提示镜像的存储位置,镜像默认保存在脚本运行所在目录的 `raspi_output_common/img/` 下。
|
||||
脚本运行结束后,会提示镜像的存储位置,镜像默认保存在脚本运行所在目录的 `raspi_output/img/` 下。
|
||||
|
||||
各个参数意义:
|
||||
|
||||
@ -244,17 +239,17 @@
|
||||
|
||||
并行编译的数量,根据运行脚本的宿主机 CPU 实际数目设定,默认为可用的 CPU 总数。
|
||||
|
||||
##### Docker 容器内构建
|
||||
#### Docker 容器内构建
|
||||
|
||||
构建镜像需执行命令:
|
||||
|
||||
`sudo bash build-image-docker.sh -d DOCKER_FILE -n IMAGE_NAME -k KERNEL_URL -b KERNEL_BRANCH -c KERNEL_DEFCONFIG -r REPO --cores N`
|
||||
|
||||
脚本运行结束后,镜像默认保存在脚本运行所在目录的 `raspi_output_common/img/` 下。
|
||||
脚本运行结束后,镜像默认保存在脚本运行所在目录的 `raspi_output/img/` 下。
|
||||
|
||||
注意!!!运行该脚本前,需安装 Docker 运行环境。该脚本会自动将 DOCKER_FILE 参数对应的 Docker 镜像导入本机系统中。
|
||||
注意!!!运行该脚本前,需安装 Docker 运行环境。该脚本会自动将 `-d DOCKER_FILE` 参数对应的 Docker 镜像导入本机系统中。
|
||||
|
||||
除参数 DOCKER_FILE 外,剩余参数与[主机上构建](#主机上构建)中对应参数一致:
|
||||
除参数 `-d DOCKER_FILE` 外,剩余参数与 [快速构建(无需编译内核,推荐)](#快速构建无需编译内核推荐) 或 [完全构建(包括编译内核)](#完全构建包括编译内核) 中对应参数一致:
|
||||
|
||||
1. -d, --docker DOCKER_FILE
|
||||
|
||||
|
||||
102
scripts/build.sh
Normal file
102
scripts/build.sh
Normal file
@ -0,0 +1,102 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
usage() {
|
||||
echo "Usage: $0 --board BOARD_TYPE --in-docker [other_args...]"
|
||||
echo Options:
|
||||
echo "--in-docker Build images in Docker."
|
||||
echo "--board BOARD_TYPE Supported boards:"
|
||||
echo " - rpi (Build a Raspberry Pi image without kernel compilation)"
|
||||
echo " - rpi-custom (Build a Raspberry Pi image using a custom kernel compiled)"
|
||||
for config in "${RK_BOARDS[@]}"; do
|
||||
echo " - $config"
|
||||
done
|
||||
exit 1
|
||||
}
|
||||
|
||||
cur_dir=$(cd $(dirname $0);pwd)
|
||||
rk_board_dir=$cur_dir/rockchip/boards
|
||||
|
||||
BOARD=""
|
||||
HELP=false
|
||||
IN_DOCKER=false
|
||||
ARGS=()
|
||||
RK_BOARDS=()
|
||||
SUB_SCRIPT=""
|
||||
|
||||
while IFS= read -r -d '' file; do
|
||||
RK_BOARDS+=("$(basename "$file" .conf)")
|
||||
done < <(find "$rk_board_dir" -type f -name "*.conf" ! -name "sample.conf" -print0 | sort -z)
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--board)
|
||||
BOARD="$2"
|
||||
shift 2
|
||||
;;
|
||||
--in-docker)
|
||||
IN_DOCKER=true
|
||||
shift
|
||||
;;
|
||||
--help)
|
||||
HELP=true
|
||||
ARGS+=("--help")
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
ARGS+=("$1")
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$BOARD" ]; then
|
||||
if ! $HELP; then
|
||||
echo "Error: --board parameter is required"
|
||||
fi
|
||||
usage
|
||||
fi
|
||||
|
||||
case "$BOARD" in
|
||||
rpi)
|
||||
if $IN_DOCKER; then
|
||||
SUB_SCRIPT="$cur_dir/raspberrypi/build-image-docker.sh"
|
||||
else
|
||||
SUB_SCRIPT="$cur_dir/raspberrypi/build-image.sh"
|
||||
fi
|
||||
;;
|
||||
rpi-custom)
|
||||
if $IN_DOCKER; then
|
||||
SUB_SCRIPT="$cur_dir/raspberrypi/build-image-docker.sh"
|
||||
else
|
||||
SUB_SCRIPT="$cur_dir/raspberrypi/build-image-common.sh"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
for item in "${RK_BOARDS[@]}"; do
|
||||
if [ "$item" == "$BOARD" ]; then
|
||||
if $IN_DOCKER; then
|
||||
SUB_SCRIPT="$cur_dir/rockchip/build-image-docker.sh"
|
||||
else
|
||||
SUB_SCRIPT="$cur_dir/rockchip/build.sh"
|
||||
fi
|
||||
ARGS+=("--board")
|
||||
ARGS+=("$BOARD")
|
||||
break
|
||||
fi
|
||||
done
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -z "$SUB_SCRIPT" ]; then
|
||||
echo "Error: Unknown board type '$BOARD'"
|
||||
usage
|
||||
fi
|
||||
|
||||
echo "Running: $SUB_SCRIPT ${ARGS[@]}"
|
||||
"$SUB_SCRIPT" "${ARGS[@]}"
|
||||
4
scripts/raspberrypi/build-image-common.sh
Normal file → Executable file
4
scripts/raspberrypi/build-image-common.sh
Normal file → Executable file
@ -610,9 +610,9 @@ cur_dir=$(cd $(dirname $0);pwd)
|
||||
|
||||
workdir=${cur_dir}
|
||||
if [ "x${workdir}" == "x/" ]; then
|
||||
workdir=/raspi_output_common
|
||||
workdir=/raspi_output
|
||||
else
|
||||
workdir=${workdir}/raspi_output_common
|
||||
workdir=${workdir}/raspi_output
|
||||
fi
|
||||
|
||||
buildid=$(date +%Y%m%d%H%M%S)
|
||||
|
||||
16
scripts/raspberrypi/build-image-docker.sh
Normal file → Executable file
16
scripts/raspberrypi/build-image-docker.sh
Normal file → Executable file
@ -48,6 +48,7 @@ parseargs()
|
||||
elif [ "x$1" == "x-k" -o "x$1" == "x--kernel" ]; then
|
||||
kernel_url=`echo $2`
|
||||
params="${params} -k ${kernel_url}"
|
||||
KERNEL_COMPILE="-common"
|
||||
shift
|
||||
shift
|
||||
elif [ "x$1" == "x-b" -o "x$1" == "x--branch" ]; then
|
||||
@ -125,16 +126,17 @@ LOG(){
|
||||
cur_dir=$(cd $(dirname $0);pwd)
|
||||
|
||||
docker_file="https://repo.openeuler.org/openEuler-20.03-LTS-SP1/docker_img/aarch64/openEuler-docker.aarch64.tar.xz"
|
||||
KERNEL_COMPILE=""
|
||||
|
||||
workdir=${cur_dir}/raspi_output_common
|
||||
workdir=${cur_dir}/raspi_output
|
||||
|
||||
buildid=$(date +%Y%m%d%H%M%S)
|
||||
builddate=${buildid:0:8}
|
||||
|
||||
log_dir=${workdir}/log
|
||||
params_dir=${workdir}/params
|
||||
euler_dir=${cur_dir}/config-common
|
||||
params_dir_indocker=/work/raspi_output_common/params
|
||||
params_dir_indocker=/work/raspi_output/params
|
||||
euler_dir=${cur_dir}/config$KERNEL_COMPILE
|
||||
|
||||
if [ -d ${params_dir} ]; then
|
||||
rm -rf ${params_dir}
|
||||
@ -168,16 +170,16 @@ LOG build raspi image with docker: ${docker_file}.
|
||||
|
||||
(echo "FROM $docker_img_name" && grep -v FROM ${euler_dir}/Dockerfile_makeraspi) | docker build -t ${docker_img_name}-${buildid} --no-cache -f- ${euler_dir}
|
||||
echo docker run --rm --privileged=true \
|
||||
-v ${cur_dir}/build-image-common.sh:/work/build-image-common.sh \
|
||||
-v ${cur_dir}/build-image$KERNEL_COMPILE.sh:/work/build-image.sh \
|
||||
-v ${euler_dir}:/work/config-common \
|
||||
-v ${cur_dir}/config:/work/config \
|
||||
-v ${workdir}:/work/raspi_output_common \
|
||||
-v ${workdir}:/work/raspi_output \
|
||||
${docker_img_name}-${buildid} ${params}
|
||||
docker run --rm --privileged=true \
|
||||
-v ${cur_dir}/build-image-common.sh:/work/build-image-common.sh \
|
||||
-v ${cur_dir}/build-image$KERNEL_COMPILE.sh:/work/build-image.sh \
|
||||
-v ${euler_dir}:/work/config-common \
|
||||
-v ${cur_dir}/config:/work/config \
|
||||
-v ${workdir}:/work/raspi_output_common \
|
||||
-v ${workdir}:/work/raspi_output \
|
||||
${docker_img_name}-${buildid} ${params}
|
||||
chmod -R a+r ${workdir}/img
|
||||
docker image rm ${docker_img_name}-${buildid}
|
||||
|
||||
0
scripts/raspberrypi/build-image.sh
Normal file → Executable file
0
scripts/raspberrypi/build-image.sh
Normal file → Executable file
@ -1,13 +0,0 @@
|
||||
FROM openeuler-20.03-lts-sp1:latest
|
||||
|
||||
RUN dnf clean expire-cache
|
||||
|
||||
RUN dnf -y install cmake gdb gcc gcc-c++ libstdc++-static ncurses ncurses-devel make python bash coreutils && \
|
||||
dnf -y clean all
|
||||
|
||||
RUN dnf -y install module-init-tools git openssl-devel bc bison flex dnf-plugins-core dosfstools parted wget device-mapper-multipath grep xz kpartx
|
||||
RUN dnf -y install rsync passwd diffutils
|
||||
ENV SHELL=/bin/bash
|
||||
|
||||
ENTRYPOINT ["/bin/bash", "/work/build-image-common.sh"]
|
||||
|
||||
1
scripts/raspberrypi/config-common/Dockerfile_makeraspi
Symbolic link
1
scripts/raspberrypi/config-common/Dockerfile_makeraspi
Symbolic link
@ -0,0 +1 @@
|
||||
../config/Dockerfile_makeraspi
|
||||
13
scripts/raspberrypi/config/Dockerfile_makeraspi
Normal file
13
scripts/raspberrypi/config/Dockerfile_makeraspi
Normal file
@ -0,0 +1,13 @@
|
||||
FROM openeuler-20.03-lts-sp1:latest
|
||||
|
||||
RUN dnf clean expire-cache
|
||||
|
||||
RUN dnf -y install cmake gdb gcc gcc-c++ libstdc++-static ncurses ncurses-devel make python bash coreutils && \
|
||||
dnf -y clean all
|
||||
|
||||
RUN dnf -y install module-init-tools git openssl-devel bc bison flex dnf-plugins-core dosfstools parted wget device-mapper-multipath grep xz kpartx
|
||||
RUN dnf -y install rsync passwd diffutils
|
||||
ENV SHELL=/bin/bash
|
||||
|
||||
ENTRYPOINT ["/bin/bash", "/work/build-image.sh"]
|
||||
|
||||
0
scripts/rockchip/build-image-docker.sh
Normal file → Executable file
0
scripts/rockchip/build-image-docker.sh
Normal file → Executable file
@ -43,7 +43,7 @@ default_param() {
|
||||
branch=openEuler-20.03-LTS
|
||||
repo_file="https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-20.03-LTS/generic.repo"
|
||||
kernel_url="https://gitee.com/openeuler/rockchip-kernel.git"
|
||||
workdir=$(pwd)/build
|
||||
workdir=$cur_dir/build
|
||||
name=${branch}-${board}-aarch64-alpha1
|
||||
make_cores=$(nproc)
|
||||
}
|
||||
@ -133,13 +133,13 @@ LOG(){
|
||||
echo `date` - INFO, $* | tee -a ${log_dir}/${builddate}.log
|
||||
}
|
||||
|
||||
cur_dir=$(cd $(dirname $0);pwd)
|
||||
|
||||
default_param
|
||||
parseargs "$@" || help $?
|
||||
|
||||
LOG "Selected board: ${board}."
|
||||
|
||||
cur_dir=$(cd $(dirname $0);pwd)
|
||||
|
||||
source ${cur_dir}/boards/${board}.conf
|
||||
|
||||
LOG "Board config: ${board}."
|
||||
@ -170,15 +170,15 @@ else
|
||||
fi
|
||||
|
||||
if [[ $(cat $workdir/.done | grep u-boot) != "u-boot" ]];then
|
||||
bash build_u-boot.sh
|
||||
bash $cur_dir/build_u-boot.sh
|
||||
fi
|
||||
|
||||
if [[ $(cat $workdir/.done | grep bootimg) != "bootimg" ]];then
|
||||
bash build_boot.sh
|
||||
bash $cur_dir/build_boot.sh
|
||||
fi
|
||||
|
||||
if [[ $(cat $workdir/.done | grep rootfs) != "rootfs" ]];then
|
||||
bash build_rootfs.sh
|
||||
bash $cur_dir/build_rootfs.sh
|
||||
fi
|
||||
|
||||
bash gen_image.sh --board ${board}
|
||||
bash $cur_dir/gen_image.sh --board ${board}
|
||||
|
||||
@ -21,7 +21,7 @@ help()
|
||||
}
|
||||
|
||||
default_param() {
|
||||
workdir=$(pwd)/build
|
||||
workdir=$cur_dir/build
|
||||
branch=openEuler-20.03-LTS
|
||||
default_defconfig=openeuler_rockchip_defconfig
|
||||
board=firefly-rk3399
|
||||
@ -242,6 +242,7 @@ mk_boot() {
|
||||
}
|
||||
|
||||
kernel_defconfig=""
|
||||
cur_dir=$(cd $(dirname $0);pwd)
|
||||
|
||||
default_param
|
||||
local_param
|
||||
@ -260,11 +261,12 @@ elif [ -f $default_defconfig ]; then
|
||||
kernel_defconfig=${workdir}/${default_defconfig##*/}
|
||||
fi
|
||||
|
||||
source $workdir/../boards/${board}.conf
|
||||
|
||||
if [ ! -d $workdir ]; then
|
||||
mkdir $workdir
|
||||
fi
|
||||
|
||||
source $workdir/../boards/${board}.conf
|
||||
|
||||
if [ ! -d ${log_dir} ];then mkdir -p ${log_dir}; fi
|
||||
if [ ! -f $workdir/.done ];then
|
||||
touch $workdir/.done
|
||||
|
||||
@ -24,7 +24,7 @@ default_param() {
|
||||
board=firefly-rk3399
|
||||
repo_file="https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-20.03-LTS/generic.repo"
|
||||
tmp_dir=${workdir}/tmp
|
||||
workdir=$(pwd)/build
|
||||
workdir=$cur_dir/build
|
||||
branch=openEuler-20.03-LTS
|
||||
nonfree_bin_dir=${workdir}/../bin
|
||||
rootfs_dir=${workdir}/rootfs
|
||||
@ -325,6 +325,7 @@ mk_rootfsimg() {
|
||||
}
|
||||
set -e
|
||||
root_need
|
||||
cur_dir=$(cd $(dirname $0);pwd)
|
||||
default_param
|
||||
local_param
|
||||
parseargs "$@" || help $?
|
||||
@ -335,11 +336,12 @@ POST_BOARD_OVERLAY() {
|
||||
echo "Initial POST_BOARD_OVERLAY function" # It will be overwritten by board.conf.
|
||||
}
|
||||
|
||||
source $workdir/../boards/${board}.conf
|
||||
|
||||
if [ ! -d $workdir ]; then
|
||||
mkdir $workdir
|
||||
fi
|
||||
|
||||
source $workdir/../boards/${board}.conf
|
||||
|
||||
if [ ! -d ${log_dir} ];then mkdir -p ${log_dir}; fi
|
||||
if [ ! -f $workdir/.done ];then
|
||||
touch $workdir/.done
|
||||
|
||||
@ -19,7 +19,7 @@ help()
|
||||
|
||||
default_param() {
|
||||
board=firefly-rk3399
|
||||
workdir=$(pwd)/build
|
||||
workdir=$cur_dir/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
|
||||
@ -135,15 +135,17 @@ use_prebuild_u-boot() {
|
||||
|
||||
set -e
|
||||
u_boot_ver="v2020.10"
|
||||
cur_dir=$(cd $(dirname $0);pwd)
|
||||
default_param
|
||||
local_param
|
||||
parseargs "$@" || help $?
|
||||
|
||||
source $workdir/../boards/${board}.conf
|
||||
|
||||
if [ ! -d $workdir ]; then
|
||||
mkdir $workdir
|
||||
fi
|
||||
|
||||
source $workdir/../boards/${board}.conf
|
||||
|
||||
if [ ! -d ${log_dir} ];then mkdir -p ${log_dir}; fi
|
||||
if [ ! -f $workdir/.done ];then
|
||||
touch $workdir/.done
|
||||
|
||||
@ -17,8 +17,8 @@ help()
|
||||
}
|
||||
|
||||
default_param() {
|
||||
workdir=$(pwd)/build
|
||||
bindir=$(pwd)/bin/rk3588-pack
|
||||
workdir=$cur_dir/build
|
||||
bindir=$cur_dir/bin/rk3588-pack
|
||||
outputdir=${workdir}/$(date +'%Y-%m-%d')
|
||||
name=openEuler-22.03-LTS-RK3588
|
||||
rootfs_dir=${workdir}/rootfs
|
||||
@ -74,6 +74,7 @@ make_img(){
|
||||
}
|
||||
|
||||
LOG "gen image..."
|
||||
cur_dir=$(cd $(dirname $0);pwd)
|
||||
default_param
|
||||
prepare_bin
|
||||
prepare_img
|
||||
|
||||
@ -18,7 +18,7 @@ help()
|
||||
}
|
||||
|
||||
default_param() {
|
||||
workdir=$(pwd)/build
|
||||
workdir=$cur_dir/build
|
||||
outputdir=${workdir}/$(date +'%Y-%m-%d')
|
||||
name=openEuler-Firefly-RK3399-aarch64-alpha1
|
||||
board=firefly-rk3399
|
||||
@ -287,9 +287,14 @@ outputd(){
|
||||
}
|
||||
|
||||
set -e
|
||||
cur_dir=$(cd $(dirname $0);pwd)
|
||||
default_param
|
||||
parseargs "$@" || help $?
|
||||
|
||||
if [ ! -d $workdir ]; then
|
||||
mkdir $workdir
|
||||
fi
|
||||
|
||||
source $workdir/../boards/${board}.conf
|
||||
|
||||
if [ ! -d ${log_dir} ];then mkdir -p ${log_dir}; fi
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user