diff --git a/README.en.md b/README.en.md index 456b9ea..dddc1f6 100644 --- a/README.en.md +++ b/README.en.md @@ -16,6 +16,8 @@ This repository is the main repository of the openEuler SBC (Single-Board Comput - [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) + - [Build on host](#build-on-host) + - [Build in a Docker container](#build-in-a-docker-container) @@ -51,15 +53,16 @@ You can get introduction of openEuler SBC SIG from [sig-SBC](https://gitee.com/o >- Recommendation: use the latest images provided in the chapter [How to download latest image](#how-to-download-latest-image) of this documentation. - [documents](./documents/): - - [Raspberry Pi](documents/树莓派.md) - - [Getting started with Raspberry Pi](documents/树莓派.md) + - [How to contribute](documents/CONTRIBUTING.md) + - [Raspberry Pi](documents/RaspberryPi.md) + - [Getting started with Raspberry Pi](documents/RaspberryPi.md) - [Install openEuler on an SD card](documents/raspberrypi/刷写镜像.md) - [How to use Raspberry Pi](documents/raspberrypi/树莓派使用.md) - [Building openEuler image for Raspberry Pi](documents/raspberrypi/openEuler镜像的构建.md) - [Cross-compile the kernel](documents/raspberrypi/交叉编译内核.md) - [Emulate Raspberry Pi with QEMU](documents/raspberrypi/QEMU启动树莓派.md) - - [Rockchip and other SoCs](documents/瑞芯微等开发板.md) - - [Getting started with Rockchip and other SoCs](documents/瑞芯微等开发板.md) + - [Rockchip and other SoCs](documents/Rockchip.md) + - [Getting started with Rockchip and other SoCs](documents/Rockchip.md) - [Building openEuler image for Rockchip development boards](documents/rockchip/openEuler镜像的构建.md) - [Install an Image on an EMMC](documents/rockchip/刷写EMMC镜像.md) - [Build images sequentially](documents/rockchip/顺序构建.md) @@ -70,17 +73,13 @@ You can get introduction of openEuler SBC SIG from [sig-SBC](https://gitee.com/o - [openEuler Adaptation Guide](documents/rockchip/openEuler适配指南.md) - [Using RKNPU on openEuler](documents/rockchip/在openEuler上使用RKNPU.md) - [Run RKLLM on openEuler](documents/rockchip/在openEuler上运行RKLLM.md) -- [scripts](./scripts/): - - [Raspberry Pi](./scripts/raspberrypi): Script for building openEuler image for Raspberry Pi - - [Quickly Build (without kernel compilation)](scripts/raspberrypi/build-image.sh) - - [Build on host (with kernel compilation)](scripts/raspberrypi/build-image-common.sh) - - [Build in a Docker container (with kernel compilation)](scripts/raspberrypi/build-image-docker.sh) - - [Rockchip and other SoCs](./scripts/rockchip): Used to build openEuler images for Rockchip and other SoCs - - [One-time build images](scripts/rockchip/build.sh) - - [Build a boot Image](scripts/rockchip/build_boot.sh) - - [Build a rootfs Image](scripts/rockchip/build_rootfs.sh) - - [Compile u-boot](scripts/rockchip/build_u-boot.sh) - - [Generate a bootable image](scripts/rockchip/gen_image.sh) +- [scripts](./scripts/): Script for building openEuler image + - [Build a unified system image](scripts/build.sh) + - [Build a unified system image using Docker](./scripts/build-image-docker.sh) + - [Build a boot Image](scripts/build_boot.sh) + - [Build a rootfs Image](scripts/build_rootfs.sh) + - [Compile u-boot](scripts/build_u-boot.sh) + - [Generate a bootable image](scripts/gen_image.sh) ## How to download latest image @@ -306,38 +305,98 @@ To build openEuler AArch64 image for Raspberry Pi, Rockchip or other SoCs, the r 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 unified build scripts [build.sh](./scripts/build.sh) or [build-image-docker.sh](./scripts/build-image-docker.sh) to build images for Raspberry Pi, Rockchip, and other development boards, either directly on the host machine or by launching a Docker container. For details, please refer to the documentation below: +- [Build Raspberry Pi images](./documents/RaspberryPi.md#构建镜像) +- [Build images for Rochchip and other SoCs](./documents/Rockchip.md#镜像构建) -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#镜像构建) +#### Build on host +Run the following command to build images on the host machine: -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 build.sh --board BOARD_CONFIG -n NAME -k KERNEL_URL -b KERNEL_BRANCH -c KERNEL_DEFCONFIG -r REPO_INFO -s SPEC --cores N` -`sudo bash scripts/build.sh --board BOARD_TYPE --in-docker [other_args...]` +After building the image, you can find the image in `build/YYYY-MM-DD` of the directory in which the script resides as shown in the script output. -Parameter Definitions & Meaning: +**NOTE: You can directly execute "sudo bash build.sh" to build an openEuler 20.03 LTS image for Firefly-RK3399 with the script's default parameters.** -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-容器内构建) +**Parameter Descriptions** -2. `--board BOARD_TYPE` - Specifies the development board type. Currently supported parameters include: +1. --board BOARD_CONFIG + The board configuration files are located in the [boards](scripts/boards) directory. See the example file [sample.conf](scripts/boards/sample.conf). The default is `firefly-rk3399`. - - `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#一次构建). - - `orangepi-zero2`: Build a Orange Pi Zero2 image. For other parameters, refer to [Build an image for Rockchip or other SoCs](./documents/瑞芯微等开发板.md#一次构建). - - `longanpi-3h`: Build a Sipeed Longan Pi 3H image. For other parameters, refer to [Build an image for Rockchip or other SoCs](./documents/瑞芯微等开发板.md#一次构建). + Configuration parameters included: + - platform=PLATFORM -3. `-h`, `--help` - Display help information. + The Hardware platform used by the board. Currently supported platforms are: broadcom, rockchip, phytium. Default is `rockchip`. + + - device-tree=DTB_NAME + + The device name in the kernel device tree (slightly different from the board name). Corresponds to the `DTB_NAME.dts` file under [kernel/arch/arm64/boot/dts/rockchip](https://gitee.com/openeuler/kernel/tree/master/arch/arm64/boot/dts/rockchip). Default is `rk3399-firefly`. + + - ubootconfig=UBOOT_DEFCONFIG + + The defconfig file name for the development board. Corresponds to the `UBOOT_DEFCONFIG` file under [u-boot/configs](https://github.com/u-boot/u-boot/tree/master/configs). Default is `firefly-rk3399_defconfig`. To use a precompiled u-boot (e.g., on RK3588), set this to empty: ubootconfig=. + +2. -n, --name IMAGE_NAME + + The image name to be built. For example, `openEuler-20.03-LTS-Firefly-RK3399-aarch64-alpha1` or `openEuler-24.03-LTS-raspi-aarch64-alpha1`. + +3. -k, --kernel KERNEL_URL + + The URL of kernel source repository, which defaults to `https://gitee.com/openeuler/raspberrypi-kernel.git`. You can set the parameter as `git@gitee.com:openeuler/raspberrypi-kernel.git` or `git@gitee.com:openeuler/kernel.git` according to the requirement. + +4. -b, --branch KERNEL_BRANCH + + The branch name of kernel source repository, which defaults to openEuler-20.03-LTS. + +5. -c, --config KERNEL_DEFCONFIG + + The filename/path of configuration for compiling kernel, which defaults to `openeuler-raspi_defconfig`. If this parameter is the filename of configuration, please make sure the configuration file in `arch/arm64/configs` of the kernel source. + +6. -r, --repo REPO_INFO + + The URL/path of target repo file, or the list of repositories' baseurls. Note that, the baseurls should be separated by space and enclosed in double quotes. + Examples are as follows: + + - The URL of target repo file: `https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-20.03-LTS/generic.repo`. + + - The path of target repo file: + + `./openEuler-20.03-LTS.repo`:for building openEuler 20.03 LTS image, refer to for details. + + - List of repo's baseurls: `http://repo.openeuler.org/openEuler-20.03-LTS/OS/aarch64/ http://repo.openeuler.org/openEuler-20.03-LTS/EPOL/aarch64/`. + +7. -s, --spec SPEC + + Specify the image version: + - `headless`, image without desktop environments. + - `xfce`, image with Xfce desktop environment and related software including CJK fonts and IME. + - `ukui`, image with UKUI desktop environment and fundamental software including CJK fonts and IME. + - `dde`, image with DDE desktop environment and fundamental software including CJK fonts and IME. + - `gnome`,image with GNOME desktop environment and fundamental software including CJK fonts and IME. + - `devstation`,image with GNOME desktop environment and fundamental software including CJK fonts, IME, development tools and IDEs. + - The file path of rpmlist, the file contains a list of the software to be installed in the image, refer to [rpmlist](./scripts/configs/rpmlist) for details. + + The default is `headless`. + +8. --cores N + + The number of parallel compilations, according to the actual number of CPU of the host running the script. The default is the number of processing units available. + +9. -h, --help + + Displays help information. + +#### Build in a Docker container +Run the following command to build an image in a Docker container: + +`sudo bash build-image-docker.sh -d DOCKER_FILE --board BOARD_CONFIG -n NAME -k KERNEL_URL -b KERNEL_BRANCH -c KERNEL_DEFCONFIG -r REPO_INFO -s SPEC --cores N` + +After building the image, you can find the image in `build/YYYY-MM-DD` of the directory in which the script resides. + +Caution, before running the script, you need to install Docker. The script will automatically import the Docker image into the local system according to the script's parameter: DOCKER_FILE. + +In addition to the parameter DOCKER_FILE, the other parameters are the same as the corresponding parameters in [Build on host](#build-on-host): + +1. -d, --docker DOCKER_FILE + + The URL/path of the Docker image, which defaults to `https://repo.openeuler.org/openEuler-20.03-LTS-SP1/docker_img/aarch64/openEuler-docker.aarch64.tar.xz`. With the default parameter, the script will automatically download the Docker image of openEuler 20.03 LTS SP1 and import it into the local system. diff --git a/README.md b/README.md index 3647e15..af34297 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,8 @@ - [镜像构建](#镜像构建) - [准备环境](#准备环境) - [构建镜像](#构建镜像) + - [宿主机上构建镜像](#宿主机上构建镜像) + - [Docker 容器内构建镜像](#docker-容器内构建镜像) ## To Do List @@ -50,15 +52,16 @@ SIG 组基本信息位于 [sig-SBC](https://gitee.com/openeuler/community/tree/m >- 建议直接使用本文档 [最新镜像](#最新镜像) 章节中给出的 openEuler 的树莓派/RK3399等镜像。 - [documents](./documents/): 使用文档 - - [树莓派](documents/树莓派.md) - - [树莓派快速入门](documents/树莓派.md) + - [贡献指南](documents/CONTRIBUTING.md) + - [树莓派](documents/RaspberryPi.md) + - [树莓派快速入门](documents/RaspberryPi.md) - [刷写镜像](documents/raspberrypi/刷写镜像.md) - [树莓派使用](documents/raspberrypi/树莓派使用.md) - [openEuler 镜像的构建](documents/raspberrypi/openEuler镜像的构建.md) - [交叉编译内核](documents/raspberrypi/交叉编译内核.md) - [QEMU 启动树莓派](documents/raspberrypi/QEMU启动树莓派.md) - - [瑞芯微等其他开发板](documents/瑞芯微等开发板.md) - - [瑞芯微等快速入门](documents/瑞芯微等开发板.md) + - [瑞芯微等其他开发板](documents/Rockchip.md) + - [瑞芯微等快速入门](documents/Rockchip.md) - [openEuler镜像的构建](documents/rockchip/openEuler镜像的构建.md) - [刷写EMMC镜像](documents/rockchip/刷写EMMC镜像.md) - [顺序构建](documents/rockchip/顺序构建.md) @@ -69,17 +72,13 @@ SIG 组基本信息位于 [sig-SBC](https://gitee.com/openeuler/community/tree/m - [openEuler 适配指南](documents/rockchip/openEuler适配指南.md) - [在openEuler上使用RKNPU](documents/rockchip/在openEuler上使用RKNPU.md) - [在openEuler上运行RKLLM](documents/rockchip/在openEuler上运行RKLLM.md) -- [scripts](./scripts/): 镜像构建脚本 - - [树莓派](./scripts/raspberrypi): 构建 openEuler 树莓派镜像的脚本 - - [快速构建(不编译内核)](scripts/raspberrypi/build-image.sh) - - [主机上构建(编译内核)](scripts/raspberrypi/build-image-common.sh) - - [Docker 容器中构建(编译内核)](scripts/raspberrypi/build-image-docker.sh) - - [瑞芯微等开发板](./scripts/rockchip): 构建 openEuler RK3399 等开发板镜像的脚本 - - [一次构建脚本](scripts/rockchip/build.sh) - - [boot 镜像构建脚本](scripts/build_boot.sh) - - [rootfs 镜像构建脚本](scripts/build_rootfs.sh) - - [u-boot 编译脚本](scripts/rockchip/build_u-boot.sh) - - [可启动镜像生成脚本](scripts/rockchip/gen_image.sh) +- [scripts](./scripts/): openEuler 镜像构建脚本 + - [构建完整镜像](scripts/build.sh) + - [使用 Docker 构建完整镜像](./scripts/build-image-docker.sh) + - [构建 boot 镜像](scripts/build_boot.sh) + - [构建 rootfs 镜像](scripts/build_rootfs.sh) + - [编译 u-boot](scripts/build_u-boot.sh) + - [将 u-boot、boot、rootfs 合并成一个完整镜像](scripts/gen_image.sh) ## 最新镜像 @@ -305,37 +304,101 @@ SIG 组基本信息位于 [sig-SBC](https://gitee.com/openeuler/community/tree/m 其他架构可以使用 [QEMU](https://www.qemu.org/) 模拟器搭建 AArch64 运行环境。 ### 构建镜像 +镜像构建使用统一入口 [build.sh](./scripts/build.sh) 或 [build-image-docker.sh](./scripts/build-image-docker.sh) 在宿主机或者启动 Docker 容器构建树莓派或瑞芯微等开发板镜像。 +具体参考以下文档: +- [树莓派镜像构建](./documents/RaspberryPi.md#构建镜像) +- [瑞芯微等开发板镜像构建](./documents/Rockchip.md#镜像构建) -可以使用树莓派或瑞芯微等开发板各自的脚本构建镜像,具体文档参考: -- [树莓派镜像构建](./documents/树莓派.md#构建镜像) -- [瑞芯微等开发板镜像构建](./documents/瑞芯微等开发板.md#镜像构建) +#### 宿主机上构建镜像 -也可以使用统一入口 [build.sh](./scripts/build.sh) 构建树莓派或瑞芯微等开发板镜像,执行命令: +构建镜像需执行命令: -`sudo bash scripts/build.sh --board BOARD_TYPE --in-docker [other_args...]` +`sudo bash build.sh --board BOARD_CONFIG -n NAME -k KERNEL_URL -b KERNEL_BRANCH -c KERNEL_DEFCONFIG -r REPO_INFO -s SPEC --cores N` -各个参数含义: +脚本运行结束后,会提示镜像的存储位置,镜像默认保存在脚本运行所在目录的 build/YYYY-MM-DD/ 下。 -1. --in-docker - 使用 Docker 容器构建镜像,参考链接: - - [使用 Docker 容器构建树莓派镜像](./documents/树莓派.md#docker-容器内构建) - - [使用 Docker 容器构建瑞芯微等开发板镜像](./documents/瑞芯微等开发板.md#docker-容器内构建) +**说明: 基于 build.sh 提供的默认参数,执行 sudo bash build.sh 可构建 Firefly-RK3399 的 openEuler-20.03-LTS 镜像。** -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#一次构建)。 - - orangepi-zero2,构建 Orange Pi Zero2 开发板镜像,其他参数请参考 [构建瑞芯微等开发板镜像](./documents/瑞芯微等开发板.md#一次构建)。 - - longanpi-3h,构建 Sipeed Longan Pi 3H 开发板镜像,其他参数请参考 [构建瑞芯微等开发板镜像](./documents/瑞芯微等开发板.md#一次构建)。 +**参数意义** -3. -h, --help - 显示帮助信息。 +1. --board BOARD_CONFIG + + 适用的开发板的版型配置文件在 [boards](scripts/boards) 文件夹中,示例文件 [sample.conf](scripts/boards/sample.conf),默认为 `firefly-rk3399`。 + + 其包括的配置参数意义如下: + + - platform=PLATFORM + + 开发板所使用的平台,目前支持的平台有:broadcom、rockchip、phytium,默认为 `rockchip`。 + + - 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`。 + + - ubootconfig=UBOOT_DEFCONFIG + + 开发板对应的 defconfig 的文件名称,对应 [u-boot/configs](https://github.com/u-boot/u-boot/tree/master/configs) 下 `UBOOT_DEFCONFIG` 文件,默认为 `firefly-rk3399_defconfig`;如需在 RK3588 开发板上使用预编译的 u-boot,可以将此项设置为空:`ubootconfig=`。 + +2. -n, --name IMAGE_NAME + + 构建的镜像名称,例如:`openEuler-20.03-LTS-Firefly-RK3399-aarch64-alpha1` 或 `openEuler-24.03-LTS-raspi-aarch64-alpha1`。 + +3. -k, --kernel KERNEL_URL + + 内核源码仓库的项目地址,默认为 `https://gitee.com/openeuler/rockchip-kernel.git`。可根据需要设置为 `git@gitee.com:openeuler/rockchip-kernel.git` 或 `git@gitee.com:openeuler/kernel.git`。 + +4. -b, --branch KERNEL_BRANCH + + 内核源码的对应分支,默认为 openEuler-20.03-LTS。 + +5. -c, --config KERNEL_DEFCONFIG + + 内核编译使用的配置文件名称或路径,默认为 `openeuler_rockchip_defconfig`。如果该参数为配置文件名称,请确保该文件在内核源码的目录 `arch/arm64/configs` 下。 + +6. -r, --repo REPO_INFO + + 软件源 repo 文件的 URL 或者路径,也可以是软件源中资源库的 baseurl 列表。注意,如果该参数为资源库的 baseurl 列表,该参数需要使用双引号,各个 baseurl 之间以空格隔开。 + + 下面分别举例: + - 软件源 repo 文件的 URL,如 `https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-20.03-LTS/generic.repo`。 + - 软件源的 repo 文件路径: + + `./openEuler-20.03-LTS.repo`:生成 openEuler 20.03 LTS 版本的镜像,该文件内容参考 。 + + - 资源库的 baseurl 列表,如 `http://repo.openeuler.org/openEuler-20.03-LTS/OS/aarch64/ http://repo.openeuler.org/openEuler-20.03-LTS/EPOL/aarch64/`。 + +7. -s, --spec SPEC + + 构建的镜像版本: + - `headless`,无图形界面版的镜像。 + - `xfce`,带 Xfce 桌面以及中文字体、输入法等全部配套软件。 + - `ukui`,带 UKUI 桌面以及中文字体、输入法等全部配套软件。 + - `dde`,带 DDE 桌面以及中文字体、输入法等全部配套软件。 + - `gnome`,带 GNOME 桌面以及中文字体、输入法等全部配套软件。 + - `devstation`,带 GNOME 桌面、中文字体、输入法、大量开发工具和 IDE 等配套软件。 + - rpmlist 文件路径,其中包含镜像中要安装的软件列表,内容参考 [rpmlist](../scripts/configs/rockchip//rpmlist)。 + + 默认使用 `headless` 选项。 + +8. --cores N + + 并行编译的数量,根据运行脚本的宿主机 CPU 实际数目设定,默认为可用的 CPU 总数。 + +9. -h, --help + + 显示帮助信息。 + +#### Docker 容器内构建镜像 +构建镜像需执行命令: + +`sudo bash build-image-docker.sh -d DOCKER_FILE --board BOARD_CONFIG -n NAME -k KERNEL_URL -b KERNEL_BRANCH -c KERNEL_DEFCONFIG -r REPO_INFO -s SPEC --cores N` + +脚本运行结束后,会提示镜像的存储位置,镜像默认保存在脚本运行所在目录的 `build/YYYY-MM-DD/` 下。 + +注意!!!运行该脚本前,需安装 Docker 运行环境。该脚本会自动将 `-d DOCKER_FILE` 参数对应的 Docker 镜像导入本机系统中。 + +除参数 `-d DOCKER_FILE` 外,其余参数与 [宿主机上构建镜像](#宿主机上构建镜像) 中 [build.sh](scripts/build.sh) 对应参数一致: + +1. -d, --docker DOCKER_FILE + + Docker 镜像的 URL 或者路径, 默认为 `https://repo.openeuler.org/openEuler-20.03-LTS-SP1/docker_img/aarch64/openEuler-docker.aarch64.tar.xz`。使用该默认参数时,脚本会自动下载 openEuler 20.03 LTS SP1 的 Docker 镜像,并导入本机系统中。 diff --git a/documents/CONTRIBUTING.md b/documents/CONTRIBUTING.md new file mode 100644 index 0000000..1949bbd --- /dev/null +++ b/documents/CONTRIBUTING.md @@ -0,0 +1,52 @@ +# 贡献指南 +openEuler SBC SIG —— 诚挚邀请您的加入。 + +SBC(single-board computer)SIG 致力于将 openEuler 操作系统适配到各类单板计算机(SBC),包括但不限于树莓派(Raspberry Pi)、瑞芯微(Rockchip)等。其核心工作涵盖硬件适配、内核维护、镜像构建、社区协作及标准化推进,旨在确保 openEuler 在 SBC 设备上的稳定运行和生态扩展。更多信息请参阅 [openEuler SBC SIG 介绍](https://gitee.com/openeuler/community/blob/master/sig/sig-SBC/README.md)。 + +SBC SIG 交流方式可参考: +- [openEuler 社区贡献说明](https://gitee.com/openeuler/community/blob/master/zh/contributors/README.md) +- [如何参与 SBC SIG](../README.md#如何参与-sig-组) + +本文将以树莓派为例,介绍向 SBC SIG 贡献代码和文档的要求与规范。 + +### 内核源码 +SBC SIG 维护的内核源码仓库包括: +- [树莓派内核](https://gitee.com/openeuler/raspberrypi-kernel) +- [瑞芯微内核](https://gitee.com/openeuler/rockchip-kernel) +- [飞腾内核](https://gitee.com/openeuler/phytium-kernel) +- [全志内核](https://gitee.com/openeuler/allwinner-kernel) + +内核源码贡献相关流程如下: +1. 新增开发板适配需求:请在本仓库提交 ISSUE,待需求审核通过并在 openEuler 社区创建对应内核仓库后,方可接受相关内核适配的 PR。 +2. 现有内核(树莓派、瑞芯微、飞腾或全志)适配:请在对应内核仓库或本仓库提交 ISSUE,并根据 ISSUE 提交新特性或内核修复的 PR。 + +### 镜像构建 +SBC SIG 目前使用一套统一脚本构建各类开发板镜像,详见 [scripts](../scripts/)。主要包括: +- [构建完整镜像](../scripts/build.sh) +- [使用 Docker 构建完整镜像](../scripts/build-image-docker.sh) +- [构建 boot 镜像](../scripts/build_boot.sh) +- [构建 rootfs 镜像](../scripts/build_rootfs.sh) +- [编译 u-boot](../scripts/build_u-boot.sh) +- [将 u-boot、boot、rootfs 合并成一个完整镜像](../scripts/gen_image.sh) +- [构建开发板镜像的配置文件](../scripts/boards/),如构建树莓派镜像的配置文件为 [raspberrypi.conf](../scripts/boards/raspberrypi.conf)。 + +以添加树莓派镜像构建脚本为例,步骤如下: +1. 在 [scripts/boards](../scripts/boards/) 下添加构建树莓派镜像的配置文件:[raspberrypi.conf](../scripts/boards/raspberrypi.conf)。 +2. 根据树莓派镜像构建需求,依次完善以下脚本: + - [构建 boot 镜像](scripts/build_boot.sh) + - [构建 rootfs 镜像](scripts/build_rootfs.sh) + - [编译 u-boot](scripts/build_u-boot.sh) +3. 完善脚本 [scripts/gen_image.sh](../scripts/gen_image.sh),将上述步骤生成的 u-boot、boot、rootfs 整合成一个完整镜像。 + +构建脚本命令及参数说明请参考: +1. [树莓派镜像构建](./RaspberryPi.md#构建镜像) +1. [瑞芯微等开发板镜像构建](./Rockchip.md#构建完整镜像) + +### 文档 +SBC SIG 维护的各类开发板构建与使用文档存放于 [documents](./)。以添加树莓派相关文档为例,应包含以下内容: +1. 在 [README.md](../README.md) 和 [README.en.md](../README.en.md) 中补充: + 1. 树莓派相关文档列表:[文件说明](../README.md#文件说明) + 2. [树莓派镜像下载列表](../README.md#树莓派) + 3. [树莓派镜像构建方法](../README.md#构建镜像) +2. 在 [documents](./) 目录下添加树莓派的导航文档:[RaspberryPi.md](./RaspberryPi.md) ,文档名称为树莓派英文全称。 +3. 在以树莓派英文全称命名的文件夹 [RaspberryPi](./RaspberryPi) 中归档所有树莓派相关文档。 diff --git a/documents/树莓派.md b/documents/RaspberryPi.md similarity index 68% rename from documents/树莓派.md rename to documents/RaspberryPi.md index ba55697..9724b2f 100644 --- a/documents/树莓派.md +++ b/documents/RaspberryPi.md @@ -11,9 +11,9 @@ - [镜像构建](#镜像构建) - [准备环境](#准备环境) - [构建镜像](#构建镜像) - - [快速构建(无需编译内核,推荐)](#快速构建无需编译内核推荐) - - [完全构建(包括编译内核)](#完全构建包括编译内核) - - [Docker 容器内构建](#docker-容器内构建) + - [无需编译内核构建镜像](#无需编译内核构建镜像) + - [使用自定义内核构建镜像](#使用自定义内核构建镜像) + - [Docker 容器内构建镜像](#docker-容器内构建镜像) @@ -38,10 +38,12 @@ - [openEuler 21.09 内测版(DDE 桌面、中文输入法)更新日志](raspberrypi/changelog/changelog-21.09-DDE.md) - [openEuler 21.09 内测版(Xfce 桌面、中文输入法)更新日志](raspberrypi/changelog/changelog-21.09-Xfce.md) - [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](../scripts): 构建 openEuler 树莓派镜像的脚本 + - [构建完整镜像](scripts/build.sh) + - [使用 Docker 构建完整镜像](./scripts/build-image-docker.sh) + - [构建 boot 镜像](scripts/build_boot.sh) + - [构建 rootfs 镜像](scripts/build_rootfs.sh) + - [将 u-boot、boot、rootfs 合并成一个完整镜像](scripts/gen_image.sh) ## 最新镜像 @@ -75,12 +77,93 @@ 详细过程参见 [openEuler 镜像的构建](raspberrypi/openEuler镜像的构建.md)。 -构建脚本见 [scripts/raspberrypi](../scripts/raspberrypi)。 +构建脚本见 [scripts](../scripts)。 + +构建镜像需执行命令: + +`sudo bash build.sh --board BOARD_CONFIG -n NAME -k KERNEL_URL -b KERNEL_BRANCH -c KERNEL_DEFCONFIG -r REPO_INFO -s SPEC --cores N` + +脚本运行结束后,会提示镜像的存储位置,镜像默认保存在脚本运行所在目录的 `build/YYYY-MM-DD/` 下。 + +各个参数意义: + +1. --board BOARD_CONFIG + + 适用的开发板的版型配置文件在 [boards](../scripts/boards) 文件夹中,示例文件 [sample.conf](../scripts/boards/sample.conf)。构建树莓派镜像需要设置为 `raspberrypi`,对应文件 [raspberrypi.conf](../scripts/boards/raspberrypi.conf)。 + + 其包括的配置参数意义如下: + + - platform=PLATFORM + + 开发板所使用的平台,目前支持的平台有:broadcom、rockchip、phytium。构建树莓派镜像需要设置为 `broadcom`。 + + - device-tree=DTB_NAME + + 内核设备树中的设备名称,和开发板名称有一点区别,对应 [kernel/arch/arm64/boot/dts/broadcom](https://gitee.com/openeuler/raspberrypi-kernel/tree/OLK-6.6/arch/arm64/boot/dts/broadcom) 下的 `DTB_NAME.dts` 文件。构建树莓派镜像时,默认编译出所有树莓派平台的设备树文件,因此该参数可以为空或者根据需要设置为 `bcm2711-rpi-4-b` 或 `bcm2712-rpi-5-b`。 + + - ubootconfig=UBOOT_DEFCONFIG + + 开发板对应的 defconfig 的文件名称,对应 [u-boot/configs](https://github.com/u-boot/u-boot/tree/master/configs) 下 `UBOOT_DEFCONFIG` 文件,默认为 `firefly-rk3399_defconfig`。构建树莓派镜像无需这部分内容,默认为空:`ubootconfig=`。 + +2. -n, --name IMAGE_NAME + + 构建的镜像名称,例如:`openEuler-24.03-LTS-raspi-aarch64-alpha1`。 + +3. -k, --kernel KERNEL_URL + + 内核源码仓库的项目地址,如 `https://gitee.com/openeuler/raspberrypi-kernel.git`。可根据需要设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git` 或 `git@gitee.com:openeuler/kernel.git`。 + + 注意,如果本参数为空,则不会编译内核源码,默认使用软件源中的内核包。 + +4. -b, --branch KERNEL_BRANCH + + 内核源码的对应分支,例如:OLK-6.6。详细信息可参考 [使用自定义内核构建镜像](#使用自定义内核构建镜像) 章节。 + +5. -c, --config KERNEL_DEFCONFIG + + 内核编译使用的配置文件名称或路径,如 `bcm2711_defconfig`、`bcm2712_defconfig`。如果该参数为配置文件名称,请确保该文件在内核源码的目录 arch/arm64/configs 下。 + + 注意,如果 `--branch` 参数为 `OLK-6.6` 且本参数 `--config` 为空,则默认编译出同时支持树莓派 5 和树莓派 4B 的内核映像。 + +6. -r, --repo REPO_INFO + + 软件源 repo 文件的 URL 或者路径,也可以是软件源中资源库的 baseurl 列表。注意,如果该参数为资源库的 baseurl 列表,该参数需要使用双引号,各个 baseurl 之间以空格隔开。 + + 下面分别举例: + - 软件源 repo 文件的 URL,如 `https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-20.03-LTS-SP1/generic.repo` + - 软件源的 repo 文件路径: + + `./openEuler-20.03-LTS-SP1.repo`:生成 openEuler 20.03 LTS SP1 版本的镜像,该文件内容参考 。 + - 资源库的 baseurl 列表,如 `"http://repo.openeuler.org/openEuler-20.03-LTS-SP1/OS/aarch64/ http://repo.openeuler.org/openEuler-20.03-LTS-SP1/EPOL/aarch64/"`。 + +7. -s, --spec SPEC + + 构建的镜像版本: + - `headless`,无图形界面版的镜像。 + - `xfce`,带 Xfce 桌面以及中文字体、输入法等全部配套软件。 + - `ukui`,带 UKUI 桌面以及中文字体、输入法等全部配套软件。 + - `dde`,带 DDE 桌面以及中文字体、输入法等全部配套软件。 + - `gnome`,带 GNOME 桌面以及中文字体、输入法等全部配套软件。 + - `devstation`,带 GNOME 桌面、中文字体、输入法、大量开发工具和 IDE 等配套软件。 + - rpmlist 文件路径,该文件包含镜像中要安装的软件列表,内容参考 [rpmlist](../scripts/configs/raspberrypi/rpmlist)。 + + 默认使用 `headless` 选项。 + +8. --cores N + + 并行编译的数量,根据运行脚本的宿主机 CPU 实际数目设定,默认为可用的 CPU 总数。 + +9. -h, --help + + 显示帮助信息。 + + +#### 无需编译内核构建镜像 +例如,使用软件源中的内核包构建 openEuler 24.03 LTS SP2 版本 openEuler 树莓派镜像,执行命令:`sudo bash build.sh --board raspberrypi --kernel "" --branch "" --config "" --repo https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-24.03-LTS-SP2/generic.repo --name openEuler-24.03-LTS-raspi-aarch64-alpha1` -#### 快速构建(无需编译内核,推荐) >![](public_sys-resources/icon-notice.gif) **须知:** ->当前支持多个 openEuler 版本,即 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、24.03 LTS SP2 版本。 +>无需编译内核,使用软件源中的内核包,当前支持版本有 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、24.03 LTS SP2。 >如果构建包含 Xfce/UKUI/DDE/GNOME 桌面环境或者 DevStation 开发者工作站的镜像,需要注意五点: >1. 构建包含 Xfce 桌面环境的镜像,当前只支持 openEuler 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 版本。自 openEuler 24.03 LTS SP1 起,不再支持 Xfce 桌面环境。 >2. 构建包含 DDE 桌面环境的镜像,当前只支持 openEuler 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/24.03 LTS SP2 版本。 @@ -88,168 +171,68 @@ >4. 构建 DevStation 开发者工作站的镜像,当前只支持 openEuler 24.03 LTS SP1/25.03/24.03 LTS SP2 版本。 >5. 根据需要设置 -s/--spec,其具体意义见该参数的介绍部分。 -使用已有的树莓派内核、固件、蓝牙等 RPM 包构建镜像。 -构建镜像需执行命令: - -`sudo bash build-image.sh -d DIR -r REPO -n IMAGE_NAME -s SPEC` - -各个参数意义: - -1. -d, --dir DIR - - 构建镜像和临时文件的输出目录,默认为脚本所在目录。如果 `DIR` 不存在则会自动创建。 - - 脚本运行结束后,会提示镜像的存储位置,默认保存在 `DIR/raspi_output/img/` 下。 - -2. -r, --repo REPO_INFO - - 开发源 repo 文件的 URL 或者路径,也可以是开发源中资源库的 baseurl 列表。注意,如果该参数为资源库的 baseurl 列表,该参数需要使用双引号,各个 baseurl 之间以空格隔开。 - - 下面分别举例: - - 开发源 repo 文件的 URL,如 `https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-21.03/generic.repo`。 - - 开发源的 repo 文件路径: - - `./openEuler-21.03.repo`:生成 openEuler 21.03 版本的镜像,该文件内容参考 。 - - 资源库的 baseurl 列表,如 `"http://repo.openeuler.org/openEuler-21.03/OS/aarch64/ http://repo.openeuler.org/openEuler-21.03/EPOL/aarch64/"`。 - -3. -n, --name IMAGE_NAME - - 构建的镜像名称。 - - 例如,`openEuler-21.03.img`。默认为`openEuler-raspi-aarch64.img`,或者根据 `-n, --name IMAGE_NAME` 参数自动生成。 - -4. -s, --spec SPEC - - 构建的镜像版本: - - `headless`,无图形界面版的镜像。 - - `xfce`,带 Xfce 桌面以及中文字体、输入法等全部配套软件。 - - `ukui`,带 UKUI 桌面以及中文字体、输入法等全部配套软件。 - - `dde`,带 DDE 桌面以及中文字体、输入法等全部配套软件。 - - `gnome`,带 GNOME 桌面以及中文字体、输入法等全部配套软件。 - - `devstation`,带 GNOME 桌面、中文字体、输入法、大量开发工具和 IDE 等配套软件。 - - rpmlist 文件路径,其中包含镜像中要安装的软件列表,内容参考 [rpmlist](../scripts/raspberrypi/config/rpmlist)。 - - 默认使用 `headless` 选项。 - -5. -h, --help - - 显示帮助信息。 - -#### 完全构建(包括编译内核) - -包含编译内核、下载树莓派相关固件等过程,速度相对较慢。 +#### 使用自定义内核构建镜像 +例如,使用软件源中的内核包构建 openEuler 24.03 LTS SP2 版本 openEuler 树莓派镜像,执行命令:`sudo bash build.sh --board raspberrypi --kernel "https://gitee.com/openeuler/raspberrypi-kernel.git" --branch "OLK-6.6" --config "" --repo https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-24.03-LTS-SP2/generic.repo --name openEuler-24.03-LTS-raspi-aarch64-alpha1` >![](public_sys-resources/icon-notice.gif) **须知:** ->当前支持三个 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、24.03 LTS SP2 版本。 +>使用自定义内核,当前支持版本有 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、24.03 LTS SP2。 >如果构建包含 Xfce/UKUI/DDE 桌面环境或者 DevStation 开发者工作站的镜像,需要注意六点: >1. 构建包含 Xfce 桌面环境的镜像,当前只支持 openEuler 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 版本,需要选择对应内核源码和分支。自 openEuler 24.03 LTS SP1 起,不再支持 Xfce 桌面环境。 -> - openEuler 21.03:需要选择 [openEuler 内核](https://gitee.com/openeuler/kernel) 的 [openEuler-21.03](https://gitee.com/openeuler/kernel/tree/openEuler-21.03/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/kernel.git`,-b/--branch` 设置为 `openEuler-21.03`。 -> - openEuler 20.03 LTS SP2/20.03 LTS SP3:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-20.03-LTS](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-20.03-LTS/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-20.03-LTS`。 -> - openEuler 21.09:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-21.09](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-21.09/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-21.09`。 -> - openEuler 22.03 LTS:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.03-LTS](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.03-LTS/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.03-LTS`。 -> - openEuler 22.09:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.09](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.09/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.09`。 -> - openEuler 22.03 LTS SP1:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.03-LTS-SP1](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.03-LTS-SP1/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.03-LTS-SP1`。 -> - openEuler 23.03:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-23.03](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-23.03/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-23.03`。 -> - openEuler 22.03 LTS SP2:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.03-LTS-SP2](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.03-LTS-SP2/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.03-LTS-SP2`。 -> - openEuler 22.03 LTS SP3/22.03 LTS SP4:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [OLK-5.10](https://gitee.com/openeuler/raspberrypi-kernel/tree/OLK-5.10/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `OLK-5.10`。 -> - openEuler 24.03 LTS/24.09:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [OLK-6.6](https://gitee.com/openeuler/raspberrypi-kernel/tree/OLK-6.6/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `OLK-6.6`。 +> - openEuler 21.03:需要选择 [openEuler 内核](https://gitee.com/openeuler/kernel) 的 [openEuler-21.03](https://gitee.com/openeuler/kernel/tree/openEuler-21.03/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/kernel.git`,`-b/--branch` 设置为 `openEuler-21.03`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 20.03 LTS SP2/20.03 LTS SP3:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-20.03-LTS](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-20.03-LTS/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-20.03-LTS`,`-c/--config` 设置为 `openeuler-raspi_defconfig`。 +> - openEuler 21.09:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-21.09](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-21.09/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-21.09`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 22.03 LTS:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.03-LTS](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.03-LTS/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.03-LTS`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 22.09:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.09](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.09/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.09`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 22.03 LTS SP1:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.03-LTS-SP1](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.03-LTS-SP1/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.03-LTS-SP1`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 23.03:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-23.03](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-23.03/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-23.03`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 22.03 LTS SP2:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.03-LTS-SP2](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.03-LTS-SP2/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.03-LTS-SP2`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 22.03 LTS SP3/22.03 LTS SP4:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [OLK-5.10](https://gitee.com/openeuler/raspberrypi-kernel/tree/OLK-5.10/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `OLK-5.10`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 24.03 LTS/24.09:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [OLK-6.6](https://gitee.com/openeuler/raspberrypi-kernel/tree/OLK-6.6/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `OLK-6.6`,`-c/--config` 设置为空 `""`。 >2. 构建包含 UKUI 桌面环境的镜像,当前只支持 openEuler 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/24.03 LTS SP2 版本,需要选择对应内核源码和分支。 -> - openEuler 20.09:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-20.09](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-20.09/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-20.09`。 -> - openEuler 20.03 LTS SP1/20.03 LTS SP2/20.03 LTS SP3:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-20.03-LTS](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-20.03-LTS/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-20.03-LTS`。 -> - openEuler 21.03:需要选择 [openEuler 内核](https://gitee.com/openeuler/kernel) 的 [openEuler-21.03](https://gitee.com/openeuler/kernel/tree/openEuler-21.03/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/kernel.git`,-b/--branch` 设置为 `openEuler-21.03`。 -> - openEuler 21.09:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-21.09](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-21.09/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-21.09`。 -> - openEuler 22.03 LTS:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.03-LTS](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.03-LTS/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.03-LTS`。 -> - openEuler 22.09:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.09](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.09/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.09`。 -> - openEuler 22.03 LTS SP1:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.03-LTS-SP1](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.03-LTS-SP1/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.03-LTS-SP1`。 -> - openEuler 23.03:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-23.03](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-23.03/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-23.03`。 -> - openEuler 22.03 LTS SP2:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.03-LTS-SP2](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.03-LTS-SP2/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.03-LTS-SP2`。 -> - openEuler 22.03 LTS SP3/22.03 LTS SP4:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [OLK-5.10](https://gitee.com/openeuler/raspberrypi-kernel/tree/OLK-5.10/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `OLK-5.10`。 -> - openEuler 24.03 LTS/24.09/24.03 LTS SP1/24.03 LTS SP2:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [OLK-6.6](https://gitee.com/openeuler/raspberrypi-kernel/tree/OLK-6.6/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `OLK-6.6`。 -> - 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`。 +> - openEuler 20.09:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-20.09](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-20.09/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-20.09`,`-c/--config` 设置为 `openeuler-raspi_defconfig`。 +> - openEuler 20.03 LTS SP1/20.03 LTS SP2/20.03 LTS SP3:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-20.03-LTS](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-20.03-LTS/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-20.03-LTS`,`-c/--config` 设置为 `openeuler-raspi_defconfig`。 +> - openEuler 21.03:需要选择 [openEuler 内核](https://gitee.com/openeuler/kernel) 的 [openEuler-21.03](https://gitee.com/openeuler/kernel/tree/openEuler-21.03/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/kernel.git`,-b/--branch` 设置为 `openEuler-21.03`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 21.09:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-21.09](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-21.09/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-21.09`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 22.03 LTS:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.03-LTS](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.03-LTS/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.03-LTS`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 22.09:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.09](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.09/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.09`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 22.03 LTS SP1:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.03-LTS-SP1](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.03-LTS-SP1/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.03-LTS-SP1`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 23.03:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-23.03](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-23.03/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-23.03`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 22.03 LTS SP2:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.03-LTS-SP2](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.03-LTS-SP2/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.03-LTS-SP2`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 22.03 LTS SP3/22.03 LTS SP4:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [OLK-5.10](https://gitee.com/openeuler/raspberrypi-kernel/tree/OLK-5.10/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `OLK-5.10`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 24.03 LTS/24.09/24.03 LTS SP1/24.03 LTS SP2:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [OLK-6.6](https://gitee.com/openeuler/raspberrypi-kernel/tree/OLK-6.6/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `OLK-6.6`,`-c/--config` 设置为空 `""`。 +> - 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`,`-c/--config` 设置为空 `""`。 >3. 构建包含 DDE 桌面环境的镜像,当前只支持 openEuler 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/24.03 LTS SP2 版本。 -> - openEuler 20.03 LTS SP1/20.03 LTS SP2/20.03 LTS SP3:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-20.03-LTS](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-20.03-LTS/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-20.03-LTS`。 -> - openEuler 21.03:需要选择 [openEuler 内核](https://gitee.com/openeuler/kernel) 的 [openEuler-21.03](https://gitee.com/openeuler/kernel/tree/openEuler-21.03/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/kernel.git`,-b/--branch` 设置为 `openEuler-21.03`。 -> - openEuler 21.09:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-21.09](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-21.09/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-21.09`。 -> - openEuler 22.03 LTS:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.03-LTS](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.03-LTS/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.03-LTS`。 -> - openEuler 22.09:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.09](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.09/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.09`。 -> - openEuler 22.03 LTS SP1:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.03-LTS-SP1](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.03-LTS-SP1/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.03-LTS-SP1`。 -> - openEuler 23.03:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-23.03](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-23.03/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-23.03`。 -> - openEuler 22.03 LTS SP2:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.03-LTS-SP2](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.03-LTS-SP2/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.03-LTS-SP2`。 -> - openEuler 22.03 LTS SP3/22.03 LTS SP4:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [OLK-5.10](https://gitee.com/openeuler/raspberrypi-kernel/tree/OLK-5.10/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `OLK-5.10`。 -> - openEuler 24.03 LTS/24.09/24.03 LTS SP1/24.03 LTS SP2:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [OLK-6.6](https://gitee.com/openeuler/raspberrypi-kernel/tree/OLK-6.6/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `OLK-6.6`。 -> - 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`。 +> - openEuler 20.03 LTS SP1/20.03 LTS SP2/20.03 LTS SP3:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-20.03-LTS](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-20.03-LTS/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-20.03-LTS`,`-c/--config` 设置为 `openeuler-raspi_defconfig`。 +> - openEuler 21.03:需要选择 [openEuler 内核](https://gitee.com/openeuler/kernel) 的 [openEuler-21.03](https://gitee.com/openeuler/kernel/tree/openEuler-21.03/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/kernel.git`,-b/--branch` 设置为 `openEuler-21.03`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 21.09:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-21.09](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-21.09/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-21.09`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 22.03 LTS:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.03-LTS](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.03-LTS/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.03-LTS`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 22.09:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.09](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.09/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.09`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 22.03 LTS SP1:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.03-LTS-SP1](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.03-LTS-SP1/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.03-LTS-SP1`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 23.03:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-23.03](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-23.03/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-23.03`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 22.03 LTS SP2:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [openEuler-22.03-LTS-SP2](https://gitee.com/openeuler/raspberrypi-kernel/tree/openEuler-22.03-LTS-SP2/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `openEuler-22.03-LTS-SP2`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 22.03 LTS SP3/22.03 LTS SP4:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [OLK-5.10](https://gitee.com/openeuler/raspberrypi-kernel/tree/OLK-5.10/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `OLK-5.10`,`-c/--config` 设置为 `bcm2711_defconfig`。 +> - openEuler 24.03 LTS/24.09/24.03 LTS SP1/24.03 LTS SP2:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [OLK-6.6](https://gitee.com/openeuler/raspberrypi-kernel/tree/OLK-6.6/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `OLK-6.6`,`-c/--config` 设置为空 `""`。 +> - 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`,`-c/--config` 设置为空 `""`。 >4. 构建包含 GNOME 桌面环境的镜像,当前只支持 openEuler 24.03 LTS/22.03 LTS SP4/24.09/24.03 LTS SP1/25.03/24.03 LTS SP2 版本。 -> - openEuler 24.03 LTS/24.09/24.03 LTS SP1/24.03 LTS SP2:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [OLK-6.6](https://gitee.com/openeuler/raspberrypi-kernel/tree/OLK-6.6/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `OLK-6.6`。 -> - 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`。 +> - openEuler 24.03 LTS/24.09/24.03 LTS SP1/24.03 LTS SP2:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [OLK-6.6](https://gitee.com/openeuler/raspberrypi-kernel/tree/OLK-6.6/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `OLK-6.6`,`-c/--config` 设置为空 `""`。 +> - 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`,`-c/--config` 设置为空 `""`。 >5. 构建 DevStation 开发者工作站的镜像,当前只支持 openEuler 24.03 LTS SP1/25.03/24.03 LTS SP2 版本。 -> - openEuler 24.03 LTS SP1/24.03 LTS SP2:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [OLK-6.6](https://gitee.com/openeuler/raspberrypi-kernel/tree/OLK-6.6/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `OLK-6.6`。 -> - 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`。 +> - openEuler 24.03 LTS SP1/24.03 LTS SP2:需要选择 [openEuler-RaspberryPi 内核](https://gitee.com/openeuler/raspberrypi-kernel) 的 [OLK-6.6](https://gitee.com/openeuler/raspberrypi-kernel/tree/OLK-6.6/) 分支,即将参数 `-k/--kernel` 设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git`,`-b/--branch` 设置为 `OLK-6.6`,`-c/--config` 设置为空 `""`。 +> - 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`,`-c/--config` 设置为空 `""`。 >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/img/` 下。 - -各个参数意义: - -1. -n, --name IMAGE_NAME - - 构建的镜像名称。 - - 例如,`openEuler-20.03-LTS-SP1.img`。默认为`openEuler-raspi-aarch64.img`,或者根据 `-n, --name IMAGE_NAME` 参数自动生成。 - -2. -k, --kernel KERNEL_URL - - 内核源码仓库的项目地址,默认为 `https://gitee.com/openeuler/raspberrypi-kernel.git`。可根据需要设置为 `git@gitee.com:openeuler/raspberrypi-kernel.git` 或 `git@gitee.com:openeuler/kernel.git`。 - -3. -b, --branch KERNEL_BRANCH - - 内核源码的对应分支,默认为 `openEuler-20.03-LTS`,推荐使用分支 `openEuler-21.09`、`openEuler-20.03-LTS` 或 `openEuler-20.09`。 - -4. -c, --config KERNEL_DEFCONFIG - - 内核编译使用的配置文件名称或路径,默认为 `openeuler-raspi_defconfig`。如果该参数为配置文件名称,请确保该文件在内核源码的目录 arch/arm64/configs 下。 - -5. -r, --repo REPO_INFO - - 开发源 repo 文件的 URL 或者路径,也可以是开发源中资源库的 baseurl 列表。注意,如果该参数为资源库的 baseurl 列表,该参数需要使用双引号,各个 baseurl 之间以空格隔开。 - - 下面分别举例: - - 开发源 repo 文件的 URL,如 `https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-20.03-LTS-SP1/generic.repo` - - 开发源的 repo 文件路径: - - `./openEuler-20.03-LTS-SP1.repo`:生成 openEuler 20.03 LTS SP1 版本的镜像,该文件内容参考 。 - - 资源库的 baseurl 列表,如 `"http://repo.openeuler.org/openEuler-20.03-LTS-SP1/OS/aarch64/ http://repo.openeuler.org/openEuler-20.03-LTS-SP1/EPOL/aarch64/"`。 - -6. -s, --spec SPEC - - 构建的镜像版本: - - `headless`,无图形界面版的镜像。 - - `xfce`,带 Xfce 桌面以及中文字体、输入法等全部配套软件。 - - `ukui`,带 UKUI 桌面以及中文字体、输入法等全部配套软件。 - - `dde`,带 DDE 桌面以及中文字体、输入法等全部配套软件。 - - `gnome`,带 GNOME 桌面以及中文字体、输入法等全部配套软件。 - - `devstation`,带 GNOME 桌面、中文字体、输入法、大量开发工具和 IDE 等配套软件。 - - rpmlist 文件路径,该文件包含镜像中要安装的软件列表,内容参考 [rpmlist](../scripts/raspberrypi/config-common/rpmlist)。 - - 默认使用 `headless` 选项。 - -7. --cores N - - 并行编译的数量,根据运行脚本的宿主机 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` +`sudo bash build-image-docker.sh -d DOCKER_FILE --board BOARD_CONFIG -n NAME -k KERNEL_URL -b KERNEL_BRANCH -c KERNEL_DEFCONFIG -r REPO_INFO -s SPEC --cores N` -脚本运行结束后,镜像默认保存在脚本运行所在目录的 `raspi_output/img/` 下。 +脚本运行结束后,会提示镜像的存储位置,镜像默认保存在脚本运行所在目录的 `build/YYYY-MM-DD/` 下。 注意!!!运行该脚本前,需安装 Docker 运行环境。该脚本会自动将 `-d DOCKER_FILE` 参数对应的 Docker 镜像导入本机系统中。 -除参数 `-d DOCKER_FILE` 外,剩余参数与 [快速构建(无需编译内核,推荐)](#快速构建无需编译内核推荐) 或 [完全构建(包括编译内核)](#完全构建包括编译内核) 中对应参数一致: +除参数 `-d DOCKER_FILE` 外,其余参数与 [构建镜像章节](#构建镜像) 中 [build.sh](../scripts/build.sh) 对应参数一致: 1. -d, --docker DOCKER_FILE diff --git a/documents/瑞芯微等开发板.md b/documents/Rockchip.md similarity index 84% rename from documents/瑞芯微等开发板.md rename to documents/Rockchip.md index 9ce232f..5e031be 100644 --- a/documents/瑞芯微等开发板.md +++ b/documents/Rockchip.md @@ -9,8 +9,10 @@ - [最新镜像](#最新镜像) - [镜像构建](#镜像构建) - [准备环境](#准备环境) - - [一次构建](#一次构建) + - [构建完整镜像](#构建完整镜像) - [Docker 容器内构建](#docker-容器内构建) + - [使用脚本构建镜像需执行命令:](#使用脚本构建镜像需执行命令) + - [使用 Docker 分步构建](#使用-docker-分步构建) - [顺序构建](#顺序构建) - [刷写镜像](#刷写镜像) - [刷写到 SD 卡](#刷写到-sd-卡) @@ -25,7 +27,7 @@ - [openEuler镜像的构建](rockchip/openEuler镜像的构建.md) - [刷写EMMC镜像](rockchip/刷写EMMC镜像.md) - [顺序构建](rockchip/顺序构建.md) - - [一次构建命令列举](rockchip/一次构建命令列举.md) + - [构建完整镜像命令列举](rockchip/构建完整镜像命令列举.md) - [基于Firefly-SDK编译Firefly-RK3399的内核镜像](rockchip/基于Firefly-SDK编译Firefly-RK3399的内核镜像.md) - [打包 ITX-RK3588J 一体化烧写镜像](rockchip/打包ITX-RK3588J一体化烧写镜像.md) - [设置 SELinux](rockchip/设置SELinux.md) @@ -33,12 +35,12 @@ - [openEuler 适配指南](rockchip/openEuler适配指南.md) - [在openEuler上使用RKNPU](rockchip/在openEuler上使用RKNPU.md) - [在openEuler上运行RKLLM](rockchip/在openEuler上运行RKLLM.md) -- [scripts](../scripts/rockchip): 构建 openEuler RK3399 等开发板镜像的脚本 - - [一次构建脚本](../scripts/rockchip/build.sh) - - [boot 镜像构建脚本](../scripts/rockchip/build_boot.sh) - - [rootfs 镜像构建脚本](../scripts/rockchip/build_rootfs.sh) - - [u-boot 编译脚本](../scripts/rockchip/build_u-boot.sh) - - [可启动镜像生成脚本](../scripts/rockchip/gen_image.sh) +- [scripts](../scripts): 构建 openEuler 树莓派、RK3399 等开发板镜像的脚本 + - [构建完整镜像](scripts/build.sh) + - [使用 Docker 构建完整镜像](./scripts/build-image-docker.sh) + - [构建 boot 镜像](scripts/build_boot.sh) + - [构建 rootfs 镜像](scripts/build_rootfs.sh) + - [将 u-boot、boot、rootfs 合并成一个完整镜像](scripts/gen_image.sh) ## 最新镜像 @@ -65,9 +67,9 @@ 详细过程参见 [openEuler 镜像的构建](rockchip/openEuler镜像的构建.md)。 -构建脚本见 [scripts/rockchip](../scripts/rockchip)。 +构建脚本见 [scripts](../scripts)。 -### 一次构建 +### 构建完整镜像 构建镜像需执行命令: @@ -89,15 +91,15 @@ 各个参数意义: -1. --board BOARD_CONFIG +1. --board BOARD_CONFIG - 适用的开发板的版型配置文件在 [boards](../scripts/rockchip/boards) 文件夹中,示例文件 [sample.conf](../scripts/rockchip/boards/sample.conf),默认为 `firefly-rk3399`。 + 适用的开发板的版型配置文件在 [boards](../scripts/boards) 文件夹中,示例文件 [sample.conf](../scripts/boards/sample.conf),默认为 `firefly-rk3399`。 其包括的配置参数意义如下: - platform=PLATFORM - 开发板所使用的平台,目前支持的平台有:rockchip、phytium,默认为 `rockchip`。 + 开发板所使用的平台,目前支持的平台有:broadcom、rockchip、phytium,默认为 `rockchip`。 - device-tree=DTB_NAME @@ -105,17 +107,17 @@ - ubootconfig=UBOOT_DEFCONFIG - 开发板对应的 defconfig 的文件名称,对应 [u-boot/configs](https://github.com/u-boot/u-boot/tree/master/configs) 下 `UBOOT_DEFCONFIG` 文件,默认为 `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,可以将此项设置为空:`ubootconfig=`。 -2. -n, --name IMAGE_NAME +2. -n, --name IMAGE_NAME 构建的镜像名称,例如:`openEuler-20.03-LTS-Firefly-RK3399-aarch64-alpha1` 或 `openEuler-21.09-Firefly-RK3399-aarch64-alpha1`。 -3. -k, --kernel KERNEL_URL +3. -k, --kernel KERNEL_URL - 内核源码仓库的项目地址,默认为 `https://gitee.com/openeuler/rockchip-kernel.git`。可根据需要设置为 `git@gitee.com:openeuler/rockchip-kernel.git` 或 `git@gitee.com:openeuler/kernel.git`。 + 内核源码仓库的项目地址,默认为 `https://gitee.com/openeuler/rockchip-kernel.git`。可根据需要设置为 `git@gitee.com:openeuler/rockchip-kernel.git` 或 `git@gitee.com:openeuler/kernel.git`。 -4. -b, --branch KERNEL_BRANCH +4. -b, --branch KERNEL_BRANCH 内核源码的对应分支,默认为 openEuler-20.03-LTS。根据 -k 参数有以下选择: @@ -128,13 +130,13 @@ 内核编译使用的配置文件名称或路径,默认为 `openeuler_rockchip_defconfig`。如果该参数为配置文件名称,请确保该文件在内核源码的目录 arch/arm64/configs 下。 -6. -r, --repo REPO_INFO +6. -r, --repo REPO_INFO - 开发源 repo 文件的 URL 或者路径,也可以是开发源中资源库的 baseurl 列表。注意,如果该参数为资源库的 baseurl 列表,该参数需要使用双引号,各个 baseurl 之间以空格隔开。 + 软件源 repo 文件的 URL 或者路径,也可以是软件源中资源库的 baseurl 列表。注意,如果该参数为资源库的 baseurl 列表,该参数需要使用双引号,各个 baseurl 之间以空格隔开。 下面分别举例: - - 开发源 repo 文件的 URL,如 `https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-20.03-LTS/generic.repo`。 - - 开发源的 repo 文件路径: + - 软件源 repo 文件的 URL,如 `https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-20.03-LTS/generic.repo`。 + - 软件源的 repo 文件路径: `./openEuler-20.03-LTS.repo`:生成 openEuler 20.03 LTS 版本的镜像,该文件内容参考 。 @@ -147,7 +149,7 @@ - `xfce`,带 Xfce 桌面以及中文字体、输入法等全部配套软件。 - `ukui`,带 UKUI 桌面及必要的配套软件(不包括中文字体以及输入法)。 - `dde`,带 DDE 桌面及必要的配套软件(不包括中文字体以及输入法)。 - - rpmlist 文件路径,其中包含镜像中要安装的软件列表,内容参考 [rpmlist](../scripts/rockchip/configs/rpmlist)。 + - rpmlist 文件路径,其中包含镜像中要安装的软件列表,内容参考 [rpmlist](../scripts/configs/rockchip//rpmlist)。 默认使用 `headless` 选项。 @@ -173,99 +175,98 @@ Firefly Wiki

Rockchip RK3399

openEuler 20.03 LTS, openEuler 22.03 LTS SP2, openEuler 22.03 LTS SP3, openEuler 24.03 LTS

-一次构建命令 +构建完整镜像命令 - +
  • Radxa Rock Pi 4A
Radxa Wiki

Rockchip RK3399

openEuler 20.03 LTS, openEuler 22.03 LTS

-一次构建命令 +构建完整镜像命令 - +
  • Firefly ROC-RK3566-PC
Firefly Wiki

Rockchip RK3566

openEuler 22.03 LTS SP2, openEuler 22.03 LTS SP3, openEuler 24.03 LTS

-一次构建命令 +构建完整镜像命令 - +
  • Firefly ROC-RK3568-PC-SE
Firefly Wiki

Rockchip RK3568

openEuler 22.03 LTS SP2, openEuler 22.03 LTS SP3

-一次构建命令 +构建完整镜像命令 - +
  • Firefly ROC-RK3568-PC
Firefly Wiki

Rockchip RK3568

openEuler 22.03 LTS SP2, openEuler 22.03 LTS SP3

-一次构建命令 +构建完整镜像命令 - +
  • BananaPi Armsom-Sige5
Armsom Wiki

Rockchip RK3576

openEuler 22.03 LTS SP3

-一次构建命令 +构建完整镜像命令 - +
  • Firefly ITX-3588J
Firefly Wiki

Rockchip RK3588

openEuler 22.03 LTS SP3

-一次构建命令 +构建完整镜像命令 - +
  • Firefly ROC-RK3588S-PC
Firefly Wiki

Rockchip RK3588

openEuler 22.03 LTS SP2, openEuler 22.03 LTS SP3

-一次构建命令 +构建完整镜像命令 - +
  • Radxa Rock-5B
Radxa Wiki

Rockchip RK3588

openEuler 22.03 LTS SP2, openEuler 22.03 LTS SP3

-一次构建命令 +构建完整镜像命令 - +
  • Phytium Pi 4GB
Phytium Website

Phytium

openEuler 22.03 LTS SP3, openEuler 24.03 LTS

-一次构建命令 +构建完整镜像命令 - +
  • Orange Pi Zero 2
OrangePi Wiki

Allwinner H616

openEuler 20.03 LTS, openEuler 24.03 LTS

-一次构建命令 +构建完整镜像命令 - +
  • Longan Pi 3H
Sipeed Wiki

Allwinner H618

openEuler 24.03 LTS

-一次构建命令 +构建完整镜像命令 - ### Docker 容器内构建 #### 使用脚本构建镜像需执行命令: -`sudo bash build-image-docker.sh --board BOARD_CONFIG -d DOCKER_FILE -n IMAGE_NAME -k KERNEL_URL -b KERNEL_BRANCH -c KERNEL_DEFCONFIG -r REPO --cores N` +`sudo bash build-image-docker.sh -d DOCKER_FILE --board BOARD_CONFIG -n NAME -k KERNEL_URL -b KERNEL_BRANCH -c KERNEL_DEFCONFIG -r REPO_INFO -s SPEC --cores N` 脚本运行结束后,镜像默认保存在脚本运行所在目录的 `build/YYYY-MM-DD` 下。 注意!!!运行该脚本前,需安装 Docker 运行环境。该脚本会自动将 DOCKER_FILE 参数对应的 Docker 镜像导入本机系统中。 -除参数 DOCKER_FILE 外,剩余参数与[一次构建](#一次构建)中对应参数一致: +除参数 DOCKER_FILE 外,剩余参数与[构建完整镜像](#构建完整镜像)中对应参数一致: 1. -d, --docker DOCKER_FILE diff --git a/documents/rockchip/openEuler适配指南.md b/documents/rockchip/openEuler适配指南.md index ea5b674..efd30b2 100644 --- a/documents/rockchip/openEuler适配指南.md +++ b/documents/rockchip/openEuler适配指南.md @@ -36,7 +36,7 @@ ### 使用 BSP 内核 -如果想使用 BSP 内核进行测试,可以在构建指令中指定 BSP 内核的仓库地址及对应分支,参考[一次构建](../瑞芯微等开发板.md#一次构建)。 +如果想使用 BSP 内核进行测试,可以在构建指令中指定 BSP 内核的仓库地址及对应分支,参考 [构建完整镜像](../Rockchip.md#构建完整镜像)。 ## 准备 u-boot @@ -46,17 +46,17 @@ - RK35xx - 需要将编译好的 u-boot 二进制文件放到 [u-boot 目录](../../scripts/rockchip/bin/u-boot/)下,并在版型文件中增加文件路径。 + 需要将编译好的 u-boot 二进制文件放到 [u-boot 目录](../../scripts/bin/rockchip/u-boot/)下,并在版型文件中增加文件路径。 ## 准备 firmware 文件 -这里提到的 firmware 是开发板的板载蓝牙和 WiFi 的驱动固件,可参考[本框架储存的的 firmware 文件](../../scripts/rockchip/bin/linux-firmware/)。 +这里提到的 firmware 是开发板的板载蓝牙和 WiFi 的驱动固件,可参考[本框架储存的的 firmware 文件](../../scripts/bin/rockchip/linux-firmware/)。 请确定开发板所使用的 firmware,并提交至仓库的相应目录下。 ## 编写版型文件 -适用的开发板的版型配置文件在 [boards](../../scripts/rockchip/boards/) 文件夹中,版型文件示例如下: +适用的开发板的版型配置文件在 [boards](../../scripts/boards/) 文件夹中,版型文件示例如下: ``` ubootconfig=firefly-rk3399_defconfig #Required! The name of defconfig file when compiling u-boot, which defaults to firefly-rk3399_defconfig. @@ -77,13 +77,13 @@ POST_BOARD_OVERLAY() { 1. ubootconfig=UBOOT_DEFCONFIG - 开发板对应的 defconfig 的文件名称,对应 [u-boot/configs](https://github.com/u-boot/u-boot/tree/master/configs) 下 `UBOOT_DEFCONFIG` 文件,默认为 `firefly-rk3399_defconfig`;如需在 RK3568/RK3588 开发板上使用预编译的 u-boot,可以将此项设置为 `none`。 + 开发板对应的 defconfig 的文件名称,对应 [u-boot/configs](https://github.com/u-boot/u-boot/tree/master/configs) 下 `UBOOT_DEFCONFIG` 文件,默认为 `firefly-rk3399_defconfig`;如需在 RK3568/RK3588 开发板上使用预编译的 u-boot,可以将此项设置为空:`ubootconfig=`。 - 如果设置为 `none`,则还需添加以下附属配置参数: + 如果设置为空 ``,则还需添加以下附属配置参数: - local_uboot_dir - 开发板 u-boot 配置设置为 `none` 时,本地预编译的 u-boot 二进制文件的位置。 + 开发板 u-boot 配置设置为空时,本地预编译的 u-boot 二进制文件的位置。 2. dtb_name=DTB_NAME @@ -114,11 +114,11 @@ POST_BOARD_OVERLAY() { 6. POST_BOARD_OVERLAY() - `POST_BOARD_OVERLAY()` 是执行复制 firmware 文件到根目录以及对目标开发板根目录执行特定操作的函数,其使用的变量与 [build_rootfs.sh](../../scripts/rockchip/build_rootfs.sh) 相同,通常包含以下两个变量: + `POST_BOARD_OVERLAY()` 是执行复制 firmware 文件到根目录以及对目标开发板根目录执行特定操作的函数,其使用的变量与 [build_rootfs.sh](../../scripts/build_rootfs.sh) 相同,通常包含以下两个变量: - nonfree_bin_dir - 该参数为储存 firmware 的文件夹,默认为 [${workdir}/../bin](../../scripts/rockchip/bin/)。 + 该参数为储存 firmware 的文件夹,默认为 [../../scripts/bin/rockchip/](../../scripts/bin/rockchip/)。 - rootfs_dir @@ -126,4 +126,4 @@ POST_BOARD_OVERLAY() { ## 运行测试 -通过运行脚本[一次构建](../瑞芯微等开发板.md#一次构建),将 `--board` 参数设置为新增开发板的版型文件来运行测试。 +通过运行脚本 [构建完整镜像](../Rockchip.md#构建完整镜像),将 `--board` 参数设置为新增开发板的版型文件来运行测试。 diff --git a/documents/rockchip/openEuler镜像的构建.md b/documents/rockchip/openEuler镜像的构建.md index a4ca32c..47c3c54 100644 --- a/documents/rockchip/openEuler镜像的构建.md +++ b/documents/rockchip/openEuler镜像的构建.md @@ -441,7 +441,7 @@ dnf --installroot=$WORKDIR/rootfs/ install -y alsa-utils wpa_supplicant vim net- ``` 3. 拷贝 wifi 配置文件,蓝牙启动文件 - 1. 下载 [无线配置目录](../../scripts/rockchip/bin/wireless) 到 $WORKDIR + 1. 下载 [无线配置目录](../../scripts/bin/rockchip/wireless) 到 $WORKDIR 2. 拷贝文件 : ``` diff --git a/documents/rockchip/使用Docker构建镜像.md b/documents/rockchip/使用Docker构建镜像.md index 932ca27..12204e2 100644 --- a/documents/rockchip/使用Docker构建镜像.md +++ b/documents/rockchip/使用Docker构建镜像.md @@ -122,7 +122,7 @@ dnf install git -y ## 容器内拉取并运行构建框架 -过程参见[镜像构建](../瑞芯微等开发板.md#镜像构建)。 +过程参见[镜像构建](../Rockchip.md#镜像构建)。 ## 将容器内构建好的镜像复制到主机 diff --git a/documents/rockchip/刷写EMMC镜像.md b/documents/rockchip/刷写EMMC镜像.md index 6df1ff8..7dd6784 100644 --- a/documents/rockchip/刷写EMMC镜像.md +++ b/documents/rockchip/刷写EMMC镜像.md @@ -47,8 +47,8 @@ 1. 生成的刷写文件压缩包为 build 下或项目主页发布的的压缩后的 RAW 原始镜像(需要解压):openEuler-VERSION-BOARD-RELEASE.img.xz。 2. 项目主页 scripts/bin 目录下提供的: - - 如果是 RK3399,使用 [rk3399_loader.bin](../../scripts/rockchip/bin/rk3399_loader.bin) - - 如果是 RK3588,使用 [rk3588_loader.bin](../../scripts/rockchip/bin/rk3588_loader.bin) + - 如果是 RK3399,使用 [rk3399_loader.bin](../../scripts/bin/rockchip/rk3399_loader.bin) + - 如果是 RK3588,使用 [rk3588_loader.bin](../../scripts/bin/rockchip/rk3588_loader.bin) 3. 下载版本不小于 2.92 的 [RKDevTool 工具](https://dl.radxa.com/tools/windows/windows_RKDevTool_Release_v2.92.zip)。 diff --git a/documents/rockchip/一次构建命令列举.md b/documents/rockchip/构建完整镜像命令列举.md similarity index 98% rename from documents/rockchip/一次构建命令列举.md rename to documents/rockchip/构建完整镜像命令列举.md index e1be251..8c57f18 100644 --- a/documents/rockchip/一次构建命令列举.md +++ b/documents/rockchip/构建完整镜像命令列举.md @@ -1,4 +1,4 @@ -# 一次构建命令列举 +# 构建完整镜像命令列举 - [描述](#描述) - [适用的 RK3399 开发板](#适用的-rk3399-开发板) @@ -10,7 +10,7 @@ ## 描述 -本文档介绍了支持的开发板以及对应的一次构建命令。 +本文档介绍了支持的开发板以及构建对应开发板完整镜像的命令。 ### 适用的 RK3399 开发板: diff --git a/documents/rockchip/顺序构建.md b/documents/rockchip/顺序构建.md index 5031b37..97fb22a 100644 --- a/documents/rockchip/顺序构建.md +++ b/documents/rockchip/顺序构建.md @@ -23,7 +23,7 @@ 1. --board BOARD_CONFIG - 适用的开发板的版型配置文件在 [boards](../scripts/rockchip/boards) 文件夹中,示例文件 [sample.conf](../scripts/rockchip/boards/sample.conf),默认为 `firefly-rk3399`。其包括的配置参数意义见[版型文件](./openEuler适配指南.md#编写版型文件)。 + 适用的开发板的版型配置文件在 [boards](../scripts/boards) 文件夹中,示例文件 [sample.conf](../scripts/boards/sample.conf),默认为 `firefly-rk3399`。其包括的配置参数意义见[版型文件](./openEuler适配指南.md#编写版型文件)。 2. -h, --help @@ -42,7 +42,7 @@ 1. --board BOARD_CONFIG - 适用的开发板的版型配置文件在 [boards](../scripts/rockchip/boards) 文件夹中,示例文件 [sample.conf](../scripts/rockchip/boards/sample.conf),默认为 `firefly-rk3399`。其包括的配置参数意义见[版型文件](./openEuler适配指南.md#编写版型文件)。 + 适用的开发板的版型配置文件在 [boards](../scripts/boards) 文件夹中,示例文件 [sample.conf](../scripts/boards/sample.conf),默认为 `firefly-rk3399`。其包括的配置参数意义见[版型文件](./openEuler适配指南.md#编写版型文件)。 2. -k, --kernel KERNEL_URL @@ -78,15 +78,15 @@ 1. --board BOARD_CONFIG - 适用的开发板的版型配置文件在 [boards](../scripts/rockchip/boards) 文件夹中,示例文件 [sample.conf](../scripts/rockchip/boards/sample.conf),默认为 `firefly-rk3399`。其包括的配置参数意义见[版型文件](./openEuler适配指南.md#编写版型文件)。 + 适用的开发板的版型配置文件在 [boards](../scripts/boards) 文件夹中,示例文件 [sample.conf](../scripts/boards/sample.conf),默认为 `firefly-rk3399`。其包括的配置参数意义见[版型文件](./openEuler适配指南.md#编写版型文件)。 2. -r, --repo REPO_INFO - 开发源 repo 文件的 URL 或者路径,也可以是开发源中资源库的 baseurl 列表。注意,如果该参数为资源库的 baseurl 列表,该参数需要使用双引号,各个 baseurl 之间以空格隔开。 + 软件源 repo 文件的 URL 或者路径,也可以是软件源中资源库的 baseurl 列表。注意,如果该参数为资源库的 baseurl 列表,该参数需要使用双引号,各个 baseurl 之间以空格隔开。 下面分别举例: - - 开发源 repo 文件的 URL,如 `https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-20.03-LTS-SP2/generic.repo`。 - - 开发源的 repo 文件路径: + - 软件源 repo 文件的 URL,如 `https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-20.03-LTS-SP2/generic.repo`。 + - 软件源的 repo 文件路径: `./openEuler-20.03-LTS.repo`:生成 openEuler 20.03 LTS 版本的镜像,该文件内容参考 。 @@ -109,7 +109,7 @@ - `xfce`,带 Xfce 桌面以及中文字体、输入法等全部配套软件。 - `ukui`,带 UKUI 桌面及必要的配套软件(不包括中文字体以及输入法)。 - `dde`,带 DDE 桌面及必要的配套软件(不包括中文字体以及输入法)。 - - rpmlist 文件路径,其中包含镜像中要安装的软件列表,内容参考 [rpmlist](../../scripts/rockchip/configs/rpmlist)。 + - rpmlist 文件路径,其中包含镜像中要安装的软件列表,内容参考 [rpmlist](../../scripts/configs/rockchip/rpmlist)。 默认使用 `headless` 选项。 @@ -132,7 +132,7 @@ 1. --board BOARD_CONFIG - 适用的开发板的版型配置文件在 [boards](../scripts/rockchip/boards) 文件夹中,示例文件 [sample.conf](../scripts/rockchip/boards/sample.conf),默认为 `firefly-rk3399`。其包括的配置参数意义见[版型文件](./openEuler适配指南.md#编写版型文件)。 + 适用的开发板的版型配置文件在 [boards](../scripts/boards) 文件夹中,示例文件 [sample.conf](../scripts/boards/sample.conf),默认为 `firefly-rk3399`。其包括的配置参数意义见[版型文件](./openEuler适配指南.md#编写版型文件)。 2. -n, --name IMAGE_NAME diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800/aic_userconfig.txt b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800/aic_userconfig.txt similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800/aic_userconfig.txt rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800/aic_userconfig.txt diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fmacfw.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fmacfw.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fmacfw.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fmacfw.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fmacfw_m2d.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fmacfw_m2d.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fmacfw_m2d.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fmacfw_m2d.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fmacfw_no_msg_ep.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fmacfw_no_msg_ep.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fmacfw_no_msg_ep.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fmacfw_no_msg_ep.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fmacfw_no_msg_ep_rf.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fmacfw_no_msg_ep_rf.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fmacfw_no_msg_ep_rf.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fmacfw_no_msg_ep_rf.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fmacfw_rf.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fmacfw_rf.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fmacfw_rf.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fmacfw_rf.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_adid.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_adid.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_adid.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_adid.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_adid_rf.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_adid_rf.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_adid_rf.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_adid_rf.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_adid_u03.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_adid_u03.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_adid_u03.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_adid_u03.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_ble_scan.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_ble_scan.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_ble_scan.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_ble_scan.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_ble_scan_ad_filter_dcdc.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_ble_scan_ad_filter_dcdc.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_ble_scan_ad_filter_dcdc.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_ble_scan_ad_filter_dcdc.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_ble_scan_ad_filter_ldo.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_ble_scan_ad_filter_ldo.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_ble_scan_ad_filter_ldo.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_ble_scan_ad_filter_ldo.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_patch.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_patch.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_patch.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_patch.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_patch_rf.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_patch_rf.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_patch_rf.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_patch_rf.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_patch_table.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_patch_table.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_patch_table.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_patch_table.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_patch_table_u03.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_patch_table_u03.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_patch_table_u03.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_patch_table_u03.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_patch_u03.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_patch_u03.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800/fw_patch_u03.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800/fw_patch_u03.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800/m2d_ota.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800/m2d_ota.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800/m2d_ota.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800/m2d_ota.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800D80/aic_userconfig_8800d80.txt b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800D80/aic_userconfig_8800d80.txt similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800D80/aic_userconfig_8800d80.txt rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800D80/aic_userconfig_8800d80.txt diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800D80/calibmode_8800d80.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800D80/calibmode_8800d80.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800D80/calibmode_8800d80.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800D80/calibmode_8800d80.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800D80/fmacfw_8800d80_u02.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800D80/fmacfw_8800d80_u02.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800D80/fmacfw_8800d80_u02.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800D80/fmacfw_8800d80_u02.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800D80/fw_adid_8800d80_u02.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800D80/fw_adid_8800d80_u02.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800D80/fw_adid_8800d80_u02.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800D80/fw_adid_8800d80_u02.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800D80/fw_ble_scan_ad_filter.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800D80/fw_ble_scan_ad_filter.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800D80/fw_ble_scan_ad_filter.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800D80/fw_ble_scan_ad_filter.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800D80/fw_patch_8800d80_u02.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800D80/fw_patch_8800d80_u02.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800D80/fw_patch_8800d80_u02.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800D80/fw_patch_8800d80_u02.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800D80/fw_patch_table_8800d80_u02.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800D80/fw_patch_table_8800d80_u02.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800D80/fw_patch_table_8800d80_u02.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800D80/fw_patch_table_8800d80_u02.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800D80/lmacfw_rf_8800d80_u02.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800D80/lmacfw_rf_8800d80_u02.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800D80/lmacfw_rf_8800d80_u02.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800D80/lmacfw_rf_8800d80_u02.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/aic_userconfig_8800dc.txt b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/aic_userconfig_8800dc.txt similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/aic_userconfig_8800dc.txt rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/aic_userconfig_8800dc.txt diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/aic_userconfig_8800dw.txt b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/aic_userconfig_8800dw.txt similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/aic_userconfig_8800dw.txt rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/aic_userconfig_8800dw.txt diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fmacfw_calib_8800dc_h_u02.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fmacfw_calib_8800dc_h_u02.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fmacfw_calib_8800dc_h_u02.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fmacfw_calib_8800dc_h_u02.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fmacfw_calib_8800dc_u02.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fmacfw_calib_8800dc_u02.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fmacfw_calib_8800dc_u02.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fmacfw_calib_8800dc_u02.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fmacfw_patch_8800dc_h_u02.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fmacfw_patch_8800dc_h_u02.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fmacfw_patch_8800dc_h_u02.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fmacfw_patch_8800dc_h_u02.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fmacfw_patch_8800dc_ipc_u02.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fmacfw_patch_8800dc_ipc_u02.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fmacfw_patch_8800dc_ipc_u02.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fmacfw_patch_8800dc_ipc_u02.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fmacfw_patch_8800dc_u02.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fmacfw_patch_8800dc_u02.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fmacfw_patch_8800dc_u02.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fmacfw_patch_8800dc_u02.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fmacfw_patch_tbl_8800dc_h_u02.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fmacfw_patch_tbl_8800dc_h_u02.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fmacfw_patch_tbl_8800dc_h_u02.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fmacfw_patch_tbl_8800dc_h_u02.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fmacfw_patch_tbl_8800dc_ipc_u02.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fmacfw_patch_tbl_8800dc_ipc_u02.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fmacfw_patch_tbl_8800dc_ipc_u02.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fmacfw_patch_tbl_8800dc_ipc_u02.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fmacfw_patch_tbl_8800dc_u02.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fmacfw_patch_tbl_8800dc_u02.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fmacfw_patch_tbl_8800dc_u02.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fmacfw_patch_tbl_8800dc_u02.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fw_adid_8800dc_u02h.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fw_adid_8800dc_u02h.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fw_adid_8800dc_u02h.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fw_adid_8800dc_u02h.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fw_patch_8800dc_u02.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fw_patch_8800dc_u02.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fw_patch_8800dc_u02.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fw_patch_8800dc_u02.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fw_patch_8800dc_u02h.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fw_patch_8800dc_u02h.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fw_patch_8800dc_u02h.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fw_patch_8800dc_u02h.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fw_patch_table_8800dc_u02.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fw_patch_table_8800dc_u02.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fw_patch_table_8800dc_u02.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fw_patch_table_8800dc_u02.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fw_patch_table_8800dc_u02h.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fw_patch_table_8800dc_u02h.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/fw_patch_table_8800dc_u02h.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/fw_patch_table_8800dc_u02h.bin diff --git a/scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/lmacfw_rf_8800dc.bin b/scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/lmacfw_rf_8800dc.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/aic8800/aic8800DC/lmacfw_rf_8800dc.bin rename to scripts/bin/rockchip/linux-firmware/aic8800/aic8800DC/lmacfw_rf_8800dc.bin diff --git a/scripts/rockchip/bin/linux-firmware/ap6255/BCM4345C0.hcd b/scripts/bin/rockchip/linux-firmware/ap6255/BCM4345C0.hcd similarity index 100% rename from scripts/rockchip/bin/linux-firmware/ap6255/BCM4345C0.hcd rename to scripts/bin/rockchip/linux-firmware/ap6255/BCM4345C0.hcd diff --git a/scripts/rockchip/bin/linux-firmware/ap6255/brcmfmac43455-sdio.bin b/scripts/bin/rockchip/linux-firmware/ap6255/brcmfmac43455-sdio.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/ap6255/brcmfmac43455-sdio.bin rename to scripts/bin/rockchip/linux-firmware/ap6255/brcmfmac43455-sdio.bin diff --git a/scripts/rockchip/bin/linux-firmware/ap6255/brcmfmac43455-sdio.txt b/scripts/bin/rockchip/linux-firmware/ap6255/brcmfmac43455-sdio.txt similarity index 100% rename from scripts/rockchip/bin/linux-firmware/ap6255/brcmfmac43455-sdio.txt rename to scripts/bin/rockchip/linux-firmware/ap6255/brcmfmac43455-sdio.txt diff --git a/scripts/rockchip/bin/linux-firmware/ap6275s/BCM4362A2.hcd b/scripts/bin/rockchip/linux-firmware/ap6275s/BCM4362A2.hcd similarity index 100% rename from scripts/rockchip/bin/linux-firmware/ap6275s/BCM4362A2.hcd rename to scripts/bin/rockchip/linux-firmware/ap6275s/BCM4362A2.hcd diff --git a/scripts/rockchip/bin/linux-firmware/ap6275s/brcmfmac43752-sdio.bin b/scripts/bin/rockchip/linux-firmware/ap6275s/brcmfmac43752-sdio.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/ap6275s/brcmfmac43752-sdio.bin rename to scripts/bin/rockchip/linux-firmware/ap6275s/brcmfmac43752-sdio.bin diff --git a/scripts/rockchip/bin/linux-firmware/ap6275s/brcmfmac43752-sdio.txt b/scripts/bin/rockchip/linux-firmware/ap6275s/brcmfmac43752-sdio.txt similarity index 100% rename from scripts/rockchip/bin/linux-firmware/ap6275s/brcmfmac43752-sdio.txt rename to scripts/bin/rockchip/linux-firmware/ap6275s/brcmfmac43752-sdio.txt diff --git a/scripts/rockchip/bin/linux-firmware/ap6356s/BCM4356A2.hcd b/scripts/bin/rockchip/linux-firmware/ap6356s/BCM4356A2.hcd similarity index 100% rename from scripts/rockchip/bin/linux-firmware/ap6356s/BCM4356A2.hcd rename to scripts/bin/rockchip/linux-firmware/ap6356s/BCM4356A2.hcd diff --git a/scripts/rockchip/bin/linux-firmware/ap6356s/brcmfmac4356-sdio.bin b/scripts/bin/rockchip/linux-firmware/ap6356s/brcmfmac4356-sdio.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/ap6356s/brcmfmac4356-sdio.bin rename to scripts/bin/rockchip/linux-firmware/ap6356s/brcmfmac4356-sdio.bin diff --git a/scripts/rockchip/bin/linux-firmware/ap6356s/brcmfmac4356-sdio.txt b/scripts/bin/rockchip/linux-firmware/ap6356s/brcmfmac4356-sdio.txt similarity index 100% rename from scripts/rockchip/bin/linux-firmware/ap6356s/brcmfmac4356-sdio.txt rename to scripts/bin/rockchip/linux-firmware/ap6356s/brcmfmac4356-sdio.txt diff --git a/scripts/rockchip/bin/linux-firmware/bcmdhd/config.txt b/scripts/bin/rockchip/linux-firmware/bcmdhd/config.txt similarity index 100% rename from scripts/rockchip/bin/linux-firmware/bcmdhd/config.txt rename to scripts/bin/rockchip/linux-firmware/bcmdhd/config.txt diff --git a/scripts/rockchip/bin/linux-firmware/bcmdhd/fw_bcm43752a2_ag.bin b/scripts/bin/rockchip/linux-firmware/bcmdhd/fw_bcm43752a2_ag.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/bcmdhd/fw_bcm43752a2_ag.bin rename to scripts/bin/rockchip/linux-firmware/bcmdhd/fw_bcm43752a2_ag.bin diff --git a/scripts/rockchip/bin/linux-firmware/bcmdhd/nvram_ap6275s.txt b/scripts/bin/rockchip/linux-firmware/bcmdhd/nvram_ap6275s.txt similarity index 100% rename from scripts/rockchip/bin/linux-firmware/bcmdhd/nvram_ap6275s.txt rename to scripts/bin/rockchip/linux-firmware/bcmdhd/nvram_ap6275s.txt diff --git a/scripts/rockchip/bin/linux-firmware/rtl8821c/rtk_hciattach b/scripts/bin/rockchip/linux-firmware/rtl8821c/rtk_hciattach similarity index 100% rename from scripts/rockchip/bin/linux-firmware/rtl8821c/rtk_hciattach rename to scripts/bin/rockchip/linux-firmware/rtl8821c/rtk_hciattach diff --git a/scripts/rockchip/bin/linux-firmware/rtl8821c/rtl8821c_config b/scripts/bin/rockchip/linux-firmware/rtl8821c/rtl8821c_config similarity index 100% rename from scripts/rockchip/bin/linux-firmware/rtl8821c/rtl8821c_config rename to scripts/bin/rockchip/linux-firmware/rtl8821c/rtl8821c_config diff --git a/scripts/rockchip/bin/linux-firmware/rtl8821c/rtl8821c_fw b/scripts/bin/rockchip/linux-firmware/rtl8821c/rtl8821c_fw similarity index 100% rename from scripts/rockchip/bin/linux-firmware/rtl8821c/rtl8821c_fw rename to scripts/bin/rockchip/linux-firmware/rtl8821c/rtl8821c_fw diff --git a/scripts/rockchip/bin/linux-firmware/rtl8821c/systemd-hciattach.service b/scripts/bin/rockchip/linux-firmware/rtl8821c/systemd-hciattach.service similarity index 100% rename from scripts/rockchip/bin/linux-firmware/rtl8821c/systemd-hciattach.service rename to scripts/bin/rockchip/linux-firmware/rtl8821c/systemd-hciattach.service diff --git a/scripts/rockchip/bin/linux-firmware/uwe5622/wcnmodem-38222.bin b/scripts/bin/rockchip/linux-firmware/uwe5622/wcnmodem-38222.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/uwe5622/wcnmodem-38222.bin rename to scripts/bin/rockchip/linux-firmware/uwe5622/wcnmodem-38222.bin diff --git a/scripts/rockchip/bin/linux-firmware/uwe5622/wcnmodem.bin b/scripts/bin/rockchip/linux-firmware/uwe5622/wcnmodem.bin similarity index 100% rename from scripts/rockchip/bin/linux-firmware/uwe5622/wcnmodem.bin rename to scripts/bin/rockchip/linux-firmware/uwe5622/wcnmodem.bin diff --git a/scripts/rockchip/bin/linux-firmware/uwe5622/wifi_2355b001_1ant.ini b/scripts/bin/rockchip/linux-firmware/uwe5622/wifi_2355b001_1ant.ini similarity index 100% rename from scripts/rockchip/bin/linux-firmware/uwe5622/wifi_2355b001_1ant.ini rename to scripts/bin/rockchip/linux-firmware/uwe5622/wifi_2355b001_1ant.ini diff --git a/scripts/rockchip/bin/qemu-user-static-aarch64-x86_64.rpm b/scripts/bin/rockchip/qemu-user-static-aarch64-x86_64.rpm similarity index 100% rename from scripts/rockchip/bin/qemu-user-static-aarch64-x86_64.rpm rename to scripts/bin/rockchip/qemu-user-static-aarch64-x86_64.rpm diff --git a/scripts/rockchip/bin/rk3399_loader.bin b/scripts/bin/rockchip/rk3399_loader.bin similarity index 100% rename from scripts/rockchip/bin/rk3399_loader.bin rename to scripts/bin/rockchip/rk3399_loader.bin diff --git a/scripts/rockchip/bin/rk3399_parameter.gpt b/scripts/bin/rockchip/rk3399_parameter.gpt similarity index 100% rename from scripts/rockchip/bin/rk3399_parameter.gpt rename to scripts/bin/rockchip/rk3399_parameter.gpt diff --git a/scripts/rockchip/bin/rk3588-pack/MiniLoaderAll.bin b/scripts/bin/rockchip/rk3588-pack/MiniLoaderAll.bin similarity index 100% rename from scripts/rockchip/bin/rk3588-pack/MiniLoaderAll.bin rename to scripts/bin/rockchip/rk3588-pack/MiniLoaderAll.bin diff --git a/scripts/rockchip/bin/rk3588-pack/afptool b/scripts/bin/rockchip/rk3588-pack/afptool similarity index 100% rename from scripts/rockchip/bin/rk3588-pack/afptool rename to scripts/bin/rockchip/rk3588-pack/afptool diff --git a/scripts/rockchip/bin/rk3588-pack/misc.img b/scripts/bin/rockchip/rk3588-pack/misc.img similarity index 100% rename from scripts/rockchip/bin/rk3588-pack/misc.img rename to scripts/bin/rockchip/rk3588-pack/misc.img diff --git a/scripts/rockchip/bin/rk3588-pack/oem.img b/scripts/bin/rockchip/rk3588-pack/oem.img similarity index 100% rename from scripts/rockchip/bin/rk3588-pack/oem.img rename to scripts/bin/rockchip/rk3588-pack/oem.img diff --git a/scripts/rockchip/bin/rk3588-pack/package-file b/scripts/bin/rockchip/rk3588-pack/package-file similarity index 100% rename from scripts/rockchip/bin/rk3588-pack/package-file rename to scripts/bin/rockchip/rk3588-pack/package-file diff --git a/scripts/rockchip/bin/rk3588-pack/parameter.txt b/scripts/bin/rockchip/rk3588-pack/parameter.txt similarity index 100% rename from scripts/rockchip/bin/rk3588-pack/parameter.txt rename to scripts/bin/rockchip/rk3588-pack/parameter.txt diff --git a/scripts/rockchip/bin/rk3588-pack/recovery.img b/scripts/bin/rockchip/rk3588-pack/recovery.img similarity index 100% rename from scripts/rockchip/bin/rk3588-pack/recovery.img rename to scripts/bin/rockchip/rk3588-pack/recovery.img diff --git a/scripts/rockchip/bin/rk3588-pack/rk3588-mkupdate.sh b/scripts/bin/rockchip/rk3588-pack/rk3588-mkupdate.sh similarity index 100% rename from scripts/rockchip/bin/rk3588-pack/rk3588-mkupdate.sh rename to scripts/bin/rockchip/rk3588-pack/rk3588-mkupdate.sh diff --git a/scripts/rockchip/bin/rk3588-pack/rkImageMaker b/scripts/bin/rockchip/rk3588-pack/rkImageMaker similarity index 100% rename from scripts/rockchip/bin/rk3588-pack/rkImageMaker rename to scripts/bin/rockchip/rk3588-pack/rkImageMaker diff --git a/scripts/rockchip/bin/rk3588-pack/uboot.img b/scripts/bin/rockchip/rk3588-pack/uboot.img similarity index 100% rename from scripts/rockchip/bin/rk3588-pack/uboot.img rename to scripts/bin/rockchip/rk3588-pack/uboot.img diff --git a/scripts/rockchip/bin/rk3588-pack/userdata.img b/scripts/bin/rockchip/rk3588-pack/userdata.img similarity index 100% rename from scripts/rockchip/bin/rk3588-pack/userdata.img rename to scripts/bin/rockchip/rk3588-pack/userdata.img diff --git a/scripts/rockchip/bin/rk3588_loader.bin b/scripts/bin/rockchip/rk3588_loader.bin similarity index 100% rename from scripts/rockchip/bin/rk3588_loader.bin rename to scripts/bin/rockchip/rk3588_loader.bin diff --git a/scripts/rockchip/bin/rk3588_parameter.gpt b/scripts/bin/rockchip/rk3588_parameter.gpt similarity index 100% rename from scripts/rockchip/bin/rk3588_parameter.gpt rename to scripts/bin/rockchip/rk3588_parameter.gpt diff --git a/scripts/rockchip/bin/u-boot/armsom-sige5/idbloader.img b/scripts/bin/rockchip/u-boot/armsom-sige5/idbloader.img similarity index 100% rename from scripts/rockchip/bin/u-boot/armsom-sige5/idbloader.img rename to scripts/bin/rockchip/u-boot/armsom-sige5/idbloader.img diff --git a/scripts/rockchip/bin/u-boot/armsom-sige5/u-boot.itb b/scripts/bin/rockchip/u-boot/armsom-sige5/u-boot.itb similarity index 100% rename from scripts/rockchip/bin/u-boot/armsom-sige5/u-boot.itb rename to scripts/bin/rockchip/u-boot/armsom-sige5/u-boot.itb diff --git a/scripts/rockchip/bin/u-boot/firefly-rk3566/idbloader.img b/scripts/bin/rockchip/u-boot/firefly-rk3566/idbloader.img similarity index 100% rename from scripts/rockchip/bin/u-boot/firefly-rk3566/idbloader.img rename to scripts/bin/rockchip/u-boot/firefly-rk3566/idbloader.img diff --git a/scripts/rockchip/bin/u-boot/firefly-rk3566/u-boot.itb b/scripts/bin/rockchip/u-boot/firefly-rk3566/u-boot.itb similarity index 100% rename from scripts/rockchip/bin/u-boot/firefly-rk3566/u-boot.itb rename to scripts/bin/rockchip/u-boot/firefly-rk3566/u-boot.itb diff --git a/scripts/rockchip/bin/u-boot/firefly-rk3568/idbloader.img b/scripts/bin/rockchip/u-boot/firefly-rk3568/idbloader.img similarity index 100% rename from scripts/rockchip/bin/u-boot/firefly-rk3568/idbloader.img rename to scripts/bin/rockchip/u-boot/firefly-rk3568/idbloader.img diff --git a/scripts/rockchip/bin/u-boot/firefly-rk3568/u-boot.itb b/scripts/bin/rockchip/u-boot/firefly-rk3568/u-boot.itb similarity index 100% rename from scripts/rockchip/bin/u-boot/firefly-rk3568/u-boot.itb rename to scripts/bin/rockchip/u-boot/firefly-rk3568/u-boot.itb diff --git a/scripts/rockchip/bin/u-boot/firefly-rk3588/idbloader.img b/scripts/bin/rockchip/u-boot/firefly-rk3588/idbloader.img similarity index 100% rename from scripts/rockchip/bin/u-boot/firefly-rk3588/idbloader.img rename to scripts/bin/rockchip/u-boot/firefly-rk3588/idbloader.img diff --git a/scripts/rockchip/bin/u-boot/firefly-rk3588/u-boot.itb b/scripts/bin/rockchip/u-boot/firefly-rk3588/u-boot.itb similarity index 100% rename from scripts/rockchip/bin/u-boot/firefly-rk3588/u-boot.itb rename to scripts/bin/rockchip/u-boot/firefly-rk3588/u-boot.itb diff --git a/scripts/rockchip/bin/u-boot/longanpi-3h/u-boot-sunxi-with-spl.bin b/scripts/bin/rockchip/u-boot/longanpi-3h/u-boot-sunxi-with-spl.bin similarity index 100% rename from scripts/rockchip/bin/u-boot/longanpi-3h/u-boot-sunxi-with-spl.bin rename to scripts/bin/rockchip/u-boot/longanpi-3h/u-boot-sunxi-with-spl.bin diff --git a/scripts/rockchip/bin/u-boot/orangepi-zero2/u-boot-sunxi-with-spl.bin b/scripts/bin/rockchip/u-boot/orangepi-zero2/u-boot-sunxi-with-spl.bin similarity index 100% rename from scripts/rockchip/bin/u-boot/orangepi-zero2/u-boot-sunxi-with-spl.bin rename to scripts/bin/rockchip/u-boot/orangepi-zero2/u-boot-sunxi-with-spl.bin diff --git a/scripts/rockchip/bin/u-boot/phytiumpi/env.txt b/scripts/bin/rockchip/u-boot/phytiumpi/env.txt similarity index 100% rename from scripts/rockchip/bin/u-boot/phytiumpi/env.txt rename to scripts/bin/rockchip/u-boot/phytiumpi/env.txt diff --git a/scripts/rockchip/bin/u-boot/phytiumpi/fip-all-sd-boot.bin b/scripts/bin/rockchip/u-boot/phytiumpi/fip-all-sd-boot.bin similarity index 100% rename from scripts/rockchip/bin/u-boot/phytiumpi/fip-all-sd-boot.bin rename to scripts/bin/rockchip/u-boot/phytiumpi/fip-all-sd-boot.bin diff --git a/scripts/rockchip/bin/u-boot/radxa-rock5b/idbloader.img b/scripts/bin/rockchip/u-boot/radxa-rock5b/idbloader.img similarity index 100% rename from scripts/rockchip/bin/u-boot/radxa-rock5b/idbloader.img rename to scripts/bin/rockchip/u-boot/radxa-rock5b/idbloader.img diff --git a/scripts/rockchip/bin/u-boot/radxa-rock5b/u-boot.itb b/scripts/bin/rockchip/u-boot/radxa-rock5b/u-boot.itb similarity index 100% rename from scripts/rockchip/bin/u-boot/radxa-rock5b/u-boot.itb rename to scripts/bin/rockchip/u-boot/radxa-rock5b/u-boot.itb diff --git a/scripts/rockchip/bin/wireless/enable_bt b/scripts/bin/rockchip/wireless/enable_bt similarity index 100% rename from scripts/rockchip/bin/wireless/enable_bt rename to scripts/bin/rockchip/wireless/enable_bt diff --git a/scripts/rockchip/bin/wireless/rcS.sh b/scripts/bin/rockchip/wireless/rcS.sh similarity index 100% rename from scripts/rockchip/bin/wireless/rcS.sh rename to scripts/bin/rockchip/wireless/rcS.sh diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/4343A0.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/4343A0.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/4343A0.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/4343A0.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/BCM4330B1.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/BCM4330B1.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/BCM4330B1.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/BCM4330B1.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/BCM4343B0.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/BCM4343B0.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/BCM4343B0.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/BCM4343B0.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/BCM4345C0.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/BCM4345C0.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/BCM4345C0.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/BCM4345C0.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/BCM4345C0_ap.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/BCM4345C0_ap.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/BCM4345C0_ap.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/BCM4345C0_ap.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/BCM4345C5.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/BCM4345C5.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/BCM4345C5.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/BCM4345C5.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/BCM4354A2.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/BCM4354A2.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/BCM4354A2.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/BCM4354A2.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/BCM4356A2.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/BCM4356A2.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/BCM4356A2.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/BCM4356A2.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/BCM4359C0.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/BCM4359C0.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/BCM4359C0.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/BCM4359C0.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/awnb108.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/awnb108.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/awnb108.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/awnb108.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/bcm20710a1.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/bcm20710a1.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/bcm20710a1.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/bcm20710a1.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/bcm20710a1_24M.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/bcm20710a1_24M.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/bcm20710a1_24M.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/bcm20710a1_24M.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/bcm20710a1_26M.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/bcm20710a1_26M.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/bcm20710a1_26M.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/bcm20710a1_26M.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/bcm2076b1.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/bcm2076b1.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/bcm2076b1.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/bcm2076b1.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/bcm40183b2.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/bcm40183b2.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/bcm40183b2.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/bcm40183b2.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/bcm43241b4.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/bcm43241b4.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/bcm43241b4.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/bcm43241b4.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/bcm4329.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/bcm4329.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/bcm4329.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/bcm4329.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/bcm43341b0.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/bcm43341b0.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/bcm43341b0.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/bcm43341b0.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/bcm4339a0.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/bcm4339a0.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/bcm4339a0.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/bcm4339a0.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/bcm43438a0.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/bcm43438a0.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/bcm43438a0.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/bcm43438a0.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/bcm43438a1.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/bcm43438a1.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/bcm43438a1.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/bcm43438a1.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/bcm4354a1.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/bcm4354a1.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/bcm4354a1.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/bcm4354a1.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_awnb108.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_awnb108.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_awnb108.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_awnb108.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_awnb108_ap.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_awnb108_ap.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_awnb108_ap.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_awnb108_ap.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm40181a2.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm40181a2.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm40181a2.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm40181a2.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm40181a2_apsta.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm40181a2_apsta.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm40181a2_apsta.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm40181a2_apsta.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm40183b2.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm40183b2.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm40183b2.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm40183b2.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm40183b2_ag.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm40183b2_ag.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm40183b2_ag.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm40183b2_ag.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm43241b4_ag.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm43241b4_ag.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm43241b4_ag.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm43241b4_ag.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm4330.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm4330.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm4330.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm4330.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm43341b0_ag.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm43341b0_ag.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm43341b0_ag.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm43341b0_ag.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm4334b1_ag.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm4334b1_ag.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm4334b1_ag.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm4334b1_ag.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm4339a0_ag.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm4339a0_ag.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm4339a0_ag.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm4339a0_ag.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm43436b0.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm43436b0.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm43436b0.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm43436b0.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm43436b0_apsta.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm43436b0_apsta.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm43436b0_apsta.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm43436b0_apsta.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm43438a0.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm43438a0.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm43438a0.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm43438a0.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm43438a1.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm43438a1.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm43438a1.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm43438a1.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm43438a1_apsta.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm43438a1_apsta.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm43438a1_apsta.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm43438a1_apsta.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm43455c0_ag.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm43455c0_ag.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm43455c0_ag.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm43455c0_ag.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm43456c5_ag.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm43456c5_ag.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm43456c5_ag.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm43456c5_ag.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm4354a1_ag.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm4354a1_ag.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm4354a1_ag.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm4354a1_ag.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm4356a2_ag.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm4356a2_ag.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm4356a2_ag.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm4356a2_ag.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm4359c0_ag.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm4359c0_ag.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_bcm4359c0_ag.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_bcm4359c0_ag.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_cyw43438.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_cyw43438.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_cyw43438.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_cyw43438.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/fw_cyw43455.bin b/scripts/bin/rockchip/wireless/system/etc/firmware/fw_cyw43455.bin similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/fw_cyw43455.bin rename to scripts/bin/rockchip/wireless/system/etc/firmware/fw_cyw43455.bin diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nh660.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/nh660.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nh660.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/nh660.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_4330.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_4330.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_4330.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_4330.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_4330_oob.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_4330_oob.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_4330_oob.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_4330_oob.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_AP6210.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_AP6210.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_AP6210.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_AP6210.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_AP6210_24M.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_AP6210_24M.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_AP6210_24M.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_AP6210_24M.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_AP6234.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_AP6234.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_AP6234.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_AP6234.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_AP6330.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_AP6330.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_AP6330.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_AP6330.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_AP6335.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_AP6335.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_AP6335.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_AP6335.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_AP6441.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_AP6441.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_AP6441.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_AP6441.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_AP6476.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_AP6476.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_AP6476.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_AP6476.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_AP6493.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_AP6493.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_AP6493.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_AP6493.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_B23.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_B23.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_B23.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_B23.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_RK901.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_RK901.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_RK901.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_RK901.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_RK903.cal b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_RK903.cal similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_RK903.cal rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_RK903.cal diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_RK903.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_RK903.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_RK903.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_RK903.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_RK903_26M.cal b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_RK903_26M.cal similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_RK903_26M.cal rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_RK903_26M.cal diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6181.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6181.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6181.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6181.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6212.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6212.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6212.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6212.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6212a.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6212a.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6212a.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6212a.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6212a_ap.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6212a_ap.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6212a_ap.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6212a_ap.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6212a_cy.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6212a_cy.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6212a_cy.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6212a_cy.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6233f.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6233f.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6233f.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6233f.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6236.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6236.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6236.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6236.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6255.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6255.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6255.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6255.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6256.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6256.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6256.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6256.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap62x2.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap62x2.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap62x2.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap62x2.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6354.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6354.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6354.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6354.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6356.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6356.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6356.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6356.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6356s.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6356s.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6356s.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6356s.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6398s.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6398s.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6398s.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6398s.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6452.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6452.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_ap6452.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_ap6452.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_awnb108.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_awnb108.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_awnb108.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_awnb108.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_cyw43438.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_cyw43438.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_cyw43438.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_cyw43438.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/nvram_cyw43455.txt b/scripts/bin/rockchip/wireless/system/etc/firmware/nvram_cyw43455.txt similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/nvram_cyw43455.txt rename to scripts/bin/rockchip/wireless/system/etc/firmware/nvram_cyw43455.txt diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/rk903.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/rk903.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/rk903.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/rk903.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/rk903_26M.hcd b/scripts/bin/rockchip/wireless/system/etc/firmware/rk903_26M.hcd similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/rk903_26M.hcd rename to scripts/bin/rockchip/wireless/system/etc/firmware/rk903_26M.hcd diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/wifi_efuse_8189e.map b/scripts/bin/rockchip/wireless/system/etc/firmware/wifi_efuse_8189e.map similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/wifi_efuse_8189e.map rename to scripts/bin/rockchip/wireless/system/etc/firmware/wifi_efuse_8189e.map diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/wifi_efuse_8723bs-vq0.map b/scripts/bin/rockchip/wireless/system/etc/firmware/wifi_efuse_8723bs-vq0.map similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/wifi_efuse_8723bs-vq0.map rename to scripts/bin/rockchip/wireless/system/etc/firmware/wifi_efuse_8723bs-vq0.map diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/wifi_efuse_8723cs.map b/scripts/bin/rockchip/wireless/system/etc/firmware/wifi_efuse_8723cs.map similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/wifi_efuse_8723cs.map rename to scripts/bin/rockchip/wireless/system/etc/firmware/wifi_efuse_8723cs.map diff --git a/scripts/rockchip/bin/wireless/system/etc/firmware/wifi_efuse_8723ds.map b/scripts/bin/rockchip/wireless/system/etc/firmware/wifi_efuse_8723ds.map similarity index 100% rename from scripts/rockchip/bin/wireless/system/etc/firmware/wifi_efuse_8723ds.map rename to scripts/bin/rockchip/wireless/system/etc/firmware/wifi_efuse_8723ds.map diff --git a/scripts/rockchip/boards/armsom-sige5.conf b/scripts/boards/armsom-sige5.conf similarity index 93% rename from scripts/rockchip/boards/armsom-sige5.conf rename to scripts/boards/armsom-sige5.conf index 722f091..bc1f646 100644 --- a/scripts/rockchip/boards/armsom-sige5.conf +++ b/scripts/boards/armsom-sige5.conf @@ -1,4 +1,4 @@ -ubootconfig=none +ubootconfig= local_uboot_dir=${nonfree_bin_dir}/u-boot/armsom-sige5 dtb_name=rk3576-armsom-sige5 platform=rockchip diff --git a/scripts/rockchip/boards/firefly-itx-3588j.conf b/scripts/boards/firefly-itx-3588j.conf similarity index 95% rename from scripts/rockchip/boards/firefly-itx-3588j.conf rename to scripts/boards/firefly-itx-3588j.conf index 9c8c0ac..809bbae 100644 --- a/scripts/rockchip/boards/firefly-itx-3588j.conf +++ b/scripts/boards/firefly-itx-3588j.conf @@ -1,4 +1,4 @@ -ubootconfig=none +ubootconfig= local_uboot_dir=${nonfree_bin_dir}/u-boot/firefly-rk3588 dtb_name=rk3588-firefly-itx-3588j platform=rockchip diff --git a/scripts/rockchip/boards/firefly-rk3399.conf b/scripts/boards/firefly-rk3399.conf similarity index 100% rename from scripts/rockchip/boards/firefly-rk3399.conf rename to scripts/boards/firefly-rk3399.conf diff --git a/scripts/rockchip/boards/firefly-roc-rk3566-pc.conf b/scripts/boards/firefly-roc-rk3566-pc.conf similarity index 97% rename from scripts/rockchip/boards/firefly-roc-rk3566-pc.conf rename to scripts/boards/firefly-roc-rk3566-pc.conf index 7570c5e..1ead54d 100644 --- a/scripts/rockchip/boards/firefly-roc-rk3566-pc.conf +++ b/scripts/boards/firefly-roc-rk3566-pc.conf @@ -1,4 +1,4 @@ -ubootconfig=none +ubootconfig= local_uboot_dir=${nonfree_bin_dir}/u-boot/firefly-rk3566 dtb_name=rk3566-roc-pc platform=rockchip diff --git a/scripts/rockchip/boards/firefly-roc-rk3568-pc-se.conf b/scripts/boards/firefly-roc-rk3568-pc-se.conf similarity index 97% rename from scripts/rockchip/boards/firefly-roc-rk3568-pc-se.conf rename to scripts/boards/firefly-roc-rk3568-pc-se.conf index 3e23914..fcc2151 100644 --- a/scripts/rockchip/boards/firefly-roc-rk3568-pc-se.conf +++ b/scripts/boards/firefly-roc-rk3568-pc-se.conf @@ -1,4 +1,4 @@ -ubootconfig=none +ubootconfig= local_uboot_dir=${nonfree_bin_dir}/u-boot/firefly-rk3568 dtb_name=rk3568-roc-pc-se platform=rockchip diff --git a/scripts/rockchip/boards/firefly-roc-rk3568-pc.conf b/scripts/boards/firefly-roc-rk3568-pc.conf similarity index 98% rename from scripts/rockchip/boards/firefly-roc-rk3568-pc.conf rename to scripts/boards/firefly-roc-rk3568-pc.conf index a5f4284..c043327 100644 --- a/scripts/rockchip/boards/firefly-roc-rk3568-pc.conf +++ b/scripts/boards/firefly-roc-rk3568-pc.conf @@ -1,4 +1,4 @@ -ubootconfig=none +ubootconfig= local_uboot_dir=${nonfree_bin_dir}/u-boot/firefly-rk3568 dtb_name=rk3568-roc-pc platform=rockchip diff --git a/scripts/rockchip/boards/firefly-roc-rk3588s-pc.conf b/scripts/boards/firefly-roc-rk3588s-pc.conf similarity index 93% rename from scripts/rockchip/boards/firefly-roc-rk3588s-pc.conf rename to scripts/boards/firefly-roc-rk3588s-pc.conf index 38d6e3f..3dc6d3b 100644 --- a/scripts/rockchip/boards/firefly-roc-rk3588s-pc.conf +++ b/scripts/boards/firefly-roc-rk3588s-pc.conf @@ -1,4 +1,4 @@ -ubootconfig=none +ubootconfig= local_uboot_dir=${nonfree_bin_dir}/u-boot/firefly-rk3588 dtb_name=rk3588s-roc-pc platform=rockchip diff --git a/scripts/rockchip/boards/longanpi-3h.conf b/scripts/boards/longanpi-3h.conf similarity index 95% rename from scripts/rockchip/boards/longanpi-3h.conf rename to scripts/boards/longanpi-3h.conf index ad46afb..e3765f8 100644 --- a/scripts/rockchip/boards/longanpi-3h.conf +++ b/scripts/boards/longanpi-3h.conf @@ -1,4 +1,4 @@ -ubootconfig=none +ubootconfig= local_uboot_dir=${nonfree_bin_dir}/u-boot/longanpi-3h dtb_name=sun50i-h618-longanpi-3h platform=allwinner diff --git a/scripts/rockchip/boards/orangepi-zero2.conf b/scripts/boards/orangepi-zero2.conf similarity index 97% rename from scripts/rockchip/boards/orangepi-zero2.conf rename to scripts/boards/orangepi-zero2.conf index 3c29976..5f0bbc9 100644 --- a/scripts/rockchip/boards/orangepi-zero2.conf +++ b/scripts/boards/orangepi-zero2.conf @@ -1,4 +1,4 @@ -ubootconfig=none +ubootconfig= local_uboot_dir=${nonfree_bin_dir}/u-boot/orangepi-zero2 dtb_name=sun50i-h616-orangepi-zero2 platform=allwinner diff --git a/scripts/rockchip/boards/phytiumpi-4gb.conf b/scripts/boards/phytiumpi-4gb.conf similarity index 97% rename from scripts/rockchip/boards/phytiumpi-4gb.conf rename to scripts/boards/phytiumpi-4gb.conf index 418f8a4..312fdb7 100644 --- a/scripts/rockchip/boards/phytiumpi-4gb.conf +++ b/scripts/boards/phytiumpi-4gb.conf @@ -1,4 +1,4 @@ -ubootconfig=none +ubootconfig= local_uboot_dir=${nonfree_bin_dir}/u-boot/phytiumpi dtb_name=phytiumpi_firefly platform=phytium diff --git a/scripts/rockchip/boards/radxa-rock-5b.conf b/scripts/boards/radxa-rock-5b.conf similarity index 93% rename from scripts/rockchip/boards/radxa-rock-5b.conf rename to scripts/boards/radxa-rock-5b.conf index 712931b..54bbe8a 100644 --- a/scripts/rockchip/boards/radxa-rock-5b.conf +++ b/scripts/boards/radxa-rock-5b.conf @@ -1,4 +1,4 @@ -ubootconfig=none +ubootconfig= local_uboot_dir=${nonfree_bin_dir}/u-boot/radxa-rock5b dtb_name=rk3588-rock-5b platform=rockchip diff --git a/scripts/rockchip/boards/radxa-rockpi-4a.conf b/scripts/boards/radxa-rockpi-4a.conf similarity index 100% rename from scripts/rockchip/boards/radxa-rockpi-4a.conf rename to scripts/boards/radxa-rockpi-4a.conf diff --git a/scripts/boards/raspberrypi.conf b/scripts/boards/raspberrypi.conf new file mode 100644 index 0000000..6c5b2b3 --- /dev/null +++ b/scripts/boards/raspberrypi.conf @@ -0,0 +1,11 @@ +ubootconfig= +dtb_name=bcm2711-rpi-4-b +platform=broadcom +soc_name= +arch=arm64 +part_table=msdos + +POST_BOARD_OVERLAY() { + echo "Put ${board} firmware into rootfs..." + echo "Nothing to do..." +} diff --git a/scripts/rockchip/boards/sample.conf b/scripts/boards/sample.conf similarity index 100% rename from scripts/rockchip/boards/sample.conf rename to scripts/boards/sample.conf diff --git a/scripts/raspberrypi/build-image-docker.sh b/scripts/build-image-docker.sh similarity index 66% rename from scripts/raspberrypi/build-image-docker.sh rename to scripts/build-image-docker.sh index 0b73ede..564eb61 100755 --- a/scripts/raspberrypi/build-image-docker.sh +++ b/scripts/build-image-docker.sh @@ -1,19 +1,20 @@ #!/bin/bash - set -e +set -x __usage=" Usage: build-image-docker [OPTIONS] -Build raspberrypi image. +Build openEuler image. Options: + --board BOARD_CONFIG Required! The config of target board in the boards folder. -d, --docker DOCKER_FILE The URL/path of the Docker image, which defaults to https://repo.openeuler.org/openEuler-20.03-LTS-SP1/docker_img/aarch64/openEuler-docker.aarch64.tar.xz - -n, --name IMAGE_NAME The raspberrypi image name to be built. - -k, --kernel KERNEL_URL The URL of kernel source's repository, which defaults to https://gitee.com/openeuler/raspberrypi-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-raspi_defconfig. + -n, --name IMAGE_NAME The board 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-22.03-LTS-SP3. + -c, --config KERNEL_DEFCONFIG The name/path of defconfig file when compiling kernel, which defaults to openeuler_rockchip_defconfig. -r, --repo REPO_INFO Required! The URL/path of target repo file or list of repo's baseurls which should be a space separated list. - -s, --spec SPEC The image's specification: headless, xfce, ukui, dde or the file path of rpmlist. The default is headless. + -s, --spec SPEC The image's specification: headless, xfce, ukui, dde, gnome, devstation 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. " @@ -27,7 +28,7 @@ help() parseargs() { if [ "x$#" == "x0" ]; then - return 1 + return 0 fi while [ "x$#" != "x0" ]; @@ -36,76 +37,73 @@ parseargs() return 1 elif [ "x$1" == "x" ]; then shift + elif [ "x$1" == "x--board" ]; then + board=`echo $2` + shift + shift elif [ "x$1" == "x-d" -o "x$1" == "x--docker" ]; then docker_file=`echo $2` shift shift elif [ "x$1" == "x-n" -o "x$1" == "x--name" ]; then - img_name=`echo $2` - params="${params} -n ${img_name}" + name=`echo $2` shift shift 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 - kernel_branch=`echo $2` - params="${params} -b ${kernel_branch}" + branch=`echo $2` shift shift elif [ "x$1" == "x-c" -o "x$1" == "x--config" ]; then default_defconfig=`echo $2` + shift + shift if [ "x$default_defconfig" != "x" ]; then - if [ ! -f $default_defconfig ]; then - echo `date` - ERROR, config file $default_defconfig can not be found. - exit 2 - else + if [ -f $default_defconfig ]; then cp $default_defconfig ${params_dir}/ defconfig_name=${default_defconfig##*/} default_defconfig=${params_dir_indocker}/${defconfig_name} + elif [ "$default_defconfig" == */* ]; then + echo `date` - ERROR, config file $default_defconfig can not be found. + exit 2 fi fi - params="${params} -c ${default_defconfig}" - shift - shift elif [ "x$1" == "x-r" -o "x$1" == "x--repo" ]; then repo_file=`echo $2` + shift + shift if [ "x$repo_file" != "x" -a "x${repo_file:0:4}" != "xhttp" ]; then - if [ ! -f $repo_file ]; then - echo `date` - ERROR, repo file $repo_file can not be found. - exit 2 - else + if [ -f $repo_file ]; then cp $repo_file ${params_dir}/ repo_file_name=${repo_file##*/} repo_file=${params_dir_indocker}/${repo_file_name} + else + echo `date` - ERROR, repo file $repo_file can not be found. + exit 2 fi fi - params="${params} -r ${repo_file}" - shift - shift elif [ "x$1" == "x-s" -o "x$1" == "x--spec" ]; then spec_param=`echo $2` + shift + shift if [ "x$spec_param" == "xheadless" ] || [ "x$spec_param" == "x" ] \ - || [ "x$spec_param" == "xxfce" ] || [ "x$spec_param" == "xukui" ] \ - || [ "x$spec_param" == "xdde" ]; then + || [ "x$spec_param" == "xxfce" ] || [ "x$spec_param" == "xukui" ] \ + || [ "x$spec_param" == "xdde" ] || [ "x$spec_param" == "xgnome" ] \ + || [ "x$spec_param" == "xdevstation" ]; then : elif [ -f $spec_param ]; then cp $spec_param ${params_dir}/ spec_file_name=${spec_param##*/} - $spec_param=${params_dir_indocker}/${spec_file_name} + spec_param=${params_dir_indocker}/${spec_file_name} else echo `date` - ERROR, please check your params in option -s or --spec. exit 2 fi - params="${params} -s ${spec_param}" - shift - shift elif [ "x$1" == "x--cores" ]; then make_cores=`echo $2` - params="${params} --cores ${make_cores}" shift shift else @@ -125,19 +123,24 @@ 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="" +docker_file="https://repo.openeuler.org/openEuler-22.03-LTS-SP3/docker_img/aarch64/openEuler-docker.aarch64.tar.xz" -workdir=${cur_dir}/raspi_output +workdir=${cur_dir}/build buildid=$(date +%Y%m%d%H%M%S) builddate=${buildid:0:8} +make_cores=$(nproc) log_dir=${workdir}/log -params_dir=${workdir}/params -params_dir_indocker=/work/raspi_output/params -euler_dir=${cur_dir}/config$KERNEL_COMPILE +if [ ! -d ${log_dir} ];then mkdir -p ${log_dir}; fi +if [ "x${board}" == "xraspberrypi" ]; then + config_dir=${cur_dir}/configs/raspberrypi +else + config_dir=${cur_dir}/configs/rockchip +fi +params_dir=${workdir}/params +params_dir_indocker=/work/build/params if [ -d ${params_dir} ]; then rm -rf ${params_dir} fi @@ -159,30 +162,32 @@ if [ "x$repo_file" == "x" ] ; then help 2 fi -if [ ! -d ${log_dir} ]; then - mkdir ${log_dir} -fi docker_file_name=${docker_file##*/} docker_img_name=`docker load --input ${params_dir}/${docker_file_name}` docker_img_name=${docker_img_name##*: } -LOG build raspi image with docker: ${docker_file}. +LOG build board 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 "FROM $docker_img_name" && grep -v FROM ${config_dir}/Dockerfile) | \ + docker build -t ${docker_img_name}-${buildid} \ + --build-arg board=${board} \ + --build-arg docker_file=${docker_file} \ + --build-arg name=${name} \ + --build-arg kernel_url=${kernel_url} \ + --build-arg branch=${branch} \ + --build-arg default_defconfig=${default_defconfig} \ + --build-arg repo_file=${repo_file} \ + --build-arg spec_param=${spec_param} \ + --build-arg make_cores=${make_cores} \ + --no-cache -f- ${config_dir} + echo docker run --rm --privileged=true \ - -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 \ - ${docker_img_name}-${buildid} ${params} + -v ${cur_dir}:/work \ + ${docker_img_name}-${buildid} docker run --rm --privileged=true \ - -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 \ - ${docker_img_name}-${buildid} ${params} -chmod -R a+r ${workdir}/img + -v ${cur_dir}:/work \ + ${docker_img_name}-${buildid} +chmod -R a+r ${workdir} docker image rm ${docker_img_name}-${buildid} LOG LOG Done. - diff --git a/scripts/build.sh b/scripts/build.sh old mode 100644 new mode 100755 index 26dd438..f8c9f87 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -1,102 +1,205 @@ #!/bin/bash - set -e +set -x -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" +__usage=" +Usage: build [OPTIONS] +Build openEuler 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: + --board BOARD_CONFIG Required! The config of target board in the boards folder, which defaults to firefly-rk3399. + -n, --name IMAGE_NAME The openEuler 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. + -r, --repo REPO_INFO The URL/path of target repo file or list of repo's baseurls which should be a space separated list. + -s, --spec SPEC The image's specification: headless, xfce, ukui, dde, gnome, devstation 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() +{ + echo "$__usage" + exit $1 +} + +used_param() { + echo "" + echo "Default args" + echo "KERNEL_DEFCONFIG : $default_defconfig" + echo "" + echo "TARGET_BOARD : $board" + echo "" + echo "KERNEL_BRANCH : $branch" + echo "" +} + +default_param() { + default_defconfig=openeuler_rockchip_defconfig + board=firefly-rk3399 + ubootconfig=firefly-rk3399_defconfig + dtb_name=rk3399-firefly + platform=rockchip + 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" + nonfree_bin_dir=${cur_dir}/bin/rockchip + workdir=${cur_dir}/build + name=${branch}-${board}-aarch64-alpha1 + make_cores=$(nproc) +} + +save_param() { + if [ -f ${workdir}/.param_last ]; then + rm ${workdir}/.param_last + fi + if [ -f ${workdir}/.param ]; then + mv ${workdir}/.param ${workdir}/.param_last + fi + echo "board=$board +default_defconfig=$default_defconfig +ubootconfig=$ubootconfig +dtb_name=$dtb_name +platform=$platform +branch=$branch +repo_file=$repo_file +kernel_url=$kernel_url +spec_param=$spec_param" > ${workdir}/.param +} + +oe_deppkg_install() { + dnf makecache + dnf install git wget make gcc bison dtc m4 flex bc openssl-devel tar dosfstools rsync parted dnf-plugins-core tar kpartx diffutils dracut uboot-tools -y +} + +parseargs() +{ + if [ "x$#" == "x0" ]; then + return 0 + fi + + while [ "x$#" != "x0" ]; + do + if [ "x$1" == "x-h" -o "x$1" == "x--help" ]; then + return 1 + elif [ "x$1" == "x" ]; then + shift + elif [ "x$1" == "x--board" ]; then + board=`echo $2` + shift + shift + elif [ "x$1" == "x-n" -o "x$1" == "x--name" ]; then + name=`echo $2` + shift + shift + elif [ "x$1" == "x-k" -o "x$1" == "x--kernel" ]; then + kernel_url=`echo $2` + shift + shift + elif [ "x$1" == "x-b" -o "x$1" == "x--branch" ]; then + 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-r" -o "x$1" == "x--repo" ]; then + repo_file=`echo $2` + shift + shift + elif [ "x$1" == "x-s" -o "x$1" == "x--spec" ]; then + 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 + fi done - exit 1 +} + +buildid=$(date +%Y%m%d%H%M%S) +builddate=${buildid:0:8} + +ERROR(){ + echo `date` - ERROR, $* | tee -a ${log_dir}/${builddate}.log +} + +LOG(){ + echo `date` - INFO, $* | tee -a ${log_dir}/${builddate}.log } cur_dir=$(cd $(dirname $0);pwd) -rk_board_dir=$cur_dir/rockchip/boards -BOARD="" -HELP=false -IN_DOCKER=false -ARGS=() -RK_BOARDS=() -SUB_SCRIPT="" +default_param +parseargs "$@" || help $? -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) +source ${cur_dir}/boards/${board}.conf -if [ $# -eq 0 ]; then - usage +LOG "Selected board: ${board}." + +LOG "Board config: ${board}." +LOG "U-Boot config: ${ubootconfig}." +LOG "DeviceTree name: ${dtb_name}." +LOG "Target platform: ${platform}." + +used_param +if [ ! -d ${workdir} ]; then + mkdir ${workdir} 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 +# Firefly Toolchain Repo +aarch64_toolchain_bin_repo="https://gitlab.com/firefly-linux/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.git" -if [ -z "$BOARD" ]; then - if ! $HELP; then - echo "Error: --board parameter is required" +host_arch=$(arch) + +save_param +log_dir=${workdir}/log +if [ ! -d ${log_dir} ];then mkdir -p ${log_dir}; fi +if [ -f ${workdir}/.done ];then + LOG "Checking the previous build." + if [[ $(cat ${workdir}/.done | grep u-boot) == "u-boot" && \ + $(cat ${workdir}/.done | grep bootimg) == "bootimg" && \ + $(cat ${workdir}/.done | grep rootfs) == "rootfs" && \ + $(cat ${workdir}/.done | grep image) == "image" ]];then + LOG "Found complete build, clean build flag." + rm ${workdir}/.done + touch ${workdir}/.done fi - usage +else + oe_deppkg_install + if [[ "${host_arch}" == "x86_64" && "${arch}" == "arm64" ]];then + LOG "Cloning linux arm64 cross compile toolchain for x86_64..." + if [ -d ${workdir}/aarch64-toolchain ];then rm -rf ${workdir}/aarch64-toolchain; fi + git clone --depth=1 ${aarch64_toolchain_bin_repo} ${workdir}/aarch64-toolchain + else + LOG "You are running this script on a ${host_arch} mechine, progress...." + fi + touch ${workdir}/.done 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 +if [[ $(cat ${workdir}/.done | grep u-boot) != "u-boot" ]];then + bash ${cur_dir}/build_u-boot.sh fi -echo "Running: $SUB_SCRIPT ${ARGS[@]}" -"$SUB_SCRIPT" "${ARGS[@]}" +if [[ $(cat ${workdir}/.done | grep bootimg) != "bootimg" ]];then + bash ${cur_dir}/build_boot.sh +fi + +if [[ $(cat ${workdir}/.done | grep rootfs) != "rootfs" ]];then + if [[ "${host_arch}" == "x86_64" && "${arch}" == "arm64" ]];then + LOG "You are running this script on a ${host_arch} mechine, installing qemu-user-static...." + sudo rpm -ivh ${nonfree_bin_dir}/qemu-user-static-aarch64-x86_64.rpm + fi + LOG "You are running this script on a ${host_arch} mechine, start building rootfs...." + bash ${cur_dir}/build_rootfs.sh +fi + +bash ${cur_dir}/gen_image.sh -n ${name} --board ${board} diff --git a/scripts/build_boot.sh b/scripts/build_boot.sh new file mode 100755 index 0000000..f29048a --- /dev/null +++ b/scripts/build_boot.sh @@ -0,0 +1,382 @@ +#!/bin/bash +set -e +set -x + +__usage=" +Usage: build_boot [OPTIONS] +Build openEuler SBCs boot image. +The target boot.img will be generated in the build folder of the directory where the build_boot.sh script is located. + +Options: + --board BOARD_CONFIG Required! The config of target board in the boards folder, which defaults to firefly-rk3399. + -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. + --cores N The number of cpu cores to be used during making. + -h, --help Show command help. +" + +help() +{ + echo "$__usage" + exit $1 +} + +default_param() { + workdir=${cur_dir}/build + branch=openEuler-20.03-LTS + default_defconfig=openeuler_rockchip_defconfig + board=firefly-rk3399 + 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(){ + if [ -f ${workdir}/.param ]; then + branch=$(cat ${workdir}/.param | grep branch) + branch=${branch:7} + + default_defconfig=$(cat ${workdir}/.param | grep default_defconfig) + default_defconfig=${default_defconfig:18} + + board=$(cat ${workdir}/.param | grep board) + board=${board:6} + + kernel_url=$(cat ${workdir}/.param | grep kernel_url) + kernel_url=${kernel_url:11} + fi +} + +parseargs() +{ + if [ "x$#" == "x0" ]; then + return 0 + fi + + while [ "x$#" != "x0" ]; + do + if [ "x$1" == "x-h" -o "x$1" == "x--help" ]; then + return 1 + elif [ "x$1" == "x" ]; then + shift + elif [ "x$1" == "x--board" ]; then + board=`echo $2` + shift + shift + elif [ "x$1" == "x-b" -o "x$1" == "x--branch" ]; then + 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-k" -o "x$1" == "x--kernel" ]; then + kernel_url=`echo $2` + shift + shift + elif [ "x$1" == "x--cores" ]; then + make_cores=`echo $2` + shift + shift + else + echo `date` - ERROR, UNKNOWN params "$@" + return 2 + fi + done +} + +buildid=$(date +%Y%m%d%H%M%S) +builddate=${buildid:0:8} + +ERROR(){ + echo `date` - ERROR, $* | tee -a ${log_dir}/${builddate}.log +} + +LOG(){ + echo `date` - INFO, $* | tee -a ${log_dir}/${builddate}.log +} + +LOSETUP_D_IMG(){ + set +e + if [ -d ${workdir}/boot_emmc ]; then + if grep -q "${workdir}/boot_emmc " /proc/mounts ; then + umount ${workdir}/boot_emmc + fi + fi + if [ -d ${workdir}/boot_emmc ]; then + rm -rf ${workdir}/boot_emmc + fi + set -e +} + +clone_and_check_kernel_source() { + pushd ${workdir} + if [ -d kernel ]; then + if [ -f ${workdir}/.param_last ]; then + 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} + + last_platform_name=$(cat ${workdir}/.param_last | grep platform) + last_platform_name=${last_platform_name:9} + + last_kernel_url=$(cat ${workdir}/.param_last | grep kernel_url) + last_kernel_url=${last_kernel_url:11} + + pushd ${workdir}/kernel + git remote -v update + lastest_kernel_version=$(git rev-parse @{u}) + local_kernel_version=$(git rev-parse @) + popd + + 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 + if [ -d ${workdir}/kernel ];then rm -rf ${workdir}/kernel; fi + if [ -d ${workdir}/boot ];then rm -rf ${workdir}/boot; fi + if [ -f ${workdir}/boot.img ];then rm ${workdir}/boot.img; fi + git clone --depth=1 -b $branch $kernel_url kernel + LOG "clone kernel source done." + fi + fi + else + git clone --depth=1 -b $branch $kernel_url kernel + LOG "clone kernel source done." + fi + popd +} + +make_kernel(){ + LOG "make kernel(${default_defconfig}) begin..." + kernel_dir_tmp=$1 + pushd "${kernel_dir_tmp}" + if [ -n "${kernel_defconfig}" ]; then + 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 + fi + + if [ ! -z "${cross_compile}" ]; then + export CROSS_COMPILE=${cross_compile} + fi + make distclean + kernel_ver="" + if [ "x${board}" == "xraspberrypi" ]; then + kernel_ver=$(awk '/^VERSION = / {v=$3} /^PATCHLEVEL = / {p=$3} /^SUBLEVEL = / {s=$3} /^EXTRAVERSION = / {e=$3} END {print v"."p"."s (e ? "-" e : "") "+"}' Makefile) + if [ -z "${kernel_defconfig}" ]; then + if [ "x${branch}" == "xOLK-6.6" ]; then + make ARCH=arm64 -j${make_cores} O=output/v8 bcm2711_defconfig + make ARCH=arm64 -j${make_cores} O=output/v8 KERNELRELEASE=${kernel_ver}-v8 + + make ARCH=arm64 -j${make_cores} O=output/2712 bcm2712_defconfig + make ARCH=arm64 -j${make_cores} O=output/2712 KERNELRELEASE=${kernel_ver}-2712 + + cp output/2712/arch/arm64/boot/Image arch/arm64/boot/Image + cp output/2712/arch/arm64/boot/dts/${platform}/${dtb_name}.dtb arch/arm64/boot/dts/${platform}/${dtb_name}.dtb + LOG "make kernel(bcm2711_defconfig, bcm2712_defconfig) for Raspberry Pi end." + return + else + kernel_defconfig="arch/arm64/configs/bcm2711_defconfig" + fi + fi + fi + cp ${kernel_defconfig} .config + make ARCH=arm64 olddefconfig + kernel_defconfig=${kernel_defconfig##*/} + make ARCH=arm64 -j${make_cores} + LOG "make kernel(${default_defconfig}) end." + popd +} + +install_kernel() { + if [ ! -f ${workdir}/kernel/arch/arm64/boot/Image ]; then + ERROR "kernel Image can not be found!" + exit 2 + else + LOG "make kernel done." + fi + if [ -d ${workdir}/kernel/kernel-modules ];then rm -rf ${workdir}/kernel/kernel-modules; fi + if [ -d ${boot_dir} ];then rm -rf ${boot_dir}; fi + mkdir -p ${boot_dir} + mkdir -p ${workdir}/kernel/kernel-modules + pushd ${workdir}/kernel + + if [ ! -z "${cross_compile}" ]; then + export CROSS_COMPILE=${cross_compile} + fi + if [ "x${board}" == "xraspberrypi" ]; then + mkdir -p ${boot_dir}/overlays + if [ -z "${kernel_defconfig}" ] && [ "x${branch}" == "xOLK-6.6" ]; then + rpi_version=("v8" "2712") + for rpi in "${rpi_version[@]}"; do + pushd output/${rpi} + make ARCH=arm64 -j${make_cores} modules_install INSTALL_MOD_PATH=${workdir}/kernel/kernel-modules + cp arch/arm64/boot/Image ${boot_dir}/Image-${rpi} + cp .config ${boot_dir}/config-${rpi} + cp System.map ${boot_dir}/System.map-${rpi} + popd + done + mv ${boot_dir}/Image-v8 ${boot_dir}/kernel8.img + mv ${boot_dir}/Image-2712 ${boot_dir}/kernel_2712.img + cp output/2712/arch/arm64/boot/dts/${platform}/*.dtb ${boot_dir} + cp output/2712/arch/arm64/boot/dts/overlays/*.dtb* ${boot_dir}/overlays/ + else + make ARCH=arm64 -j${make_cores} modules_install INSTALL_MOD_PATH=${workdir}/kernel/kernel-modules + cp arch/arm64/boot/Image ${boot_dir}/kernel8.img + cp .config ${boot_dir}/config + cp System.map ${boot_dir}/System.map + cp arch/arm64/boot/dts/${platform}/*.dtb ${boot_dir} + cp arch/arm64/boot/dts/overlays/*.dtb* ${boot_dir}/overlays/ + fi + else + make ARCH=arm64 install INSTALL_PATH=${boot_dir} + make ARCH=arm64 -j${make_cores} modules_install INSTALL_MOD_PATH=${workdir}/kernel/kernel-modules + cp arch/arm64/boot/Image ${boot_dir} + cp arch/arm64/boot/dts/${platform}/*.dtb ${boot_dir} + fi + rm -rf ${workdir}/kernel/kernel-modules/lib/modules/*/source ${workdir}/kernel/kernel-modules/lib/modules/*/build + LOG "prepare kernel done." + popd +} + +mk_boot() { + LOG "start make bootimg..." + if [ "x${board}" != "xraspberrypi" ]; then + mkdir -p ${boot_dir}/extlinux + + LOG "start gen initrd..." + dracut --no-kernel ${boot_dir}/initrd.img + LOG "gen initrd done." + + dtb_name=$(ls ${boot_dir} | grep dtb) + LOG "gen extlinux config for $dtb_name" + if [ "${platform}" == "rockchip" ];then + bootargs=${rockchip_bootargs} + elif [ "${platform}" == "phytium" ];then + bootargs=${phytium_bootargs} + elif [ "${platform}" == "allwinner" ];then + bootargs=${allwinner_bootargs} + else + echo "Unsupported platform" + exit 2 + fi + echo "label openEuler + kernel /Image + initrd /initrd.img + fdt /${dtb_name} + append ${bootargs}" \ + > ${boot_dir}/extlinux/extlinux.conf + + LOG "gen extlinux config done." + fi + dd if=/dev/zero of=${workdir}/boot.img bs=1M count=240 status=progress + mkfs.vfat -n boot ${workdir}/boot.img + if [ -d ${workdir}/boot_emmc ];then rm -rf ${workdir}/boot_emmc; fi + mkdir ${workdir}/boot_emmc + mount ${workdir}/boot.img ${workdir}/boot_emmc/ + cp -r ${boot_dir}/* ${workdir}/boot_emmc/ + umount ${workdir}/boot.img + rmdir ${workdir}/boot_emmc + + if [ -f ${workdir}/boot.img ]; then + LOG "make boot image done." + else + ERROR "make boot image failed!" + exit 2 + fi + + LOG "clean boot directory." + rm -rf ${boot_dir} +} + +kernel_defconfig="" +cur_dir=$(cd $(dirname $0);pwd) + +default_param +local_param +parseargs "$@" || help $? + +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" +allwinner_bootargs="console=tty0 console=ttyS0,115200 rw root=UUID=614e0000-0000-4b53-8000-1d28000054a9 rootfstype=ext4 rootwait earlycon clk_gnore_unused" + +if [ -n "${default_defconfig}" ]; then + if [ ! -f $default_defconfig ] ; then + LOG "kernel defconfig is : ${default_defconfig}" + kernel_defconfig=$default_defconfig + else + LOG "use local kernel defconfig..." + cp $default_defconfig ${workdir}/ + kernel_defconfig=${workdir}/${default_defconfig##*/} + fi +elif [ "x${board}" != "xraspberrypi" ]; then + LOG "default_defconfig is missing" + exit 1 +fi + +cross_compile="" +host_arch=$(arch) + +if [[ "${host_arch}" == "x86_64" && "${arch}" == "arm64" ]];then + LOG "You are running this script on a ${host_arch} mechine, use cross compile...." + cross_compile="${workdir}/aarch64-toolchain/bin/aarch64-none-linux-gnu-" +else + LOG "You are running this script on a ${host_arch} mechine, progress...." +fi + +if [ ! -d ${workdir} ]; then + mkdir ${workdir} +fi + +source ${cur_dir}/boards/${board}.conf + +if [ ! -d ${log_dir} ];then mkdir -p ${log_dir}; fi +if [ ! -f ${workdir}/.done ];then + touch ${workdir}/.done +fi +sed -i 's/bootimg//g' ${workdir}/.done +LOG "build boot..." + +if [ "x${board}" == "xraspberrypi" ] && [ -z "${kernel_url}" ]; then + LOG "build an empty boot.img for Raspberry Pi." + rm -rf ${workdir}/kernel || LOG "remove kernel source." + dd if=/dev/zero of=${workdir}/boot.img bs=1M count=10 status=progress + mkfs.vfat -n boot ${workdir}/boot.img + LOG "The boot.img is generated in the ${workdir}." + echo "bootimg" >> ${workdir}/.done + exit 0 +fi + +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 + make_kernel ${workdir}/kernel +fi +if [[ -f ${workdir}/boot.img && $(cat ${workdir}/.done | grep bootimg) == "bootimg" ]]; then + LOG "boot is the latest" +else + trap 'LOSETUP_D_IMG' EXIT + LOSETUP_D_IMG + install_kernel + mk_boot +fi +LOG "The boot.img is generated in the ${workdir}." +echo "bootimg" >> ${workdir}/.done diff --git a/scripts/rockchip/build_rootfs.sh b/scripts/build_rootfs.sh similarity index 67% rename from scripts/rockchip/build_rootfs.sh rename to scripts/build_rootfs.sh index 6363bd2..558e459 100755 --- a/scripts/rockchip/build_rootfs.sh +++ b/scripts/build_rootfs.sh @@ -1,4 +1,6 @@ #!/bin/bash +set -e +set +x __usage=" Usage: build_rootfs [OPTIONS] @@ -10,7 +12,7 @@ Options: --board, BOARD_CONFIG Required! The config of target board in the boards folder, which defaults to firefly-rk3399. -r, --repo REPO_INFO The URL/path of target repo file or list of repo's baseurls which should be a space separated list. -b, --branch KERNEL_BRANCH The branch name of kernel source's repository, which defaults to openEuler-20.03-LTS. - -s, --spec SPEC The image's specification: headless, xfce, ukui, dde or the file path of rpmlist. The default is headless. + -s, --spec SPEC The image's specification: headless, xfce, ukui, dde, gnome, devstation or the file path of rpmlist. The default is headless. -h, --help Show command help. " @@ -23,28 +25,33 @@ help() default_param() { board=firefly-rk3399 repo_file="https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-20.03-LTS/generic.repo" + workdir=${cur_dir}/build tmp_dir=${workdir}/tmp - workdir=$cur_dir/build branch=openEuler-20.03-LTS rootfs_arch=aarch64 - nonfree_bin_dir=${workdir}/../bin + nonfree_bin_dir=${cur_dir}/bin/rockchip + config_dir=${cur_dir}/configs/rockchip rootfs_dir=${workdir}/rootfs log_dir=${workdir}/log + rootfs_mnt=${workdir}/rootfs_tmp } local_param(){ - if [ -f $workdir/.param ]; then - board=$(cat $workdir/.param | grep board) + if [ -f ${workdir}/.param ]; then + board=$(cat ${workdir}/.param | grep board) board=${board:6} - repo_file=$(cat $workdir/.param | grep repo_file) + repo_file=$(cat ${workdir}/.param | grep repo_file) repo_file=${repo_file:10} - branch=$(cat $workdir/.param | grep branch) + branch=$(cat ${workdir}/.param | grep branch) branch=${branch:7} - spec_param=$(cat $workdir/.param | grep spec_param) + spec_param=$(cat ${workdir}/.param | grep spec_param) spec_param=${spec_param:11} + + kernel_url=$(cat ${workdir}/.param | grep kernel_url) + kernel_url=${kernel_url:11} fi } @@ -96,13 +103,13 @@ LOG(){ LOSETUP_D_IMG(){ set +e - if [ -d ${workdir}/rootfs_tmp ]; then - if grep -q "${workdir}/rootfs_tmp " /proc/mounts ; then - umount ${workdir}/rootfs_tmp + if [ -d ${rootfs_mnt} ]; then + if grep -q "${rootfs_mnt} " /proc/mounts ; then + umount ${rootfs_mnt} fi fi - if [ -d ${workdir}/rootfs_tmp ]; then - rm -rf ${workdir}/rootfs_tmp + if [ -d ${rootfs_mnt} ]; then + rm -rf ${rootfs_mnt} fi set -e } @@ -140,14 +147,17 @@ INSTALL_PACKAGES(){ ERROR can not install $item. fi done + if [ "x${board}" == "xraspberrypi" ] && [ -z "${kernel_url}" ]; then + chroot ${rootfs_dir}/ dnf ${tmp_repo_info} --disablerepo="*" install -y raspberrypi-kernel --nogpgcheck + if [ $? == 0 ]; then + LOG install raspberrypi-kernel. + else + ERROR can not install raspberrypi-kernel. + fi + fi } build_rootfs() { - trap 'UMOUNT_ALL' EXIT - cd $workdir - if [ -d rootfs ];then rm -rf rootfs; fi - mkdir rootfs - if [ ! -d ${tmp_dir} ]; then mkdir -p ${tmp_dir} else @@ -156,8 +166,8 @@ build_rootfs() { if [ "x$spec_param" == "xheadless" ] || [ "x$spec_param" == "x" ]; then : - elif [ "x$spec_param" == "xxfce" ] || [ "x$spec_param" == "xukui" ] || [ "x$spec_param" == "xdde" ]; then - CONFIG_RPM_LIST=$workdir/../configs/rpmlist-${spec_param} + elif [ "x$spec_param" == "xxfce" ] || [ "x$spec_param" == "xukui" ] || [ "x$spec_param" == "xdde" ] || [ "x$spec_param" == "xgnome" ] || [ "x$spec_param" == "xdevstation" ]; then + CONFIG_RPM_LIST=${config_dir}/rpmlist-${spec_param} elif [ -f ${spec_param} ]; then cp ${spec_param} ${tmp_dir}/ spec_file_name=${spec_param##*/} @@ -166,16 +176,13 @@ build_rootfs() { echo `date` - ERROR, please check your params in option -s or --spec. exit 2 fi - - mkdir -p ${rootfs_dir}/var/lib/rpm - rpm --root ${rootfs_dir}/ --initdb + echo $(pwd) if [ "x$repo_file" == "x" ] ; then echo `date` - ERROR, \"-r REPO_INFO or --repo REPO_INFO\" missing. help 2 elif [ "x${repo_file:0:4}" == "xhttp" ]; then if [ "x${repo_file:0-5}" == "x.repo" ]; then - repo_url=${repo_file} wget ${repo_file} -P ${tmp_dir}/ repo_file_name=${repo_file##*/} repo_file=${tmp_dir}/${repo_file_name} @@ -186,7 +193,7 @@ build_rootfs() { for baseurl in ${repo_file// / } do echo [repo${index}] >> ${repo_file_tmp} - echo name=repo${index} to build rk3399 image >> ${repo_file_tmp} + echo name=repo${index} to build ${board} image >> ${repo_file_tmp} echo baseurl=${baseurl} >> ${repo_file_tmp} echo enabled=1 >> ${repo_file_tmp} echo gpgcheck=0 >> ${repo_file_tmp} @@ -222,12 +229,12 @@ build_rootfs() { done os_release_name="openEuler-release" - dnf ${repo_info} --disablerepo="*" --downloaddir=${workdir}/ download ${os_release_name} --forcearch ${rootfs_arch} + dnf ${repo_info} --disablerepo="*" --downloaddir=${tmp_dir}/ download ${os_release_name} --forcearch ${rootfs_arch} if [ $? != 0 ]; then ERROR "Fail to download ${os_release_name}!" exit 2 fi - os_release_name=`ls -r ${workdir}/${os_release_name}*.rpm 2>/dev/null| head -n 1` + os_release_name=`ls -r ${tmp_dir}/${os_release_name}*.rpm 2>/dev/null| head -n 1` if [ -z "${os_release_name}" ]; then ERROR "${os_release_name} can not be found!" exit 2 @@ -235,6 +242,16 @@ build_rootfs() { LOG "Success to download ${os_release_name}." fi + LOG "make rootfs for ${repo_file} begin..." + trap 'UMOUNT_ALL' EXIT + if [ -d ${rootfs_dir} ]; then + UMOUNT_ALL + rm -rf ${rootfs_dir} + fi + mkdir ${rootfs_dir} + + mkdir -p ${rootfs_dir}/var/lib/rpm + rpm --root ${rootfs_dir}/ --initdb rpm -ivh --nodeps --root ${rootfs_dir}/ ${os_release_name} --ignorearch mkdir -p ${rootfs_dir}/etc/rpm @@ -248,52 +265,41 @@ build_rootfs() { mount --bind /dev ${rootfs_dir}/dev mount -t proc /proc ${rootfs_dir}/proc mount -t sysfs /sys ${rootfs_dir}/sys - - INSTALL_PACKAGES ${CONFIG_RPM_LIST} "${repo_info}" - - rm -rf ${rootfs_dir}/*.core - rm ${workdir}/*rpm - - for dns in $default_dns - do - echo " nameserver ${dns}" >> "${rootfs_dir}/etc/resolv.conf" - done - - if [ ! -d ${rootfs_dir}/etc/sysconfig/network-scripts ]; then mkdir "${rootfs_dir}/etc/sysconfig/network-scripts"; fi - echo " TYPE=Ethernet - PROXY_METHOD=none - BROWSER_ONLY=no - BOOTPROTO=dhcp - DEFROUTE=yes - IPV4_FAILURE_FATAL=no - IPV6INIT=yes - IPV6_AUTOCONF=yes - IPV6_DEFROUTE=yes - IPV6_FAILURE_FATAL=no - IPV6_ADDR_GEN_MODE=stable-privacy - NAME=eth0 - UUID=851a6f36-e65c-3a43-8f4a-78fd0fc09dc9 - ONBOOT=yes - AUTOCONNECT_PRIORITY=-999 - DEVICE=eth0" > "${rootfs_dir}/etc/sysconfig/network-scripts/ifup-eth0" - - LOG "Configure network done." - - cp $nonfree_bin_dir/../bin/extend-root.sh ${rootfs_dir}/etc/rc.d/init.d/extend-root.sh - chmod +x ${rootfs_dir}/etc/rc.d/init.d/extend-root.sh - set +e - sed -i -e '/^#NTP=/cNTP=0.cn.pool.ntp.org' ${rootfs_dir}/etc/systemd/timesyncd.conf - sed -i -e 's/#FallbackNTP=/FallbackNTP=1.asia.pool.ntp.org 2.asia.pool.ntp.org /g' ${rootfs_dir}/etc/systemd/timesyncd.conf + INSTALL_PACKAGES ${CONFIG_RPM_LIST} "${repo_info}" + cat ${rootfs_dir}/etc/systemd/timesyncd.conf | grep "^NTP=*" + if [ $? -ne 0 ]; then + sed -i -e '/^#NTP=/cNTP=0.cn.pool.ntp.org' ${rootfs_dir}/etc/systemd/timesyncd.conf + sed -i -e 's/#FallbackNTP=/FallbackNTP=1.asia.pool.ntp.org 2.asia.pool.ntp.org /g' ${rootfs_dir}/etc/systemd/timesyncd.conf + fi set -e - cat << EOF | chroot ${rootfs_dir} /bin/bash - echo 'openeuler' | passwd --stdin root - echo openEuler > /etc/hostname - ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime - chkconfig --add extend-root.sh - chkconfig extend-root.sh on -EOF + rm -rf ${rootfs_dir}/*.core + + cp -Lp ${config_dir}/resolv.conf ${rootfs_dir}/etc/resolv.conf + + if [ ! -d ${rootfs_dir}/etc/sysconfig/network-scripts ]; then mkdir "${rootfs_dir}/etc/sysconfig/network-scripts"; fi + cp -Lp ${config_dir}/ifcfg-eth0 ${rootfs_dir}/etc/sysconfig/network-scripts/ifcfg-eth0 + + LOG "Configure network done." + + if [ "x${board}" == "xraspberrypi" ]; then + mkdir -p ${rootfs_dir}/lib/udev/rules.d + if [ ! -d ${rootfs_dir}/usr/share/licenses/raspi ]; then mkdir -p ${rootfs_dir}/usr/share/licenses/raspi; fi + cp ${config_dir}/hosts ${rootfs_dir}/etc/hosts + cp ${config_dir}/*.rules ${rootfs_dir}/lib/udev/rules.d/ + cp ${config_dir}/LICENCE.* ${rootfs_dir}/usr/share/licenses/raspi/ + fi + + if [ ! -d ${rootfs_dir}/etc/rc.d/init.d ]; then mkdir -p ${rootfs_dir}/etc/rc.d/init.d; fi + cp -Lp ${config_dir}/extend-root.sh ${rootfs_dir}/etc/rc.d/init.d/extend-root.sh + chmod +x ${rootfs_dir}/etc/rc.d/init.d/extend-root.sh + echo net.ipv4.conf.wlan0.rp_filter=0 >> ${rootfs_dir}/etc/sysctl.conf + + cp -Lp ${config_dir}/chroot.sh ${rootfs_dir}/chroot.sh + chmod +x ${rootfs_dir}/chroot.sh + + chroot ${rootfs_dir} /bin/bash -c "echo 'Y' | /chroot.sh ${spec_param}" LOG "Set NTP and auto expand rootfs done." @@ -304,11 +310,13 @@ EOF POST_BOARD_OVERLAY UMOUNT_ALL + rm ${rootfs_dir}/chroot.sh + LOG "make rootfs for ${repo_file} end." + } mk_rootfsimg() { trap 'LOSETUP_D_IMG' EXIT - cd $workdir rootfs_size=`du -sh --block-size=1MiB ${rootfs_dir} | cut -f 1 | xargs` mod_size=`du -sh --block-size=1MiB ${workdir}/kernel/kernel-modules/lib/modules | cut -f 1 | xargs` size=$(($rootfs_size+$mod_size+100)) @@ -316,17 +324,17 @@ mk_rootfsimg() { dd if=/dev/zero of=${rootfs_img} bs=1MiB count=$size status=progress && sync mkfs.ext4 -L rootfs ${workdir}/rootfs.img - if [ -d ${workdir}/rootfs_tmp ];then rm -rf ${workdir}/rootfs_tmp; fi - mkdir ${workdir}/rootfs_tmp - mount ${workdir}/rootfs.img ${workdir}/rootfs_tmp + if [ -d ${rootfs_mnt} ];then rm -rf ${rootfs_mnt}; fi + mkdir ${rootfs_mnt} + mount ${workdir}/rootfs.img ${rootfs_mnt} - rsync -avHAXq ${rootfs_dir}/* ${workdir}/rootfs_tmp + rsync -avHAXq ${rootfs_dir}/* ${rootfs_mnt} sync sleep 10 LOSETUP_D_IMG - if [ -f $workdir/rootfs.img ]; then + if [ -f ${workdir}/rootfs.img ]; then LOG "make rootfs image done." else ERROR "make rootfs image failed!" @@ -343,7 +351,10 @@ default_param local_param parseargs "$@" || help $? -CONFIG_RPM_LIST=$workdir/../configs/rpmlist +if [ "x${board}" == "xraspberrypi" ]; then + config_dir=${cur_dir}/configs/raspberrypi +fi +CONFIG_RPM_LIST=${config_dir}/rpmlist POST_BOARD_OVERLAY() { echo "Initial POST_BOARD_OVERLAY function" # It will be overwritten by board.conf. @@ -353,44 +364,39 @@ if [[ "x$arch" == "arm64" ]]; then rootfs_arch="aarch64" fi -default_dns="8.8.8.8 8.8.4.4 114.114.114.114" - -if [ ! -d $workdir ]; then - mkdir $workdir +if [ ! -d ${workdir} ]; then + mkdir ${workdir} fi -source $cur_dir/boards/${board}.conf +source ${cur_dir}/boards/${board}.conf if [ ! -d ${log_dir} ];then mkdir -p ${log_dir}; fi -if [ ! -f $workdir/.done ];then - touch $workdir/.done +if [ ! -f ${workdir}/.done ];then + touch ${workdir}/.done fi -cd $workdir -sed -i 's/rootfs//g' $workdir/.done +sed -i 's/rootfs//g' ${workdir}/.done LOG "build rootfs..." -if [ -d rootfs ]; then - if [[ -f $workdir/rootfs.img && $(cat $workdir/.done | grep rootfs) == "rootfs" ]];then - if [ -f $workdir/.param_last ];then - last_branch=$(cat $workdir/.param_last | grep branch) +if [ -d ${rootfs_dir} ]; then + if [[ -f ${workdir}/rootfs.img && $(cat ${workdir}/.done | grep rootfs) == "rootfs" ]];then + if [ -f ${workdir}/.param_last ];then + last_branch=$(cat ${workdir}/.param_last | grep branch) last_branch=${last_branch:7} - last_board=$(cat $workdir/.param_last | grep board) + last_board=$(cat ${workdir}/.param_last | grep board) last_board=${last_board:6} - last_repo_file=$(cat $workdir/.param_last | grep repo_file) + last_repo_file=$(cat ${workdir}/.param_last | grep repo_file) last_repo_file=${last_repo_file:10} - last_spec_param=$(cat $workdir/.param_last | grep spec_param) + last_spec_param=$(cat ${workdir}/.param_last | grep spec_param) last_spec_param=${last_spec_param:11} if [[ ${last_branch} != ${branch} || ${last_board} != ${board} || ${last_repo_file} != ${repo_file} || ${last_spec_param} != ${spec_param} ]]; then - rm -rf rootfs build_rootfs mk_rootfsimg fi fi else - rm -rf rootfs build_rootfs mk_rootfsimg fi @@ -399,4 +405,4 @@ else mk_rootfsimg fi LOG "The rootfs.img is generated in the ${workdir}." -echo "rootfs" >> $workdir/.done +echo "rootfs" >> ${workdir}/.done diff --git a/scripts/rockchip/build_u-boot.sh b/scripts/build_u-boot.sh similarity index 71% rename from scripts/rockchip/build_u-boot.sh rename to scripts/build_u-boot.sh index b84edc8..0f09ae3 100755 --- a/scripts/rockchip/build_u-boot.sh +++ b/scripts/build_u-boot.sh @@ -1,4 +1,6 @@ #!/bin/bash +set -e +set -x __usage=" Usage: build_u-boot [OPTIONS] @@ -19,17 +21,17 @@ help() default_param() { board=firefly-rk3399 - workdir=$cur_dir/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 - nonfree_bin_dir=${workdir}/../bin + log_dir=${workdir}/log + nonfree_bin_dir=${cur_dir}/bin/rockchip make_cores=$(nproc) } local_param(){ - if [ -f $workdir/.param ]; then - board=$(cat $workdir/.param | grep board) + if [ -f ${workdir}/.param ]; then + board=$(cat ${workdir}/.param | grep board) board=${board:6} fi } @@ -73,14 +75,14 @@ LOG(){ } build_u-boot() { - cd $workdir - if [ -d u-boot ];then - cd u-boot + pushd ${workdir} + if [ -d ${workdir}/u-boot ];then + pushd ${workdir}/u-boot remote_url_exist=`git remote -v | grep "origin"` remote_url=`git ls-remote --get-url origin` + popd if [[ ${remote_url_exist} = "" || ${remote_url} != ${u_boot_url} ]]; then - cd ../ - rm -rf $workdir/u-boot + rm -rf ${workdir}/u-boot git clone --depth=1 -b ${u_boot_ver} ${u_boot_url} if [[ $? -eq 0 ]]; then LOG "clone u-boot done." @@ -93,8 +95,9 @@ build_u-boot() { git clone --depth=1 -b ${u_boot_ver} ${u_boot_url} LOG "clone u-boot done." fi - cd $workdir/u-boot - if [[ -f $workdir/u-boot/u-boot.itb && -f $workdir/u-boot/idbloader.img ]];then + popd + pushd ${workdir}/u-boot + if [[ -f ${workdir}/u-boot/u-boot.itb && -f ${workdir}/u-boot/idbloader.img ]];then LOG "u-boot is the latest" else if [ -f bl31.elf ];then rm bl31.elf; fi @@ -116,23 +119,24 @@ build_u-boot() { ERROR "make u-boot failed!" exit 2 fi + popd } use_prebuild_u-boot() { - if [ -d $workdir/u-boot ]; then - rm -rf $workdir/u-boot + if [ -d ${workdir}/u-boot ]; then + rm -rf ${workdir}/u-boot fi - mkdir $workdir/u-boot + mkdir ${workdir}/u-boot if [[ "x${platform}" == "xrockchip" ]]; then - cp ${local_uboot_dir}/* $workdir/u-boot + cp ${local_uboot_dir}/* ${workdir}/u-boot elif [[ "x${platform}" == "xphytium" ]]; then - cp ${local_uboot_dir}/fip-all-sd-boot.bin $workdir/u-boot - mkenvimage -s 0x1000 -o $workdir/u-boot/env.bin ${local_uboot_dir}/env.txt - dd if=$workdir/u-boot/env.bin of=$workdir/u-boot/fip-all-sd-boot.bin bs=1k seek=1472 conv=notrunc + cp ${local_uboot_dir}/fip-all-sd-boot.bin ${workdir}/u-boot + mkenvimage -s 0x1000 -o ${workdir}/u-boot/env.bin ${local_uboot_dir}/env.txt + dd if=${workdir}/u-boot/env.bin of=${workdir}/u-boot/fip-all-sd-boot.bin bs=1k seek=1472 conv=notrunc elif [[ "x${platform}" == "xallwinner" ]]; then - cp ${local_uboot_dir}/* $workdir/u-boot + cp ${local_uboot_dir}/* ${workdir}/u-boot else echo "target u-boot can not found!" exit 2 @@ -156,24 +160,28 @@ else LOG "You are running this script on a ${host_arch} mechine, progress...." fi -if [ ! -d $workdir ]; then - mkdir $workdir +if [ ! -d ${workdir} ]; then + mkdir ${workdir} fi -source $cur_dir/boards/${board}.conf +source ${cur_dir}/boards/${board}.conf if [ ! -d ${log_dir} ];then mkdir -p ${log_dir}; fi -if [ ! -f $workdir/.done ];then - touch $workdir/.done +if [ ! -f ${workdir}/.done ];then + touch ${workdir}/.done fi -sed -i 's/u-boot//g' $workdir/.done +sed -i 's/u-boot//g' ${workdir}/.done LOG "build u-boot..." -if [ "x$ubootconfig" == "xnone" ]; then - use_prebuild_u-boot +if [ "x${board}" == "xraspberrypi" ]; then + LOG "Skip build u-boot for Raspberry Pi." else - build_u-boot + if [ "x$ubootconfig" == "x" ]; then + use_prebuild_u-boot + else + build_u-boot + fi + LOG "The bootloader files are generated in the ${workdir}/u-boot." fi -LOG "The bootloader files are generated in the ${workdir}/u-boot." -echo "u-boot" >> $workdir/.done +echo "u-boot" >> ${workdir}/.done diff --git a/scripts/raspberrypi/config/99-com.rules b/scripts/configs/raspberrypi/99-com.rules similarity index 100% rename from scripts/raspberrypi/config/99-com.rules rename to scripts/configs/raspberrypi/99-com.rules diff --git a/scripts/configs/raspberrypi/Dockerfile b/scripts/configs/raspberrypi/Dockerfile new file mode 120000 index 0000000..383aff7 --- /dev/null +++ b/scripts/configs/raspberrypi/Dockerfile @@ -0,0 +1 @@ +../rockchip/Dockerfile \ No newline at end of file diff --git a/scripts/raspberrypi/config/LICENCE.raspberrypi-sys-mods b/scripts/configs/raspberrypi/LICENCE.raspberrypi-sys-mods similarity index 100% rename from scripts/raspberrypi/config/LICENCE.raspberrypi-sys-mods rename to scripts/configs/raspberrypi/LICENCE.raspberrypi-sys-mods diff --git a/scripts/raspberrypi/config/chroot.sh b/scripts/configs/raspberrypi/chroot.sh similarity index 100% rename from scripts/raspberrypi/config/chroot.sh rename to scripts/configs/raspberrypi/chroot.sh diff --git a/scripts/raspberrypi/config/config.txt b/scripts/configs/raspberrypi/config.txt similarity index 100% rename from scripts/raspberrypi/config/config.txt rename to scripts/configs/raspberrypi/config.txt diff --git a/scripts/raspberrypi/config/extend-root.sh b/scripts/configs/raspberrypi/extend-root.sh similarity index 100% rename from scripts/raspberrypi/config/extend-root.sh rename to scripts/configs/raspberrypi/extend-root.sh diff --git a/scripts/raspberrypi/config/hosts b/scripts/configs/raspberrypi/hosts similarity index 100% rename from scripts/raspberrypi/config/hosts rename to scripts/configs/raspberrypi/hosts diff --git a/scripts/configs/raspberrypi/ifcfg-eth0 b/scripts/configs/raspberrypi/ifcfg-eth0 new file mode 120000 index 0000000..a29ea54 --- /dev/null +++ b/scripts/configs/raspberrypi/ifcfg-eth0 @@ -0,0 +1 @@ +../rockchip/ifcfg-eth0 \ No newline at end of file diff --git a/scripts/configs/raspberrypi/resolv.conf b/scripts/configs/raspberrypi/resolv.conf new file mode 120000 index 0000000..8bc7426 --- /dev/null +++ b/scripts/configs/raspberrypi/resolv.conf @@ -0,0 +1 @@ +../rockchip/resolv.conf \ No newline at end of file diff --git a/scripts/raspberrypi/config/rpmlist b/scripts/configs/raspberrypi/rpmlist similarity index 94% rename from scripts/raspberrypi/config/rpmlist rename to scripts/configs/raspberrypi/rpmlist index 9eb765b..2056076 100644 --- a/scripts/raspberrypi/config/rpmlist +++ b/scripts/configs/raspberrypi/rpmlist @@ -19,7 +19,6 @@ hostname bluez pulseaudio-module-bluetooth parted -raspberrypi-kernel raspberrypi-firmware raspberrypi-bluetooth sudo diff --git a/scripts/raspberrypi/config/rpmlist-dde b/scripts/configs/raspberrypi/rpmlist-dde similarity index 95% rename from scripts/raspberrypi/config/rpmlist-dde rename to scripts/configs/raspberrypi/rpmlist-dde index 46de32b..263ee27 100644 --- a/scripts/raspberrypi/config/rpmlist-dde +++ b/scripts/configs/raspberrypi/rpmlist-dde @@ -19,7 +19,6 @@ hostname bluez pulseaudio-module-bluetooth parted -raspberrypi-kernel raspberrypi-firmware raspberrypi-bluetooth sudo diff --git a/scripts/raspberrypi/config/rpmlist-devstation b/scripts/configs/raspberrypi/rpmlist-devstation similarity index 99% rename from scripts/raspberrypi/config/rpmlist-devstation rename to scripts/configs/raspberrypi/rpmlist-devstation index f4da10c..5222f4d 100644 --- a/scripts/raspberrypi/config/rpmlist-devstation +++ b/scripts/configs/raspberrypi/rpmlist-devstation @@ -19,7 +19,6 @@ hostname bluez pulseaudio-module-bluetooth parted -raspberrypi-kernel raspberrypi-firmware raspberrypi-bluetooth sudo diff --git a/scripts/raspberrypi/config/rpmlist-devstation-24.03-LTS-SP2 b/scripts/configs/raspberrypi/rpmlist-devstation-24.03-LTS-SP2 similarity index 99% rename from scripts/raspberrypi/config/rpmlist-devstation-24.03-LTS-SP2 rename to scripts/configs/raspberrypi/rpmlist-devstation-24.03-LTS-SP2 index dd7b729..ef32d4a 100644 --- a/scripts/raspberrypi/config/rpmlist-devstation-24.03-LTS-SP2 +++ b/scripts/configs/raspberrypi/rpmlist-devstation-24.03-LTS-SP2 @@ -19,7 +19,6 @@ hostname bluez pulseaudio-module-bluetooth parted -raspberrypi-kernel raspberrypi-firmware raspberrypi-bluetooth sudo diff --git a/scripts/raspberrypi/config/rpmlist-devstation-24.09 b/scripts/configs/raspberrypi/rpmlist-devstation-24.09 similarity index 99% rename from scripts/raspberrypi/config/rpmlist-devstation-24.09 rename to scripts/configs/raspberrypi/rpmlist-devstation-24.09 index 6f1ae1d..3d3fe52 100644 --- a/scripts/raspberrypi/config/rpmlist-devstation-24.09 +++ b/scripts/configs/raspberrypi/rpmlist-devstation-24.09 @@ -19,7 +19,6 @@ hostname bluez pulseaudio-module-bluetooth parted -raspberrypi-kernel raspberrypi-firmware raspberrypi-bluetooth sudo diff --git a/scripts/raspberrypi/config/rpmlist-devstation-25.03 b/scripts/configs/raspberrypi/rpmlist-devstation-25.03 similarity index 99% rename from scripts/raspberrypi/config/rpmlist-devstation-25.03 rename to scripts/configs/raspberrypi/rpmlist-devstation-25.03 index c145004..7b4ba85 100644 --- a/scripts/raspberrypi/config/rpmlist-devstation-25.03 +++ b/scripts/configs/raspberrypi/rpmlist-devstation-25.03 @@ -19,7 +19,6 @@ hostname bluez pulseaudio-module-bluetooth parted -raspberrypi-kernel raspberrypi-firmware raspberrypi-bluetooth sudo diff --git a/scripts/raspberrypi/config/rpmlist-gnome b/scripts/configs/raspberrypi/rpmlist-gnome similarity index 99% rename from scripts/raspberrypi/config/rpmlist-gnome rename to scripts/configs/raspberrypi/rpmlist-gnome index 1165993..87020d6 100644 --- a/scripts/raspberrypi/config/rpmlist-gnome +++ b/scripts/configs/raspberrypi/rpmlist-gnome @@ -19,7 +19,6 @@ hostname bluez pulseaudio-module-bluetooth parted -raspberrypi-kernel raspberrypi-firmware raspberrypi-bluetooth sudo diff --git a/scripts/raspberrypi/config/rpmlist-ukui b/scripts/configs/raspberrypi/rpmlist-ukui similarity index 95% rename from scripts/raspberrypi/config/rpmlist-ukui rename to scripts/configs/raspberrypi/rpmlist-ukui index a648435..f725d59 100644 --- a/scripts/raspberrypi/config/rpmlist-ukui +++ b/scripts/configs/raspberrypi/rpmlist-ukui @@ -19,7 +19,6 @@ hostname bluez pulseaudio-module-bluetooth parted -raspberrypi-kernel raspberrypi-firmware raspberrypi-bluetooth sudo diff --git a/scripts/raspberrypi/config/rpmlist-xfce b/scripts/configs/raspberrypi/rpmlist-xfce similarity index 96% rename from scripts/raspberrypi/config/rpmlist-xfce rename to scripts/configs/raspberrypi/rpmlist-xfce index 7f8fa80..3b0a32d 100644 --- a/scripts/raspberrypi/config/rpmlist-xfce +++ b/scripts/configs/raspberrypi/rpmlist-xfce @@ -19,7 +19,6 @@ hostname bluez pulseaudio-module-bluetooth parted -raspberrypi-kernel raspberrypi-firmware raspberrypi-bluetooth sudo diff --git a/scripts/rockchip/configs/Dockerfile b/scripts/configs/rockchip/Dockerfile similarity index 100% rename from scripts/rockchip/configs/Dockerfile rename to scripts/configs/rockchip/Dockerfile diff --git a/scripts/configs/rockchip/chroot.sh b/scripts/configs/rockchip/chroot.sh new file mode 100644 index 0000000..05778ea --- /dev/null +++ b/scripts/configs/rockchip/chroot.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +echo 'openeuler' | passwd --stdin root +echo openEuler > /etc/hostname +ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime +chkconfig --add extend-root.sh +chkconfig extend-root.sh on \ No newline at end of file diff --git a/scripts/rockchip/bin/extend-root.sh b/scripts/configs/rockchip/extend-root.sh old mode 100644 new mode 100755 similarity index 100% rename from scripts/rockchip/bin/extend-root.sh rename to scripts/configs/rockchip/extend-root.sh diff --git a/scripts/raspberrypi/config/ifcfg-eth0 b/scripts/configs/rockchip/ifcfg-eth0 similarity index 100% rename from scripts/raspberrypi/config/ifcfg-eth0 rename to scripts/configs/rockchip/ifcfg-eth0 diff --git a/scripts/configs/rockchip/resolv.conf b/scripts/configs/rockchip/resolv.conf new file mode 100644 index 0000000..ac2479e --- /dev/null +++ b/scripts/configs/rockchip/resolv.conf @@ -0,0 +1,3 @@ +nameserver 8.8.8.8 +nameserver 8.8.4.4 +nameserver 114.114.114.114 \ No newline at end of file diff --git a/scripts/rockchip/configs/rpmlist b/scripts/configs/rockchip/rpmlist similarity index 100% rename from scripts/rockchip/configs/rpmlist rename to scripts/configs/rockchip/rpmlist diff --git a/scripts/rockchip/configs/rpmlist-dde b/scripts/configs/rockchip/rpmlist-dde similarity index 100% rename from scripts/rockchip/configs/rpmlist-dde rename to scripts/configs/rockchip/rpmlist-dde diff --git a/scripts/rockchip/configs/rpmlist-ukui b/scripts/configs/rockchip/rpmlist-ukui similarity index 100% rename from scripts/rockchip/configs/rpmlist-ukui rename to scripts/configs/rockchip/rpmlist-ukui diff --git a/scripts/rockchip/configs/rpmlist-xfce b/scripts/configs/rockchip/rpmlist-xfce similarity index 100% rename from scripts/rockchip/configs/rpmlist-xfce rename to scripts/configs/rockchip/rpmlist-xfce diff --git a/scripts/rockchip/gen_image-x86_64.sh b/scripts/gen_image-x86_64.sh old mode 100644 new mode 100755 similarity index 92% rename from scripts/rockchip/gen_image-x86_64.sh rename to scripts/gen_image-x86_64.sh index 97fd960..acd98f7 --- a/scripts/rockchip/gen_image-x86_64.sh +++ b/scripts/gen_image-x86_64.sh @@ -1,8 +1,10 @@ #!/bin/bash +set -e +set -x __usage=" Usage: gen_image [OPTIONS] -Generate Rockchip bootable image. +Generate openEuler bootable image. The target compressed bootable images will be generated in the build/YYYY-MM-DD folder of the directory where the gen_image.sh script is located. Options: @@ -17,8 +19,8 @@ help() } default_param() { - workdir=$cur_dir/build - bindir=$cur_dir/bin/rk3588-pack + workdir=${cur_dir}/build + bindir=${cur_dir}/bin/rockchip/rk3588-pack outputdir=${workdir}/$(date +'%Y-%m-%d') name=openEuler-22.03-LTS-RK3588 rootfs_dir=${workdir}/rootfs @@ -79,4 +81,4 @@ default_param prepare_bin prepare_img make_img -echo "image" >> $workdir/.done +echo "image" >> ${workdir}/.done diff --git a/scripts/rockchip/gen_image.sh b/scripts/gen_image.sh similarity index 69% rename from scripts/rockchip/gen_image.sh rename to scripts/gen_image.sh index e2483bf..41f58df 100755 --- a/scripts/rockchip/gen_image.sh +++ b/scripts/gen_image.sh @@ -1,12 +1,14 @@ #!/bin/bash +set -e +set -x __usage=" Usage: gen_image [OPTIONS] -Generate Rockchip bootable image. +Generate openEuler bootable image. The target compressed bootable images will be generated in the build/YYYY-MM-DD folder of the directory where the gen_image.sh script is located. Options: - -n, --name IMAGE_NAME The Rockchip image name to be built. + -n, --name IMAGE_NAME The openEuler image name to be built. --board BOARD_CONFIG Required! The config of target board in the boards folder, which defaults to firefly-rk3399. -h, --help Show command help. " @@ -24,6 +26,8 @@ default_param() { board=firefly-rk3399 soc_name=rk3399 platform=rockchip + nonfree_bin_dir=${cur_dir}/bin/rockchip + config_dir=${cur_dir}/configs/rockchip rootfs_dir=${workdir}/rootfs boot_dir=${workdir}/boot uboot_dir=${workdir}/u-boot @@ -47,6 +51,9 @@ parseargs() shift elif [ "x$1" == "x-n" -o "x$1" == "x--name" ]; then name=`echo $2` + if [ "x${name:0-4}" == "x.img" ]; then + name=${name::-4} + fi shift shift elif [ "x$1" == "x--board" ]; then @@ -122,15 +129,13 @@ LOG(){ } make_img(){ - cd $workdir - - if [[ -f $workdir/boot.img && $(cat $workdir/.done | grep bootimg) == "bootimg" ]];then + if [[ -f ${workdir}/boot.img && $(cat ${workdir}/.done | grep bootimg) == "bootimg" ]];then LOG "boot.img check done." else ERROR "boot.img check failed, please re-run build_boot.sh." exit 2 fi - if [[ -f $workdir/rootfs.img && $(cat $workdir/.done | grep rootfs) == "rootfs" ]];then + if [[ -f ${workdir}/rootfs.img && $(cat ${workdir}/.done | grep rootfs) == "rootfs" ]];then LOG "rootfs.img check done." else ERROR "rootfs.img check failed, please re-run build_rootfs.sh." @@ -143,16 +148,25 @@ make_img(){ size=$(($size+1100)) losetup -D img_file=${workdir}/${name}.img + LOG create ${img_file} size of ${size}MiB dd if=/dev/zero of=${img_file} bs=1MiB count=$size status=progress && sync LOG "create ${part_table} partition table." - parted ${img_file} mklabel ${part_table} mkpart primary fat32 32768s 524287s - + if [ "x${board}" == "xraspberrypi" ]; then + section1_start=16384 + section1_end=1064959 + else + section1_start=32768 + section1_end=524287 + fi + parted ${img_file} mklabel ${part_table} mkpart primary fat32 ${section1_start}s ${section1_end}s parted ${img_file} -s set 1 boot on - parted ${img_file} mkpart primary ext4 524288s 100% + parted ${img_file} mkpart primary ext4 $(($section1_end+1))s 100% device=`losetup -f --show -P ${img_file}` + LOG "after losetup: ${device}" trap 'LOSETUP_D_IMG' EXIT + LOG "image ${img_file} created and mounted as ${device}" kpartx -va ${device} loopX=${device##*\/} partprobe ${device} @@ -170,25 +184,40 @@ make_img(){ if [ -d ${rootfs_dir} ];then rm -rf ${rootfs_dir}; fi mkdir ${rootfs_dir} - mount $workdir/rootfs.img ${rootfs_dir} + mount ${workdir}/rootfs.img ${rootfs_dir} if [ -d ${boot_dir} ];then rm -rf ${boot_dir}; fi mkdir ${boot_dir} - mount $workdir/boot.img ${boot_dir} + mount ${workdir}/boot.img ${boot_dir} + + cp -rfp ${boot_dir}/* ${boot_mnt} || LOG "${boot_dir} is empty." - cp -rfp ${boot_dir}/* ${boot_mnt} line=$(blkid | grep $rootp) - uuid=${line#*UUID=\"} - uuid=${uuid%%\"*} - sed -i "s|UUID=614e0000-0000-4b53-8000-1d28000054a9|UUID=${uuid}|g" ${boot_mnt}/extlinux/extlinux.conf + if [ "x${board}" == "xraspberrypi" ]; then + if [ -d ${rootfs_dir}/boot/grub2 ]; then + rm -rf ${rootfs_dir}/boot/grub2 + fi + cp -rfp ${rootfs_dir}/boot/* ${boot_mnt}/ || LOG "no file in ${rootfs_dir}/boot/" + cp ${config_dir}/config.txt ${boot_mnt}/ + + partuuid=${line#*PARTUUID=\"} + partuuid=${partuuid%%\"*} + echo "console=serial0,115200 console=tty1 root=PARTUUID=${partuuid} rootfstype=ext4 elevator=deadline rootwait net.ifnames=0" > ${boot_mnt}/cmdline.txt + else + uuid=${line#*UUID=\"} + uuid=${uuid%%\"*} + sed -i "s|UUID=614e0000-0000-4b53-8000-1d28000054a9|UUID=${uuid}|g" ${boot_mnt}/extlinux/extlinux.conf + fi rsync -avHAXq ${rootfs_dir}/* ${root_mnt} sync sleep 10 LOG "copy openEuler-root done." - if [ -d ${root_mnt}/lib/modules ];then rm -rf ${root_mnt}/lib/modules; fi - cp -rfp $workdir/kernel/kernel-modules/lib/modules ${root_mnt}/lib - LOG "install kernel modules done." + if [ -d ${workdir}/kernel/kernel-modules/lib/modules ]; then + if [ -d ${root_mnt}/lib/modules ];then rm -rf ${root_mnt}/lib/modules; fi + cp -rfp ${workdir}/kernel/kernel-modules/lib/modules ${root_mnt}/lib + LOG "install kernel modules done." + fi umount $rootp umount $bootp @@ -230,7 +259,7 @@ make_img(){ ERROR "allwinner u-boot file can not be found!" exit 2 fi - else + elif [ "${platform}" != "broadcom" ];then echo "Unsupported platform" fi @@ -241,18 +270,12 @@ make_img(){ } outputd(){ - cd $workdir - - if [ -f $outputdir ];then - img_name_check=$(ls $outputdir | grep $name) - if [ "x$img_name_check" != "x" ]; then - rm ${name}.img* - rm ${name}.tar.gz* - fi + if [ -d ${outputdir} ];then + find ${outputdir} -name "${name}.img" -o -name "${name}.tar.gz" -o -name "${name}.img.xz" -delete else mkdir -p $outputdir fi - mv ${name}.img ${outputdir} + mv ${workdir}/${name}.img ${outputdir} LOG "xz openEuler image begin..." xz ${outputdir}/${name}.img if [ ! -f ${outputdir}/${name}.img.xz ]; then @@ -264,11 +287,11 @@ outputd(){ if [[ "x$soc_name" == "xrk3399" && "x$platform" == "xrockchip" ]]; then LOG "tar openEuler image begin..." - cp $workdir/../bin/rk3399_loader.bin $workdir - cp $workdir/../bin/rk3399_parameter.gpt $workdir - cp $workdir/u-boot/idbloader.img $workdir - cp $workdir/u-boot/u-boot.itb $workdir - cd $workdir + cp ${nonfree_bin_dir}/rk3399_loader.bin ${workdir} + cp ${nonfree_bin_dir}/rk3399_parameter.gpt ${workdir} + cp ${workdir}/u-boot/idbloader.img ${workdir} + cp ${workdir}/u-boot/u-boot.itb ${workdir} + pushd ${workdir} tar -zcvf ${outputdir}/${name}.tar.gz \ rk3399_loader.bin \ rk3399_parameter.gpt \ @@ -276,24 +299,27 @@ outputd(){ u-boot.itb \ boot.img \ rootfs.img + popd if [ ! -f ${outputdir}/${name}.tar.gz ]; then ERROR "tar openEuler image failed!" exit 2 else LOG "tar openEuler image success." fi - rm $workdir/rk3399_loader.bin - rm $workdir/rk3399_parameter.gpt - rm $workdir/idbloader.img - rm $workdir/u-boot.itb + rm ${workdir}/rk3399_loader.bin + rm ${workdir}/rk3399_parameter.gpt + rm ${workdir}/idbloader.img + rm ${workdir}/u-boot.itb - cd $outputdir + pushd $outputdir sha256sum ${name}.tar.gz >> ${name}.tar.gz.sha256sum + popd fi - cd $outputdir + pushd $outputdir sha256sum ${name}.img.xz >> ${name}.img.xz.sha256sum + popd - LOG "The target images are generated in the ${outputdir}." + LOG "The target images: ${outputdir}/${name}.img.xz." } set -e @@ -301,18 +327,22 @@ cur_dir=$(cd $(dirname $0);pwd) default_param parseargs "$@" || help $? -if [ ! -d $workdir ]; then - mkdir $workdir +if [ "x${board}" == "xraspberrypi" ]; then + config_dir=${cur_dir}/configs/raspberrypi fi -source $cur_dir/boards/${board}.conf +if [ ! -d ${workdir} ]; then + mkdir ${workdir} +fi + +source ${cur_dir}/boards/${board}.conf if [ ! -d ${log_dir} ];then mkdir -p ${log_dir}; fi -if [ ! -f $workdir/.done ];then - touch $workdir/.done +if [ ! -f ${workdir}/.done ];then + touch ${workdir}/.done fi -sed -i 's/image//g' $workdir/.done +sed -i 's/image//g' ${workdir}/.done LOG "gen image..." make_img outputd -echo "image" >> $workdir/.done +echo "image" >> ${workdir}/.done diff --git a/scripts/raspberrypi/build-image-common.sh b/scripts/raspberrypi/build-image-common.sh deleted file mode 100755 index 76aafd8..0000000 --- a/scripts/raspberrypi/build-image-common.sh +++ /dev/null @@ -1,640 +0,0 @@ -#!/bin/bash -set -e - -__usage=" -Usage: build-image-common [OPTIONS] -Build raspberrypi image. - -Options: - -n, --name IMAGE_NAME The raspberrypi image name to be built. - -k, --kernel KERNEL_URL The URL of kernel source's repository, which defaults to https://gitee.com/openeuler/raspberrypi-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-raspi_defconfig. - -r, --repo REPO_INFO Required! The URL/path of target repo file or list of repo's baseurls which should be a space separated list. - -s, --spec SPEC The image's specification: headless, xfce, ukui, dde, gnome, devstation 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() -{ - echo "$__usage" - exit $1 -} - -parseargs() -{ - if [ "x$#" == "x0" ]; then - return 1 - fi - - while [ "x$#" != "x0" ]; - do - if [ "x$1" == "x-h" -o "x$1" == "x--help" ]; then - return 1 - elif [ "x$1" == "x" ]; then - shift - elif [ "x$1" == "x-n" -o "x$1" == "x--name" ]; then - img_name=`echo $2` - shift - shift - elif [ "x$1" == "x-k" -o "x$1" == "x--kernel" ]; then - kernel_url=`echo $2` - shift - shift - elif [ "x$1" == "x-b" -o "x$1" == "x--branch" ]; then - kernel_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-r" -o "x$1" == "x--repo" ]; then - repo_file=`echo $2` - shift - shift - elif [ "x$1" == "x-s" -o "x$1" == "x--spec" ]; then - 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 - fi - done -} - -ERROR(){ - echo `date` - ERROR, $* | tee -a ${log_dir}/${builddate}.log -} - -LOG(){ - echo `date` - INFO, $* | tee -a ${log_dir}/${builddate}.log -} - -UMOUNT_ALL(){ - set +e - if grep -q "${rootfs_dir}/dev " /proc/mounts ; then - umount -l ${rootfs_dir}/dev - fi - if grep -q "${rootfs_dir}/proc " /proc/mounts ; then - umount -l ${rootfs_dir}/proc - fi - if grep -q "${rootfs_dir}/sys " /proc/mounts ; then - umount -l ${rootfs_dir}/sys - fi - set -e -} - -LOSETUP_D_IMG(){ - set +e - if [ -d ${root_mnt} ]; then - if grep -q "${root_mnt} " /proc/mounts ; then - umount ${root_mnt} - fi - fi - if [ -d ${boot_mnt} ]; then - if grep -q "${boot_mnt} " /proc/mounts ; then - umount ${boot_mnt} - fi - fi - if [ "x$device" != "x" ]; then - kpartx -d ${device} - losetup -d ${device} - device="" - fi - if [ -d ${root_mnt} ]; then - rm -rf ${root_mnt} - fi - if [ -d ${boot_mnt} ]; then - rm -rf ${boot_mnt} - fi - set -e -} - -INSTALL_PACKAGES(){ - for item in $(cat $1) - do - dnf --installroot=${rootfs_dir}/ install -y $item - if [ $? == 0 ]; then - LOG install $item. - else - ERROR can not install $item. - fi - done -} - -prepare(){ - if [ ! -d ${tmp_dir} ]; then - mkdir -p ${tmp_dir} - else - rm -rf ${tmp_dir}/* - fi - - kernel_name=${kernel_url##*/} - kernel_name=${kernel_name%.*} - - if [ "x$default_defconfig" == "x" ] ; then - default_defconfig=$kernel_defconfig - elif [ -f $default_defconfig ]; then - cp $default_defconfig ${tmp_dir}/ - kernel_defconfig=${tmp_dir}/${default_defconfig##*/} - else - echo `date` - ERROR, config file $default_defconfig can not be found. - exit 2 - fi - if [ "x$spec_param" == "xheadless" ] || [ "x$spec_param" == "x" ]; then - : - elif [ "x$spec_param" == "xxfce" ] || [ "x$spec_param" == "xukui" ] || [ "x$spec_param" == "xdde" ] || [ "x$spec_param" == "xgnome" ] || [ "x$spec_param" == "xdevstation" ]; then - CONFIG_RPM_LIST=${euler_dir}/rpmlist-${spec_param} - elif [ -f ${spec_param} ]; then - cp ${spec_param} ${tmp_dir}/ - spec_file_name=${spec_param##*/} - CONFIG_RPM_LIST=${tmp_dir}/${spec_file_name} - else - echo `date` - ERROR, please check your params in option -s or --spec. - exit 2 - fi - if [ "x$repo_file" == "x" ] ; then - echo `date` - ERROR, \"-r REPO_INFO or --repo REPO_INFO\" missing. - help 2 - elif [ "x${repo_file:0:4}" == "xhttp" ]; then - if [ "x${repo_file:0-5}" == "x.repo" ]; then - wget ${repo_file} -P ${tmp_dir}/ - repo_file_name=${repo_file##*/} - repo_file=${tmp_dir}/${repo_file_name} - else - repo_file_name=tmp.repo - repo_file_tmp=${tmp_dir}/${repo_file_name} - index=1 - for baseurl in ${repo_file// / } - do - echo [repo${index}] >> ${repo_file_tmp} - echo name=repo${index} to build raspi image >> ${repo_file_tmp} - echo baseurl=${baseurl} >> ${repo_file_tmp} - echo enabled=1 >> ${repo_file_tmp} - echo gpgcheck=0 >> ${repo_file_tmp} - echo >> ${repo_file_tmp} - index=$(($index+1)) - done - repo_file=${repo_file_tmp} - fi - else - if [ ! -f $repo_file ]; then - echo `date` - ERROR, repo file $repo_file can not be found. - exit 2 - else - cp $repo_file ${tmp_dir}/ - repo_file_name=${repo_file##*/} - repo_file=${tmp_dir}/${repo_file_name} - fi - fi - - repo_suffix=${repo_file_name%.*} - if [ "x$img_name" == "x" ]; then - if [[ "${repo_suffix}" =~ ^${OS_NAME}.* ]]; then - img_name=${repo_suffix} - else - img_name=${OS_NAME} - fi - img_name=${img_name}-raspi-aarch64-${buildid}.img - else - if [ "x${img_name:0-4}" != "x.img" ]; then - img_name=${img_name}.img - fi - fi - img_file=${img_dir}/${img_name} - - if [ ! -d ${log_dir} ]; then - mkdir -p ${log_dir} - fi - LOG "prepare begin..." - dnf clean all - dnf makecache - dnf install -y bison flex openssl-devel bc wget dnf-plugins-core rsync parted dosfstools grep bash xz kpartx - - repo_info_names=`cat ${repo_file} | grep "^\["` - repo_baseurls=`cat ${repo_file} | grep "^baseurl="` - index=1 - for repo_name in ${repo_info_names} - do - repo_name_list[$index]=${repo_name:1:-1} - index=$((index+1)) - done - index=1 - for baseurl in ${repo_baseurls} - do - repo_info="${repo_info} --repofrompath ${repo_name_list[$index]}-tmp,${baseurl:8}" - index=$((index+1)) - done - set +e - os_release_name=${OS_NAME}-release - dnf ${repo_info} --disablerepo="*" --downloaddir=${tmp_dir}/ download ${os_release_name} - if [ $? != 0 ]; then - ERROR "Fail to download ${os_release_name}!" - exit 2 - fi - os_release_name=`ls -r ${tmp_dir}/${os_release_name}*.rpm 2>/dev/null| head -n 1` - if [ -z "${os_release_name}" ]; then - ERROR "${os_release_name} can not be found!" - exit 2 - fi - wget https://raw.githubusercontent.com/RPi-Distro/raspberrypi-sys-mods/master/etc.armhf/udev/rules.d/99-com.rules -P ${tmp_dir}/ - if [ $? -ne 0 ]; then - cp ${euler_dir}/99-com.rules ${tmp_dir}/ - fi - wget https://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git/plain/regulatory.db.p7s -P ${tmp_dir}/ - if [ $? -ne 0 ]; then - cp ${euler_dir}/regulatory.db.p7s ${tmp_dir}/ - fi - wget https://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git/plain/regulatory.db -P ${tmp_dir}/ - if [ $? -ne 0 ]; then - cp ${euler_dir}/regulatory.db ${tmp_dir}/ - fi - set -e - if [ ! -d ${img_dir} ]; then - mkdir -p ${img_dir} - fi - LOG "prepare end." -} - -update_firmware_app(){ - LOG "update firmware and app begin..." - cd "${workdir}" - ######## firmware - if [[ ! -d firmware ]]; then - git clone --depth=1 https://github.com/raspberrypi/firmware - if [[ $? -eq 0 ]]; then - LOG "clone firmware done." - else - ERROR "clone firmware failed." - exit 1 - fi - else - cd firmware - git pull origin master - cd ../ - fi - ######## bluez-firmware - if [[ ! -d bluez-firmware ]]; then - git clone --depth=1 https://github.com/RPi-Distro/bluez-firmware - if [[ $? -eq 0 ]]; then - LOG "clone bluez-firmware done." - else - ERROR "clone bluez-firmware failed." - exit 1 - fi - else - cd bluez-firmware - git pull origin master - cd ../ - fi - ######## firmware-nonfree - if [[ ! -d firmware-nonfree ]]; then - git clone --depth=1 -b buster https://github.com/RPi-Distro/firmware-nonfree - if [[ $? -eq 0 ]]; then - LOG "clone firmware-nonfree done." - else - ERROR "clone firmware-nonfree failed." - exit 1 - fi - else - cd firmware-nonfree - git pull origin master - cd ../ - fi - ######## pi-bluetooth - if [[ ! -d pi-bluetooth ]]; then - git clone https://github.com/RPi-Distro/pi-bluetooth - if [[ $? -eq 0 ]]; then - LOG "clone pi-bluetooth done." - else - ERROR "clone pi-bluetooth failed." - exit 1 - fi - else - cd pi-bluetooth - git pull origin master - cd ../ - fi - LOG "update firmware and app end." -} - -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_commitid=$(git rev-parse HEAD) - output_dir=${output_dir}/${kernel_commitid} - if [ -f ${output_dir}/.${kernel_defconfig}.DONE ] ; then - LOG This kernel has already been built successfully before. Use the last built kernel image. - return 0 - fi - kernel_defconfig=arch/arm64/configs/${kernel_defconfig} - fi - find ${output_dir}/ -mindepth 1 -maxdepth 1 -print0 | xargs -0 rm -rf - make distclean - cp ${kernel_defconfig} .config - make ARCH=arm64 olddefconfig - kernel_defconfig=${kernel_defconfig##*/} - make ARCH=arm64 -j${make_cores} - if [[ $? -eq 0 ]]; then - mkdir -p ${output_dir} - make ARCH=arm64 INSTALL_MOD_PATH=${output_dir}/ modules_install - if [[ $? -eq 0 ]]; then - cp arch/arm64/boot/Image ${output_dir}/ - cp arch/arm64/boot/dts/broadcom/*.dtb ${output_dir}/ - mkdir ${output_dir}/overlays - cp arch/arm64/boot/dts/overlays/*.dtb* ${output_dir}/overlays/ - LOG "kernel content in ${output_dir}." - else - ERROR "modules install failed!" - exit 1 - fi - else - ERROR "make ARCH=arm64 -j${make_cores} failed!" - exit 1 - fi - touch ${output_dir}/.${kernel_defconfig}.DONE - LOG "make kernel(${default_defconfig}) end." -} - -update_kernel(){ - LOG "update kernel begin..." - cd "${workdir}" - kernel_dir="" - for file in `ls` - do - if [[ ${file} = ${kernel_name} && -d ${file}/.git ]]; then - kernel_dir=${workdir}/${file} - break - fi - done - - if [[ ${kernel_dir} = "" ]]; then - git clone ${kernel_url} - if [[ $? -eq 0 ]]; then - LOG "clone ${kernel_name} done." - else - ERROR "clone ${kernel_name} failed." - exit 1 - fi - kernel_dir=${workdir}/${kernel_name} - else - cd "${kernel_name}" - remote_url_exist=`git remote -v | grep "origin"` - remote_url=`git ls-remote --get-url origin` - if [[ ${remote_url_exist} = "" || ${remote_url} != ${kernel_url} ]]; then - cd ../ - rm -rf ${kernel_name} - git clone ${kernel_url} - if [[ $? -eq 0 ]]; then - LOG "clone ${kernel_name} done." - else - ERROR "clone ${kernel_name} failed." - exit 1 - fi - fi - fi - cd "${kernel_dir}" - make distclean - cur_branch=`git branch | grep \*` - cur_branch=${cur_branch##*\ } - exist_branch=0 - if [[ ${cur_branch} = ${kernel_branch} ]]; then - exist_branch=1 - else - for branch in `git branch -a` - do - branch=${branch##*\ } - if [[ ${branch} = ${kernel_branch} ]]; then - exist_branch=1 - git checkout ${kernel_branch} - break - fi - done - if [[ ${exist_branch} -eq 0 ]]; then - git fetch origin - for branch in `git branch -a` - do - branch=${branch##*\ } - if [[ ${branch} = "remotes/origin/${kernel_branch}" ]]; then - git checkout remotes/origin/${kernel_branch} - git checkout -b ${kernel_branch} - LOG "git checkout -b ${kernel_branch} done." - exist_branch=1 - break - fi - done - fi - fi - if [[ ${exist_branch} -eq 0 ]]; then - ERROR "no ${kernel_branch} found." - exit 1 - else - git fetch origin - git reset --hard remotes/origin/${kernel_branch} - make_kernel ${kernel_dir} - fi - LOG "update kernel end." -} - -make_rootfs(){ - LOG "make rootfs for ${repo_file} begin..." - if [[ -d ${rootfs_dir} ]]; then - UMOUNT_ALL - rm -rf ${rootfs_dir} - fi - mkdir -p ${rootfs_dir}/var/lib/rpm - rpm --root ${rootfs_dir} --initdb - rpm -ivh --nodeps --root ${rootfs_dir}/ ${os_release_name} - mkdir -p ${rootfs_dir}/etc/rpm - chmod a+rX ${rootfs_dir}/etc/rpm - echo "%_install_langs en_US" > ${rootfs_dir}/etc/rpm/macros.image-language-conf - if [[ ! -d ${rootfs_dir}/etc/yum.repos.d ]]; then - mkdir -p ${rootfs_dir}/etc/yum.repos.d - fi - cp ${repo_file} ${rootfs_dir}/etc/yum.repos.d/tmp.repo - set +e - INSTALL_PACKAGES $CONFIG_RPM_LIST - cat ${rootfs_dir}/etc/systemd/timesyncd.conf | grep "^NTP=*" - if [ $? -ne 0 ]; then - sed -i -e '/^#NTP=/cNTP=0.cn.pool.ntp.org' ${rootfs_dir}/etc/systemd/timesyncd.conf - sed -i -e 's/#FallbackNTP=/FallbackNTP=1.asia.pool.ntp.org 2.asia.pool.ntp.org /g' ${rootfs_dir}/etc/systemd/timesyncd.conf - fi - set -e - cp ${euler_dir}/hosts ${rootfs_dir}/etc/hosts - if [ ! -d $rootfs_dir/etc/sysconfig/network-scripts ]; then - mkdir -p $rootfs_dir/etc/sysconfig/network-scripts - fi - cp ${euler_dir}/ifcfg-eth0 $rootfs_dir/etc/sysconfig/network-scripts/ifcfg-eth0 - mkdir -p ${rootfs_dir}/lib/firmware ${rootfs_dir}/usr/bin ${rootfs_dir}/lib/udev/rules.d ${rootfs_dir}/lib/systemd/system - cp ${workdir}/bluez-firmware/broadcom/* ${rootfs_dir}/lib/firmware/ - cp -r ${workdir}/firmware-nonfree/brcm/ ${rootfs_dir}/lib/firmware/ - mv ${rootfs_dir}/lib/firmware/BCM43430A1.hcd ${rootfs_dir}/lib/firmware/brcm/ - mv ${rootfs_dir}/lib/firmware/BCM4345C0.hcd ${rootfs_dir}/lib/firmware/brcm/ - cp ${tmp_dir}/regulatory.db* ${rootfs_dir}/lib/firmware/ - cp ${tmp_dir}/*.rules ${rootfs_dir}/lib/udev/rules.d/ - cp ${workdir}/pi-bluetooth/usr/bin/* ${rootfs_dir}/usr/bin/ - cp ${workdir}/pi-bluetooth/lib/udev/rules.d/90-pi-bluetooth.rules ${rootfs_dir}/lib/udev/rules.d/ - cp ${workdir}/pi-bluetooth/debian/pi-bluetooth.bthelper\@.service ${rootfs_dir}/lib/systemd/system/bthelper\@.service - cp ${workdir}/pi-bluetooth/debian/pi-bluetooth.hciuart.service ${rootfs_dir}/lib/systemd/system/hciuart.service - cp -r ${output_dir}/lib/modules ${rootfs_dir}/lib/ - mkdir -p ${rootfs_dir}/usr/share/licenses/raspi - cp ${euler_dir}/License/* ${rootfs_dir}/usr/share/licenses/raspi/ - cp ${euler_dir}/chroot.sh ${rootfs_dir}/chroot.sh - if [ ! -d ${rootfs_dir}/etc/rc.d/init.d ]; then - mkdir -p ${rootfs_dir}/etc/rc.d/init.d - fi - cp ${euler_dir}/extend-root.sh ${rootfs_dir}/etc/rc.d/init.d/extend-root.sh - chmod +x ${rootfs_dir}/chroot.sh - mount --bind /dev ${rootfs_dir}/dev - mount -t proc /proc ${rootfs_dir}/proc - mount -t sysfs /sys ${rootfs_dir}/sys - chroot ${rootfs_dir} /bin/bash -c "echo 'Y' | /chroot.sh ${spec_param}" - UMOUNT_ALL - rm ${rootfs_dir}/etc/yum.repos.d/tmp.repo - rm ${rootfs_dir}/chroot.sh - LOG "make rootfs for ${repo_file} end." -} - -make_img(){ - LOG "make ${img_file} begin..." - device="" - LOSETUP_D_IMG - size=`du -sh --block-size=1MiB ${rootfs_dir} | cut -f 1 | xargs` - size=$(($size+1150)) - losetup -D - dd if=/dev/zero of=${img_file} bs=1MiB count=$size && sync - parted ${img_file} mklabel msdos mkpart primary fat32 8192s 593919s - parted ${img_file} -s set 1 boot - parted ${img_file} mkpart primary linux-swap 593920s 1593343s - parted ${img_file} mkpart primary ext4 1593344s 100% - device=`losetup -f --show -P ${img_file}` - LOG "after losetup: ${device}" - trap 'LOSETUP_D_IMG' EXIT - LOG "image ${img_file} created and mounted as ${device}" - kpartx -va ${device} - loopX=${device##*\/} - partprobe ${device} - bootp=/dev/mapper/${loopX}p1 - swapp=/dev/mapper/${loopX}p2 - rootp=/dev/mapper/${loopX}p3 - LOG "bootp: " ${bootp} "rootp: " ${rootp} - mkfs.vfat -n boot ${bootp} - mkswap ${swapp} --pagesize 4096 - mkfs.ext4 ${rootp} - mkdir -p ${root_mnt} ${boot_mnt} - mount -t vfat -o uid=root,gid=root,umask=0000 ${bootp} ${boot_mnt} - mount -t ext4 ${rootp} ${root_mnt} - prefix_len=${#loopX} - let prefix_len=prefix_len+13 - fstab_array=("" "" "" "") - for line in `blkid | grep /dev/mapper/${loopX}p` - do - partuuid=${line#*PARTUUID=\"} - fstab_array[${line:$prefix_len:1}]=${partuuid%%\"*} - done - echo "PARTUUID=${fstab_array[3]} / ext4 defaults,noatime 0 0" > ${rootfs_dir}/etc/fstab - echo "PARTUUID=${fstab_array[1]} /boot vfat defaults,noatime 0 0" >> ${rootfs_dir}/etc/fstab - echo "PARTUUID=${fstab_array[2]} swap swap defaults,noatime 0 0" >> ${rootfs_dir}/etc/fstab - - cp -rf --preserve=mode,timestamps --no-preserve=ownership ${workdir}/firmware/boot/* ${boot_mnt}/ - pushd ${boot_mnt}/ - rm -f *.dtb cmdline.txt kernel.img kernel7.img kernel7l.img - cp ${euler_dir}/config.txt ./ - echo "console=serial0,115200 console=tty1 root=PARTUUID=${fstab_array[3]} rootfstype=ext4 elevator=deadline rootwait net.ifnames=0" > cmdline.txt - popd - cp --preserve=mode,timestamps --no-preserve=ownership ${output_dir}/Image ${boot_mnt}/kernel8.img - cp --preserve=mode,timestamps --no-preserve=ownership ${output_dir}/*.dtb ${boot_mnt}/ - cp --preserve=mode,timestamps --no-preserve=ownership ${output_dir}/overlays/* ${boot_mnt}/overlays/ - - rm -rf ${rootfs_dir}/boot - rsync -avHAXq ${rootfs_dir}/* ${root_mnt} - pushd ${root_mnt} - for tmpdir in `ls ${output_dir}/lib/modules` - do - if [ -d ./lib/modules/${tmpdir} ]; then - if [ -L ./lib/modules/${tmpdir}/build ]; then - rm -rf ./lib/modules/${tmpdir}/build - fi - if [ -L ./lib/modules/${tmpdir}/source ]; then - rm -rf ./lib/modules/${tmpdir}/source - fi - fi - done - popd - sync - sleep 10 - LOSETUP_D_IMG - rm -rf ${rootfs_dir} - losetup -D - pushd ${img_dir} - if [ -f ${img_file} ]; then - sha256sum $(basename ${img_file}) > ${img_file}.sha256sum - xz -T 20 -z -c ${img_file} > ${img_file}.xz - sha256sum $(basename ${img_file}.xz) > ${img_file}.xz.sha256sum - LOG "made sum files for ${img_file}" - fi - popd - LOG "write ${img_file} done." - LOG "make ${img_file} end." -} - -if [ "$EUID" -ne 0 ]; then - echo `date` - ERROR, Please run as root! - exit -fi - -kernel_url="https://gitee.com/openeuler/raspberrypi-kernel.git" -kernel_branch="openEuler-20.03-LTS" -kernel_defconfig="openeuler-raspi_defconfig" -default_defconfig="" -make_cores=$(nproc) - -parseargs "$@" || help $? - -OS_NAME=openEuler - -cur_dir=$(cd $(dirname $0);pwd) - -workdir=${cur_dir} -if [ "x${workdir}" == "x/" ]; then - workdir=/raspi_output -else - workdir=${workdir}/raspi_output -fi - -buildid=$(date +%Y%m%d%H%M%S) -builddate=${buildid:0:8} - -tmp_dir=${workdir}/tmp -log_dir=${workdir}/log -img_dir=${workdir}/img -output_dir=${workdir}/output -rootfs_dir=${workdir}/rootfs -root_mnt=${workdir}/root -boot_mnt=${workdir}/boot -euler_dir=${cur_dir}/config-common - -CONFIG_RPM_LIST=${euler_dir}/rpmlist - -trap 'UMOUNT_ALL' EXIT -UMOUNT_ALL -prepare -IFS=$'\n' -update_firmware_app -update_kernel - -make_rootfs -make_img diff --git a/scripts/raspberrypi/build-image.sh b/scripts/raspberrypi/build-image.sh deleted file mode 100755 index efc5f51..0000000 --- a/scripts/raspberrypi/build-image.sh +++ /dev/null @@ -1,395 +0,0 @@ -#!/bin/bash - -set -e - -__usage=" -Usage: build-image [OPTIONS] -Build raspberrypi image. - -Options: - -d, --dir DIR The directory for storing the image and other temporary files, which defaults to be the directory in which the script resides. If the DIR does not exist, it will be created automatically. - -r, --repo REPO_INFO Required! The URL/path of target repo file or list of repo's baseurls which should be a space separated list. - -n, --name IMAGE_NAME The raspberrypi image name to be built. - -s, --spec SPEC The image's specification: headless, xfce, ukui, dde, gnome, devstation or the file path of rpmlist. The default is headless. - -h, --help Show command help. -" - -help() -{ - echo "$__usage" - exit $1 -} - -parseargs() -{ - if [ "x$#" == "x0" ]; then - return 1 - fi - - while [ "x$#" != "x0" ]; - do - if [ "x$1" == "x-h" -o "x$1" == "x--help" ]; then - return 1 - elif [ "x$1" == "x" ]; then - shift - elif [ "x$1" == "x-r" -o "x$1" == "x--repo" ]; then - repo_file=`echo $2` - shift - shift - elif [ "x$1" == "x-n" -o "x$1" == "x--name" ]; then - img_name=`echo $2` - shift - shift - elif [ "x$1" == "x-d" -o "x$1" == "x--dir" ]; then - workdir=`echo $2` - shift - shift - elif [ "x$1" == "x-s" -o "x$1" == "x--spec" ]; then - spec_param=`echo $2` - shift - shift - else - echo `date` - ERROR, UNKNOWN params "$@" - return 2 - fi - done -} - -ERROR(){ - echo `date` - ERROR, $* | tee -a ${log_dir}/${builddate}.log -} - -LOG(){ - echo `date` - INFO, $* | tee -a ${log_dir}/${builddate}.log -} - -UMOUNT_ALL(){ - set +e - if grep -q "${rootfs_dir}/dev " /proc/mounts ; then - umount -l ${rootfs_dir}/dev - fi - if grep -q "${rootfs_dir}/proc " /proc/mounts ; then - umount -l ${rootfs_dir}/proc - fi - if grep -q "${rootfs_dir}/sys " /proc/mounts ; then - umount -l ${rootfs_dir}/sys - fi - set -e -} - -LOSETUP_D_IMG(){ - set +e - if [ -d ${root_mnt} ]; then - if grep -q "${root_mnt} " /proc/mounts ; then - umount ${root_mnt} - fi - fi - if [ -d ${boot_mnt} ]; then - if grep -q "${boot_mnt} " /proc/mounts ; then - umount ${boot_mnt} - fi - fi - if [ "x$device" != "x" ]; then - kpartx -d ${device} - losetup -d ${device} - device="" - fi - if [ -d ${root_mnt} ]; then - rm -rf ${root_mnt} - fi - if [ -d ${boot_mnt} ]; then - rm -rf ${boot_mnt} - fi - set -e -} - -INSTALL_PACKAGES(){ - for item in $(cat $1) - do - dnf --installroot=${rootfs_dir}/ install -y $item - if [ $? == 0 ]; then - LOG install $item. - else - ERROR can not install $item. - fi - done -} - -prepare(){ - if [ ! -d ${tmp_dir} ]; then - mkdir -p ${tmp_dir} - else - rm -rf ${tmp_dir}/* - fi - if [ "x$spec_param" == "xheadless" ] || [ "x$spec_param" == "x" ]; then - : - elif [ "x$spec_param" == "xxfce" ] || [ "x$spec_param" == "xukui" ] || [ "x$spec_param" == "xdde" ] || [ "x$spec_param" == "xgnome" ] || [ "x$spec_param" == "xdevstation" ]; then - CONFIG_RPM_LIST=${euler_dir}/rpmlist-${spec_param} - elif [ -f ${spec_param} ]; then - cp ${spec_param} ${tmp_dir}/ - spec_file_name=${spec_param##*/} - CONFIG_RPM_LIST=${tmp_dir}/${spec_file_name} - else - echo `date` - ERROR, please check your params in option -s or --spec. - exit 2 - fi - if [ "x$repo_file" == "x" ] ; then - echo `date` - ERROR, \"-r REPO_INFO or --repo REPO_INFO\" missing. - help 2 - elif [ "x${repo_file:0:4}" == "xhttp" ]; then - if [ "x${repo_file:0-5}" == "x.repo" ]; then - wget ${repo_file} -P ${tmp_dir}/ - repo_file_name=${repo_file##*/} - repo_file=${tmp_dir}/${repo_file_name} - else - repo_file_name=tmp.repo - repo_file_tmp=${tmp_dir}/${repo_file_name} - index=1 - for baseurl in ${repo_file// / } - do - echo [repo${index}] >> ${repo_file_tmp} - echo name=repo${index} to build raspi image >> ${repo_file_tmp} - echo baseurl=${baseurl} >> ${repo_file_tmp} - echo enabled=1 >> ${repo_file_tmp} - echo gpgcheck=0 >> ${repo_file_tmp} - echo >> ${repo_file_tmp} - index=$(($index+1)) - done - repo_file=${repo_file_tmp} - fi - else - if [ ! -f $repo_file ]; then - echo `date` - ERROR, repo file $repo_file can not be found. - exit 2 - else - cp $repo_file ${tmp_dir}/ - repo_file_name=${repo_file##*/} - repo_file=${tmp_dir}/${repo_file_name} - fi - fi - - repo_suffix=${repo_file_name%.*} - if [ "x$img_name" == "x" ]; then - if [[ "${repo_suffix}" =~ ^${OS_NAME}.* ]]; then - img_name=${repo_suffix} - else - img_name=${OS_NAME} - fi - img_name=${img_name}-raspi-aarch64.img - else - if [ "x${img_name:0-4}" != "x.img" ]; then - img_name=${img_name}.img - fi - fi - img_file=${img_dir}/${img_name} - - if [ ! -d ${log_dir} ]; then - mkdir -p ${log_dir} - fi - LOG "prepare begin..." - dnf clean all - dnf makecache - dnf install -y dnf-plugins-core rsync parted dosfstools grep bash xz kpartx - - if [ -d ${rootfs_dir} ]; then - rm -rf ${rootfs_dir} - fi - if [ ! -d ${img_dir} ]; then - mkdir -p ${img_dir} - fi - - repo_info_names=`cat ${repo_file} | grep "^\["` - repo_baseurls=`cat ${repo_file} | grep "^baseurl="` - index=1 - for repo_name in ${repo_info_names} - do - repo_name_list[$index]=${repo_name:1:-1} - index=$((index+1)) - done - index=1 - for baseurl in ${repo_baseurls} - do - repo_info="${repo_info} --repofrompath ${repo_name_list[$index]}-tmp,${baseurl:8}" - index=$((index+1)) - done - set +e - os_release_name=${OS_NAME}-release - dnf ${repo_info} --disablerepo="*" --downloaddir=${tmp_dir}/ download ${os_release_name} - if [ $? != 0 ]; then - ERROR "Fail to download ${os_release_name}!" - exit 2 - fi - os_release_name=`ls -r ${tmp_dir}/${os_release_name}*.rpm 2>/dev/null| head -n 1` - if [ -z "${os_release_name}" ]; then - ERROR "${os_release_name} can not be found!" - exit 2 - fi - set -e - LOG "prepare end." -} - -make_rootfs(){ - LOG "make rootfs for ${repo_file} begin..." - if [[ -d ${rootfs_dir} ]]; then - UMOUNT_ALL - rm -rf ${rootfs_dir} - fi - mkdir -p ${rootfs_dir}/var/lib/rpm - rpm --root ${rootfs_dir} --initdb - rpm -ivh --nodeps --root ${rootfs_dir}/ ${os_release_name} - mkdir -p ${rootfs_dir}/etc/rpm - chmod a+rX ${rootfs_dir}/etc/rpm - echo "%_install_langs en_US" > ${rootfs_dir}/etc/rpm/macros.image-language-conf - if [[ ! -d ${rootfs_dir}/etc/yum.repos.d ]]; then - mkdir -p ${rootfs_dir}/etc/yum.repos.d - fi - cp ${repo_file} ${rootfs_dir}/etc/yum.repos.d/tmp.repo - dnf --installroot=${rootfs_dir}/ makecache - set +e - INSTALL_PACKAGES $CONFIG_RPM_LIST - cat ${rootfs_dir}/etc/systemd/timesyncd.conf | grep "^NTP=*" - if [ $? -ne 0 ]; then - sed -i -e '/^#NTP=/cNTP=0.cn.pool.ntp.org' ${rootfs_dir}/etc/systemd/timesyncd.conf - sed -i -e 's/#FallbackNTP=/FallbackNTP=1.asia.pool.ntp.org 2.asia.pool.ntp.org /g' ${rootfs_dir}/etc/systemd/timesyncd.conf - fi - set -e - cp ${euler_dir}/hosts ${rootfs_dir}/etc/hosts - if [ ! -d $rootfs_dir/etc/sysconfig/network-scripts ]; then - mkdir -p $rootfs_dir/etc/sysconfig/network-scripts - fi - cp ${euler_dir}/ifcfg-eth0 $rootfs_dir/etc/sysconfig/network-scripts/ifcfg-eth0 - mkdir -p ${rootfs_dir}/lib/udev/rules.d - if [ ! -d ${rootfs_dir}/usr/share/licenses/raspi ]; then - mkdir -p ${rootfs_dir}/usr/share/licenses/raspi - fi - cp ${euler_dir}/*.rules ${rootfs_dir}/lib/udev/rules.d/ - cp ${euler_dir}/LICENCE.* ${rootfs_dir}/usr/share/licenses/raspi/ - cp ${euler_dir}/chroot.sh ${rootfs_dir}/chroot.sh - if [ ! -d ${rootfs_dir}/etc/rc.d/init.d ]; then - mkdir -p ${rootfs_dir}/etc/rc.d/init.d - fi - cp ${euler_dir}/extend-root.sh ${rootfs_dir}/etc/rc.d/init.d/extend-root.sh - echo net.ipv4.conf.wlan0.rp_filter=0 >> ${rootfs_dir}/etc/sysctl.conf - chmod +x ${rootfs_dir}/chroot.sh - mount --bind /dev ${rootfs_dir}/dev - mount -t proc /proc ${rootfs_dir}/proc - mount -t sysfs /sys ${rootfs_dir}/sys - chroot ${rootfs_dir} /bin/bash -c "echo 'Y' | /chroot.sh ${spec_param}" - UMOUNT_ALL - rm ${rootfs_dir}/etc/yum.repos.d/tmp.repo - rm ${rootfs_dir}/chroot.sh - LOG "make rootfs for ${repo_file} end." -} - -make_img(){ - LOG "make ${img_file} begin..." - device="" - LOSETUP_D_IMG - size=`du -sh --block-size=1MiB ${rootfs_dir} | cut -f 1 | xargs` - size=$(($size+1500)) - losetup -D - dd if=/dev/zero of=${img_file} bs=1MiB count=$size && sync - parted ${img_file} mklabel msdos mkpart primary fat32 8192s 593919s - parted ${img_file} -s set 1 boot - parted ${img_file} mkpart primary linux-swap 593920s 1593343s - parted ${img_file} mkpart primary ext4 1593344s 100% - device=`losetup -f --show -P ${img_file}` - LOG "after losetup: ${device}" - trap 'LOSETUP_D_IMG' EXIT - LOG "image ${img_file} created and mounted as ${device}" - kpartx -va ${device} - loopX=${device##*\/} - partprobe ${device} - bootp=/dev/mapper/${loopX}p1 - swapp=/dev/mapper/${loopX}p2 - rootp=/dev/mapper/${loopX}p3 - LOG "bootp: " ${bootp} "rootp: " ${rootp} - mkfs.vfat -n boot ${bootp} - mkswap ${swapp} --pagesize 4096 - mkfs.ext4 ${rootp} - mkdir -p ${root_mnt} ${boot_mnt} - mount -t vfat -o uid=root,gid=root,umask=0000 ${bootp} ${boot_mnt} - mount -t ext4 ${rootp} ${root_mnt} - prefix_len=${#loopX} - let prefix_len=prefix_len+13 - fstab_array=("" "" "" "") - for line in `blkid | grep /dev/mapper/${loopX}p` - do - partuuid=${line#*PARTUUID=\"} - fstab_array[${line:$prefix_len:1}]=${partuuid%%\"*} - done - echo "PARTUUID=${fstab_array[3]} / ext4 defaults,noatime 0 0" > ${rootfs_dir}/etc/fstab - echo "PARTUUID=${fstab_array[1]} /boot vfat defaults,noatime 0 0" >> ${rootfs_dir}/etc/fstab - echo "PARTUUID=${fstab_array[2]} swap swap defaults,noatime 0 0" >> ${rootfs_dir}/etc/fstab - - if [ -d ${rootfs_dir}/boot/grub2 ]; then - rm -rf ${rootfs_dir}/boot/grub2 - fi - cp -a ${rootfs_dir}/boot/* ${boot_mnt}/ - cp ${euler_dir}/config.txt ${boot_mnt}/ - echo "console=serial0,115200 console=tty1 root=PARTUUID=${fstab_array[3]} rootfstype=ext4 elevator=deadline rootwait net.ifnames=0" > ${boot_mnt}/cmdline.txt - - rm -rf ${rootfs_dir}/boot - rsync -avHAXq ${rootfs_dir}/* ${root_mnt} - sync - sleep 10 - LOSETUP_D_IMG - rm -rf ${rootfs_dir} - losetup -D - pushd ${img_dir} - if [ -f ${img_file} ]; then - sha256sum $(basename ${img_file}) > ${img_file}.sha256sum - xz -T 20 -z -c ${img_file} > ${img_file}.xz - sha256sum $(basename ${img_file}.xz) > ${img_file}.xz.sha256sum - LOG "made sum files for ${img_file}" - fi - popd - LOG "write ${img_file} done." - LOG "make ${img_file} end." -} - -if [ "$EUID" -ne 0 ]; then - echo `date` - ERROR, Please run as root! - exit -fi - -cur_dir=$(cd $(dirname $0);pwd) -workdir=${cur_dir} - -parseargs "$@" || help $? - -if [ "x$workdir" == "x" ]; then - echo `date` - ERROR, \"-d DIR or --dir DIR\" missing. - help 2 -elif [ ! -d ${workdir} ]; then - echo `date` - INFO, output dir ${workdir} does not exists. - mkdir -p ${workdir} - echo `date` - INFO, output dir: ${workdir} created. -fi - -OS_NAME=openEuler - -workdir=$(cd $workdir; pwd) -if [ "x${workdir}" == "x/" ]; then - workdir=/raspi_output -else - workdir=${workdir}/raspi_output -fi - -tmp_dir=${workdir}/tmp -log_dir=${workdir}/log -img_dir=${workdir}/img -rootfs_dir=${workdir}/rootfs -root_mnt=${workdir}/root -boot_mnt=${workdir}/boot -euler_dir=${cur_dir}/config - -CONFIG_RPM_LIST=${euler_dir}/rpmlist -builddate=$(date +%Y%m%d) - -trap 'UMOUNT_ALL' EXIT -UMOUNT_ALL -prepare -IFS=$'\n' -make_rootfs -make_img diff --git a/scripts/raspberrypi/config-common/99-com.rules b/scripts/raspberrypi/config-common/99-com.rules deleted file mode 120000 index ee8ada6..0000000 --- a/scripts/raspberrypi/config-common/99-com.rules +++ /dev/null @@ -1 +0,0 @@ -../config/99-com.rules \ No newline at end of file diff --git a/scripts/raspberrypi/config-common/Dockerfile_makeraspi b/scripts/raspberrypi/config-common/Dockerfile_makeraspi deleted file mode 120000 index 0ad546b..0000000 --- a/scripts/raspberrypi/config-common/Dockerfile_makeraspi +++ /dev/null @@ -1 +0,0 @@ -../config/Dockerfile_makeraspi \ No newline at end of file diff --git a/scripts/raspberrypi/config-common/License/LICENCE.COPYING.linux b/scripts/raspberrypi/config-common/License/LICENCE.COPYING.linux deleted file mode 100644 index ca442d3..0000000 --- a/scripts/raspberrypi/config-common/License/LICENCE.COPYING.linux +++ /dev/null @@ -1,356 +0,0 @@ - - NOTE! This copyright does *not* cover user programs that use kernel - services by normal system calls - this is merely considered normal use - of the kernel, and does *not* fall under the heading of "derived work". - Also note that the GPL below is copyrighted by the Free Software - Foundation, but the instance of code that it refers to (the Linux - kernel) is copyrighted by me and others who actually wrote it. - - Also note that the only valid version of the GPL as far as the kernel - is concerned is _this_ particular version of the license (ie v2, not - v2.2 or v3.x or whatever), unless explicitly otherwise stated. - - Linus Torvalds - ----------------------------------------- - - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/scripts/raspberrypi/config-common/License/LICENCE.bluez-firmware b/scripts/raspberrypi/config-common/License/LICENCE.bluez-firmware deleted file mode 100644 index 3912109..0000000 --- a/scripts/raspberrypi/config-common/License/LICENCE.bluez-firmware +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/scripts/raspberrypi/config-common/License/LICENCE.broadcom b/scripts/raspberrypi/config-common/License/LICENCE.broadcom deleted file mode 100644 index d5793b5..0000000 --- a/scripts/raspberrypi/config-common/License/LICENCE.broadcom +++ /dev/null @@ -1,31 +0,0 @@ -Copyright (c) 2006, Broadcom Corporation. -Copyright (c) 2015, Raspberry Pi (Trading) Ltd -All rights reserved. - -Redistribution. Redistribution and use in binary form, without -modification, are permitted provided that the following conditions are -met: - -* This software may only be used for the purposes of developing for, - running or using a Raspberry Pi device, or authorised derivative - device manufactured via the element14 Raspberry Pi Customization Service -* Redistributions must reproduce the above copyright notice and the - following disclaimer in the documentation and/or other materials - provided with the distribution. -* Neither the name of Broadcom Corporation nor the names of its suppliers - may be used to endorse or promote products derived from this software - without specific prior written permission. - -DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR -TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE -USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - diff --git a/scripts/raspberrypi/config-common/License/LICENCE.broadcom_bcm43xx b/scripts/raspberrypi/config-common/License/LICENCE.broadcom_bcm43xx deleted file mode 100644 index ff26fdd..0000000 --- a/scripts/raspberrypi/config-common/License/LICENCE.broadcom_bcm43xx +++ /dev/null @@ -1,65 +0,0 @@ -SOFTWARE LICENSE AGREEMENT - -The accompanying software in binary code form (“Software”), is licensed to you, -or, if you are accepting on behalf of an entity, the entity and its affiliates -exercising rights hereunder (“Licensee”) subject to the terms of this software -license agreement (“Agreement”), unless Licensee and Broadcom Corporation -(“Broadcom”) execute a separate written software license agreement governing -use of the Software. ANY USE, REPRODUCTION, OR DISTRIBUTION OF THE SOFTWARE -CONSTITUTES LICENSEE’S ACCEPTANCE OF THIS AGREEMENT. - -1. License. Subject to the terms and conditions of this Agreement, -Broadcom hereby grants to Licensee a limited, non-exclusive, non-transferable, -royalty-free license: (i) to use and integrate the Software with any other -software; and (ii) to reproduce and distribute the Software complete, -unmodified, and as provided by Broadcom, solely for use with Broadcom -proprietary integrated circuit product(s) sold by Broadcom with which the -Software was designed to be used, or their successors. - -2. Restrictions. Licensee shall distribute Software with a copy of this -Agreement. Licensee shall not remove, efface or obscure any copyright or -trademark notices from the Software. Reproductions of the Broadcom copyright -notice shall be included with each copy of the Software, except where such -Software is embedded in a manner not readily accessible to the end user. -Licensee shall not: (i) use, license, sell or otherwise distribute the Software -except as provided in this Agreement; (ii) attempt to modify in any way, -reverse engineer, decompile or disassemble any portion of the Software; or -(iii) use the Software or other material in violation of any applicable law or -regulation, including but not limited to any regulatory agency. This Agreement -shall automatically terminate upon Licensee’s failure to comply with any of the -terms of this Agreement. In such event, Licensee will destroy all copies of the -Software and its component parts. - -3. Ownership. The Software is licensed and not sold. Title to and -ownership of the Software, including all intellectual property rights thereto, -and any portion thereof remain with Broadcom or its licensors. Licensee hereby -covenants that it will not assert any claim that the Software created by or for -Broadcom infringe any intellectual property right owned or controlled by -Licensee. - -4. Disclaimer. THE SOFTWARE IS OFFERED “AS IS,” AND BROADCOM PROVIDES AND -GRANTS AND LICENSEE RECEIVES NO SUPPORT AND NO WARRANTIES OF ANY KIND, EXPRESS -OR IMPLIED, BY STATUTE, COMMUNICATION OR CONDUCT WITH LICENSEE, OR OTHERWISE. -BROADCOM SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A SPECIFIC PURPOSE, OR NONINFRINGEMENT CONCERNING THE SOFTWARE OR -ANY UPGRADES TO OR DOCUMENTATION FOR THE SOFTWARE. WITHOUT LIMITATION OF THE -ABOVE, BROADCOM GRANTS NO WARRANTY THAT THE SOFTWARE IS ERROR-FREE OR WILL -OPERATE WITHOUT INTERRUPTION, AND GRANTS NO WARRANTY REGARDING ITS USE OR THE -RESULTS THEREFROM INCLUDING, WITHOUT LIMITATION, ITS CORRECTNESS, ACCURACY, OR -RELIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM -OR ANY OF ITS LICENSORS HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES, HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER FOR BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE) OR -OTHERWISE, ARISING OUT OF THIS AGREEMENT OR USE, REPRODUCTION, OR DISTRIBUTION -OF THE SOFTWARE, INCLUDING BUT NOT LIMITED TO LOSS OF DATA AND LOSS OF PROFITS, -EVEN IF SUCH PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THESE -LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY -LIMITED REMEDY. - -5. Export Laws. LICENSEE UNDERSTANDS AND AGREES THAT THE SOFTWARE IS -SUBJECT TO UNITED STATES AND OTHER APPLICABLE EXPORT-RELATED LAWS AND -REGULATIONS AND THAT LICENSEE MAY NOT EXPORT, RE-EXPORT OR TRANSFER THE -SOFTWARE OR ANY DIRECT PRODUCT OF THE SOFTWARE EXCEPT AS PERMITTED UNDER THOSE -LAWS. WITHOUT LIMITING THE FOREGOING, EXPORT, RE-EXPORT, OR TRANSFER OF THE -SOFTWARE TO CUBA, IRAN, NORTH KOREA, SUDAN, AND SYRIA IS PROHIBITED. - diff --git a/scripts/raspberrypi/config-common/License/LICENCE.pi-bluetooth b/scripts/raspberrypi/config-common/License/LICENCE.pi-bluetooth deleted file mode 100644 index 316c2c6..0000000 --- a/scripts/raspberrypi/config-common/License/LICENCE.pi-bluetooth +++ /dev/null @@ -1,32 +0,0 @@ -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: pi-bluetooth -Source: https://github.com/RPi-Distro/pi-bluetooth - -Files: * -Copyright: 2016 Raspberry Pi (Trading) Ltd. -License: BSD-3-Clause - -License: BSD-3-Clause - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. Neither the name of the University nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - . - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE HOLDERS OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/scripts/raspberrypi/config-common/License/LICENCE.raspberrypi-sys-mods b/scripts/raspberrypi/config-common/License/LICENCE.raspberrypi-sys-mods deleted file mode 120000 index 9b6f247..0000000 --- a/scripts/raspberrypi/config-common/License/LICENCE.raspberrypi-sys-mods +++ /dev/null @@ -1 +0,0 @@ -../../config/LICENCE.raspberrypi-sys-mods \ No newline at end of file diff --git a/scripts/raspberrypi/config-common/License/LICENCE.wireless-regdb b/scripts/raspberrypi/config-common/License/LICENCE.wireless-regdb deleted file mode 100644 index 652a6dd..0000000 --- a/scripts/raspberrypi/config-common/License/LICENCE.wireless-regdb +++ /dev/null @@ -1,16 +0,0 @@ -Copyright (c) 2008, Luis R. Rodriguez -Copyright (c) 2008, Johannes Berg -Copyright (c) 2008, Michael Green - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - diff --git a/scripts/raspberrypi/config-common/chroot.sh b/scripts/raspberrypi/config-common/chroot.sh deleted file mode 120000 index be300e6..0000000 --- a/scripts/raspberrypi/config-common/chroot.sh +++ /dev/null @@ -1 +0,0 @@ -../config/chroot.sh \ No newline at end of file diff --git a/scripts/raspberrypi/config-common/config.txt b/scripts/raspberrypi/config-common/config.txt deleted file mode 120000 index 0721562..0000000 --- a/scripts/raspberrypi/config-common/config.txt +++ /dev/null @@ -1 +0,0 @@ -../config/config.txt \ No newline at end of file diff --git a/scripts/raspberrypi/config-common/extend-root.sh b/scripts/raspberrypi/config-common/extend-root.sh deleted file mode 120000 index c2b264b..0000000 --- a/scripts/raspberrypi/config-common/extend-root.sh +++ /dev/null @@ -1 +0,0 @@ -../config/extend-root.sh \ No newline at end of file diff --git a/scripts/raspberrypi/config-common/hosts b/scripts/raspberrypi/config-common/hosts deleted file mode 120000 index 6f4bd48..0000000 --- a/scripts/raspberrypi/config-common/hosts +++ /dev/null @@ -1 +0,0 @@ -../config/hosts \ No newline at end of file diff --git a/scripts/raspberrypi/config-common/ifcfg-eth0 b/scripts/raspberrypi/config-common/ifcfg-eth0 deleted file mode 120000 index 4f62bee..0000000 --- a/scripts/raspberrypi/config-common/ifcfg-eth0 +++ /dev/null @@ -1 +0,0 @@ -../config/ifcfg-eth0 \ No newline at end of file diff --git a/scripts/raspberrypi/config-common/regulatory.db b/scripts/raspberrypi/config-common/regulatory.db deleted file mode 100644 index 6019e8f..0000000 Binary files a/scripts/raspberrypi/config-common/regulatory.db and /dev/null differ diff --git a/scripts/raspberrypi/config-common/regulatory.db.p7s b/scripts/raspberrypi/config-common/regulatory.db.p7s deleted file mode 100644 index d04cb25..0000000 Binary files a/scripts/raspberrypi/config-common/regulatory.db.p7s and /dev/null differ diff --git a/scripts/raspberrypi/config-common/rpmlist b/scripts/raspberrypi/config-common/rpmlist deleted file mode 100644 index 13cda4b..0000000 --- a/scripts/raspberrypi/config-common/rpmlist +++ /dev/null @@ -1,25 +0,0 @@ -dnf -alsa-utils -haveged -wpa_supplicant -vim -net-tools -iproute -iputils -NetworkManager -NetworkManager-wifi -NetworkManager-wwan -NetworkManager-bluetooth -NetworkManager-ovs -NetworkManager-ppp -openssh-server -openssh-clients -passwd -hostname -bluez -pulseaudio-module-bluetooth -parted -sudo -bc -systemd-timesyncd -openEuler-repos diff --git a/scripts/raspberrypi/config-common/rpmlist-dde b/scripts/raspberrypi/config-common/rpmlist-dde deleted file mode 100644 index 23c0f84..0000000 --- a/scripts/raspberrypi/config-common/rpmlist-dde +++ /dev/null @@ -1,28 +0,0 @@ -dnf -alsa-utils -haveged -wpa_supplicant -vim -net-tools -iproute -iputils -NetworkManager -NetworkManager-wifi -NetworkManager-wwan -NetworkManager-bluetooth -NetworkManager-ovs -NetworkManager-ppp -openssh-server -openssh-clients -passwd -hostname -bluez -pulseaudio-module-bluetooth -parted -sudo -dde -ibus-libpinyin -firefox -bc -systemd-timesyncd -openEuler-repos diff --git a/scripts/raspberrypi/config-common/rpmlist-devstation b/scripts/raspberrypi/config-common/rpmlist-devstation deleted file mode 100644 index 0c39ddd..0000000 --- a/scripts/raspberrypi/config-common/rpmlist-devstation +++ /dev/null @@ -1,1012 +0,0 @@ -dnf -alsa-utils -haveged -wpa_supplicant -vim -net-tools -iproute -iputils -NetworkManager -NetworkManager-wifi -NetworkManager-wwan -NetworkManager-bluetooth -NetworkManager-ovs -NetworkManager-ppp -openssh-server -openssh-clients -passwd -hostname -bluez -pulseaudio-module-bluetooth -parted -sudo -bc -systemd-timesyncd -abattis-cantarell-fonts -abseil-cpp -accountsservice -accountsservice-libs -acl -adobe-mappings-cmap -adobe-mappings-cmap-lang -adobe-mappings-pdf -adwaita-cursor-theme -adwaita-icon-theme -alsa-lib -appstream -aspell -atk -at-spi2-atk -at-spi2-core -attr -audit-libs -autoconf -automake -avahi-glib -avahi-libs -babeltrace -basesystem -bash -binutils -bluez-libs -bolt -brotli -brotli-devel -btrfs-progs -bubblewrap -bullet -bzip2 -bzip2-devel -ca-certificates -cairo -cairo-devel -cairo-gobject -cairo-gobject-devel -cdparanoia-libs -checkpolicy -chkconfig -cmake-filesystem -code -colord -colord-gtk -colord-libs -color-filesystem -containers-common -container-selinux -copy-jdk-configs -coreutils -cpio -cpp -cpp-gpgme -cracklib -criu -cronie -crontabs -crun -crypto-policies -crypto-policies-scripts -cryptsetup -CUnit -CUnit-devel -cups-libs -cups-pk-helper -curl -cxl-libs -cyrus-sasl-lib -daxctl-libs -dbus -dbus-c++ -dbus-common -dbus-daemon -dbus-glib -dbus-libs -dbus-tools -dbus-x11 -dconf -dejavu-fonts -desktop-file-utils -device-mapper -device-mapper-event -devstation-config -dhcp -diffutils -dnf-data -dnf-plugins-core -dosfstools -double-conversion -dracut -duktape -e2fsprogs -e2fsprogs-help -efibootmgr -efi-filesystem -efi-srpm-macros -efivar-libs -efl -elfutils-default-yama-scope -elfutils-libelf -elfutils-libs -emacs-filesystem -enchant2 -epiphany-runtime -evolution-data-server -evolution-data-server-langpacks -exempi -exiv2 -expat -ffmpeg -ffmpeg-libs -fftw-libs-single -file -file-libs -filesystem -findutils -firefox -firewalld -flac -flatpak -fontconfig -fontconfig-devel -fonts-filesystem -freeglut -freerdp -freetype -freetype-devel -fribidi -fribidi-devel -fuse -fuse3 -fuse3-help -fuse-common -fuse-help -fuse-overlayfs -fwupd -gawk -gc -gcab -gcc -gcc-gdb-plugin -gcr -gcr4 -gcr4-base -gcr-base -gd -gdb -gdb-headless -gdbm -gdisk -gdk-pixbuf2 -gdk-pixbuf2-devel -gdk-pixbuf2-modules -gdm -geoclue2 -geocode-glib -geocode-glib-devel -gettext -ghostscript -giflib -git -git-core -gjs -glib2 -glib2-devel -glibc -glibc-common -glibc-devel -glibmm24 -glib-networking -gmock -gmp -gnome-autoar -gnome-bluetooth -gnome-color-manager -gnome-control-center -gnome-control-center-filesystem -gnome-desktop3 -gnome-keyring -gnome-keyring-pam -gnome-menus -gnome-online-accounts -gnome-remote-desktop -gnome-session -gnome-settings-daemon -gnome-shell -gnome-software -gnome-terminal -gnome-tour -gnupg2 -gnutls -gobject-introspection -gobject-introspection-devel -google-droid-sans-fonts -google-noto-fonts-common -google-noto-sans-arabic-vf-fonts -google-noto-sans-armenian-vf-fonts -google-noto-sans-bengali-vf-fonts -google-noto-sans-canadian-aboriginal-vf-fonts -google-noto-sans-cherokee-vf-fonts -google-noto-sans-devanagari-vf-fonts -google-noto-sans-ethiopic-vf-fonts -google-noto-sans-georgian-vf-fonts -google-noto-sans-hebrew-vf-fonts -google-noto-sans-kannada-vf-fonts -google-noto-sans-khmer-vf-fonts -google-noto-sans-lao-vf-fonts -google-noto-sans-math-fonts -google-noto-sans-mono-vf-fonts -google-noto-sans-sinhala-vf-fonts -google-noto-sans-symbols2-fonts -google-noto-sans-symbols-vf-fonts -google-noto-sans-tamil-vf-fonts -google-noto-sans-thaana-vf-fonts -google-noto-sans-thai-vf-fonts -google-noto-sans-vf-fonts -google-noto-serif-armenian-vf-fonts -google-noto-serif-ethiopic-vf-fonts -google-noto-serif-georgian-vf-fonts -google-noto-serif-gujarati-vf-fonts -google-noto-serif-gurmukhi-vf-fonts -google-noto-serif-hebrew-vf-fonts -google-noto-serif-kannada-vf-fonts -google-noto-serif-khmer-vf-fonts -google-noto-serif-lao-vf-fonts -google-noto-serif-sinhala-vf-fonts -google-noto-serif-tamil-vf-fonts -google-noto-serif-thai-vf-fonts -google-noto-serif-vf-fonts -gpgme -gpm-libs -graphene -graphene-devel -graphite2 -graphite2-devel -graphviz -graphviz-devel -grep -groff-base -grub2-common -grub2-efi-aa64 -grub2-tools -grub2-tools-extra -grub2-tools-minimal -grubby -gsettings-desktop-schemas -gsm -gsound -gssdp -gst-editing-services -gstreamer1 -gstreamer1-plugins-bad-free -gstreamer1-plugins-base -gstreamer1-plugins-good -gtest -gtest-devel -gtk2 -gtk3 -gtk4 -gtk4-devel -gtk-update-icon-cache -guile -gupnp -gupnp-av -gupnp-dlna -gupnp-igd -gvfs -gvfs-client -gzip -harfbuzz -harfbuzz-devel -hicolor-icon-theme -highcontrast-icon-theme -hunspell -hunspell-en -hwdata -hyphen -ibus -ibus-libpinyin -ibus-libs -iio-sensor-proxy -ima-evm-utils-libs -info -inih -iniparser -initscripts -initscripts-service -ipcalc -ipset -ipset-libs -iptables -iptables-help -iptables-libs -iptables-nft -iso-codes -iw -jack-audio-connection-kit -jansson -java-21-openjdk -java-21-openjdk-devel -java-21-openjdk-headless -javapackages-filesystem -jbig2dec -jbigkit-libs -jq -jsc4.1 -jsc5.0 -json-c -json-glib -json-glib-devel -kbd -kbd-legacy -kbd-misc -keyutils-libs -kmod -kmod-libs -kpartx -krb5-libs -lame -lcms2 -less -libacl -libadwaita -libadwaita-devel -libaio -libaom -libappstream-glib -libarchive -libargon2 -libass -libassuan -libasyncns -libatasmart -libatomic -libavdevice -libblkid -libblockdev -libbluray -libbpf -libbytesize -libcanberra -libcanberra-gtk3 -libcap -libcap-ng -libcbor -libcdio -libcdio-paranoia -libcloudproviders -libcomps -libconfig -libcurl -libdatrie -libdatrie-devel -libdav1d -libdazzle -libdb -libdbusmenu -libdbusmenu-gtk3 -libdmx -libdnf -libdrm -libedit -libepoxy -libepoxy-devel -liberation-fonts -libev -libevdev -libevent -libexif -libfdisk -libffado -libffi -libffi-devel -libfontenc -libgcc -libgcrypt -libgdata -libgee -libgexiv2 -libglvnd -libglvnd-core-devel -libglvnd-devel -libglvnd-egl -libglvnd-gles -libglvnd-glx -libglvnd-opengl -libgnomekbd -libgomp -libgpg-error -libgphoto2 -libgsf -libgtop2 -libgudev -libgusb -libgweather -libgweather-devel -libgxps -libhandy -libical -libICE -libicu -libicu-devel -libidn -libidn2 -libiec61883 -libiec61883-help -libijs -libimagequant -libimobiledevice -libinput -libiptcdata -libjcat -libjpeg-turbo -libjpeg-turbo-devel -libkcapi -libksba -libldac -libldb -libmediaart -libmnl -libmodplug -libmodulemd -libmount -libmpc -libmtp -libndp -libnet -libnetfilter_conntrack -libnfnetlink -libnftnl -libnghttp2 -libnghttp2-devel -libnice -libnl3 -libnma -libnotify -libnsl2 -libnvme -libogg -libosinfo -libpaper -libpcap -libpciaccess -libpfm -libpinyin -libpipeline -libplist -libpng -libpng-devel -libportal -libproxy -libpsl -libpsl-devel -libpwquality -LibRaw -libraw1394 -libraw1394-help -librepo -libreport-filesystem -librsvg2 -libsamplerate -libseccomp -libsecret -libselinux -libselinux-devel -libsemanage -libsepol -libsepol-devel -libshout -libsigc++20 -libsigsegv -libslirp -libSM -libsmartcols -libsmbclient -libsndfile -libsolv -libsoup -libsoup3 -libsoup3-devel -libspectre -libssh -libstdc++ -libstemmer -libsysprof-ui -libtalloc -libtasn1 -libtdb -libtevent -libthai -libthai-devel -libtheora -libtiff -libtiff-devel -libtirpc -libtool -libtool-ltdl -libtraceevent -libtracker-sparql3 -libudisks2 -libunistring -libunwind -libusbmuxd -libusbx -libuser -libutempter -libuuid -libv4l -libva -libvdpau -libverto -libvisual -libvncserver -libvorbis -libvpx -libwacom -libwacom-data -libwbclient -libwebp -libwinpr -libwpe -libX11 -libX11-devel -libXau -libXau-devel -libXaw -libxcb -libxcb-devel -libXcomposite -libxcrypt -libxcrypt-devel -libXcursor -libXcursor-devel -libxcvt -libXdamage -libXdamage-devel -libXdmcp -libXext -libXext-devel -libXfixes -libXfixes-devel -libXfont2 -libXft -libXft-devel -libXi -libXi-devel -libXinerama -libXinerama-devel -libxkbcommon -libxkbcommon-devel -libxkbcommon-x11 -libxkbfile -libxklavier -libxml2 -libxml++ -libxml2-devel -libxmlb -libXmu -libXpm -libXrandr -libXrandr-devel -libXrender -libXrender-devel -libXScrnSaver -libxshmfence -libxslt -libXt -libXtst -libXv -libXxf86dga -libXxf86vm -libyaml -lilv-libs -llvm-libs -lmdb -lockdev -logrotate -low-memory-monitor -lua -luajit -lua-posix -lvm2 -lvm2-dbusd -lvm2-help -lz4 -lzo -m4 -make -malcontent-libs -man-db -mcpp -mdadm -mesa-demos -mesa-dri-drivers -mesa-filesystem -mesa-libEGL -mesa-libgbm -mesa-libGL -mesa-libglapi -mesa-libGLU -mobile-broadband-provider-info -ModemManager-glib -mokutil -mozilla-filesystem -mozjs102 -mpfr -mpg123-libs -mtdev -multipath-tools -mutter -nautilus -ncurses -ncurses-base -ncurses-libs -ndctl -ndctl-libs -nettle -NetworkManager-libnm -newt -nftables -nm-connection-editor -npth -nspr -nss -nss-softokn -nss-util -ntfs-3g -ocl-icd -oniguruma -openal-soft -opencore-amr -OpenCSD -openEuler-gpg-keys -openEuler-logos -openEuler-release -openEuler-rpm-config -openjpeg2 -openldap -openssh -openssl -openssl-libs -openssl-pkcs11 -opus -orc -osinfo-db -osinfo-db-tools -os-prober -ostree -p11-kit -p11-kit-trust -PackageKit -pam -pango -pango-devel -pciutils -pcre2 -pcre2-devel -pcre -perf -perl -perl-Algorithm-Diff -perl-Archive-Tar -perl-autodie -perl-B-Debug -perl-bignum -perl-Carp -perl-Compress-Raw-Bzip2 -perl-Compress-Raw-Zlib -perl-Config-Perl-V -perl-constant -perl-CPAN-Meta -perl-CPAN-Meta-Requirements -perl-CPAN-Meta-YAML -perl-Data-Dumper -perl-devel -perl-Devel-PPPort -perl-Digest -perl-Digest-MD5 -perl-Digest-SHA -perl-Encode -perl-Encode-devel -perl-Encode-Locale -perl-Env -perl-Error -perl-experimental -perl-Exporter -perl-ExtUtils-Command -perl-ExtUtils-Install -perl-ExtUtils-MakeMaker -perl-ExtUtils-Manifest -perl-ExtUtils-ParseXS -perl-File-Fetch -perl-File-Path -perl-File-Temp -perl-Filter -perl-Filter-Simple -perl-Getopt-Long -perl-Git -perl-HTTP-Tiny -perl-IO-Compress -perl-IO-Socket-IP -perl-IO-Socket-SSL -perl-IPC-Cmd -perl-IPC-System-Simple -perl-IPC-SysV -perl-JSON-PP -perl-libnet -perl-libs -perl-Locale-Codes -perl-Locale-Maketext -perl-Math-BigInt -perl-Math-BigInt-FastCalc -perl-MIME-Base64 -perl-Module-CoreList -perl-Module-Load -perl-Module-Load-Conditional -perl-Module-Metadata -perl-Mozilla-CA -perl-Net-SSLeay -perl-Params-Check -perl-parent -perl-PathTools -perl-perlfaq -perl-PerlIO-via-QuotedPrint -perl-Perl-OSType -perl-Pod-Checker -perl-Pod-Escapes -perl-podlators -perl-Pod-Parser -perl-Pod-Perldoc -perl-Pod-Simple -perl-Pod-Usage -perl-Scalar-List-Utils -perl-Socket -perl-Storable -perl-Sys-Syslog -perl-Term-ANSIColor -perl-Term-Cap -perl-TermReadKey -perl-Test-Harness -perl-Test-Simple -perl-Text-Balanced -perl-Text-Diff -perl-Text-ParseWords -perl-Text-Tabs+Wrap -perl-Thread-Queue -perl-threads -perl-threads-shared -perl-Time-HiRes -perl-Time-Local -perl-Unicode-Collate -perl-Unicode-Normalize -perl-URI -perl-version -pigz -pinentry -pipewire -pipewire-gstreamer -pipewire-libs -pixman -pixman-devel -pkgconf -pngquant -policycoreutils -polkit -polkit-devel -polkit-help -polkit-libs -polkit-pkla-compat -poppler -poppler-cpp -poppler-data -poppler-glib -popt -procps-ng -protobuf -protobuf-c -protobuf-compiler -psmisc -publicsuffix-list -pulseaudio -pulseaudio-libs -pulseaudio-libs-glib2 -python3 -python3-cairo -python3-dateutil -python3-dbus -python3-distro -python3-dnf -python3-dnf-plugins-core -python3-firewall -python3-gobject -python3-gobject-base -python3-gpgme -python3-hawkey -python3-iniconfig -python3-libcomps -python3-libdnf -python3-mako -python3-markdown -python3-markupsafe -python3-nftables -python3-packaging -python3-pip -python3-pluggy -python3-pyparsing -python3-pyqt5-sip -python3-pytest -python3-pyudev -python3-qt5 -python3-qt5-base -python3-rpm -python3-setuptools -python3-six -python3-unbound -python-pip-wheel -python-qt5-rpm-macros -python-setuptools -qt5-qtbase -qt5-qtbase-common -qt5-qtbase-gui -qt5-qtconnectivity -qt5-qtdeclarative -qt5-qtenginio -qt5-qtlocation -qt5-qtmultimedia -qt5-qtsensors -qt5-qtserialport -qt5-qtsvg -qt5-qttools-common -qt5-qttools-libs-designer -qt5-qttools-libs-help -qt5-qtwebchannel -qt5-qtwebsockets -qt5-qtx11extras -qt5-qtxmlpatterns -qt5-srpm-macros -qt-settings -readline -rest -rpm -rpm-libs -rpm-ostree -rpm-ostree-libs -rtkit -rygel -samba-client-libs -samba-common -sbc -SDL -SDL2 -sed -selinux-policy -selinux-policy-targeted -serd -setup -sgml-common -shadow -shadow-subid-devel -shared-mime-info -shim -skopeo -slang -slirp4netns -snapd-glib -sord -sound-theme-freedesktop -soxr -speex -speexdsp -sqlite -sqlite-devel -sratom -srt-libs -startup-notification -switcheroo-control -sysprof -sysprof-cli -sysprof-devel -systemd -systemd-libs -systemd-pam -systemd-udev -systemtap-sdt-devel -taglib -tar -tcl -thin-provisioning-tools -thin-provisioning-tools-help -totem-pl-parser -tpm2-tss -tracker3 -tracker3-miners -trousers -twolame -tzdata -tzdata-java -uchardet -udisks2 -unbound-libs -upower -urw-base35-bookman-fonts -urw-base35-c059-fonts -urw-base35-d050000l-fonts -urw-base35-fonts -urw-base35-fonts-common -urw-base35-gothic-fonts -urw-base35-nimbus-mono-ps-fonts -urw-base35-nimbus-roman-fonts -urw-base35-nimbus-sans-fonts -urw-base35-p052-fonts -urw-base35-standard-symbols-ps-fonts -urw-base35-z003-fonts -usbmuxd -userspace-rcu -util-linux -util-linux-devel -vala -vala-devel -vid.stab -vim-common -vim-enhanced -vim-filesystem -vim-minimal -vo-amrwbenc -volume_key -vte291 -wavpack -wavpack-help -wayland -wayland-devel -webkit2gtk3 -webkit2gtk3-jsc -webkit2gtk4.1 -webkit2gtk5.0 -webp-pixbuf-loader -which -wireless-regdb -woff2 -wpebackend-fdo -wqy-zenhei-fonts -x264-libs -x265 -xcb-util -xcb-util-image -xcb-util-keysyms -xcb-util-renderutil -xcb-util-wm -xdg-dbus-proxy -xdg-desktop-portal -xdg-desktop-portal-gnome -xdg-desktop-portal-gtk -xdg-user-dirs -xdg-user-dirs-gtk -xdg-utils -xfsprogs -xfsprogs-xfs_scrub -xkeyboard-config -xorg-x11-drv-libinput -xorg-x11-fonts -xorg-x11-fonts-others -xorg-x11-font-utils -xorg-x11-proto-devel -xorg-x11-server -xorg-x11-server-common -xorg-x11-server-utils -xorg-x11-server-Xwayland -xorg-x11-utils -xorg-x11-xauth -xorg-x11-xinit -xorg-x11-xkb-utils -xvidcore -xz -xz-devel -xz-libs -yajl -yum -zenity -zimg -zip -zlib -zlib-devel -zstd -zvbi -openEuler-repos diff --git a/scripts/raspberrypi/config-common/rpmlist-devstation-24.03-LTS-SP2 b/scripts/raspberrypi/config-common/rpmlist-devstation-24.03-LTS-SP2 deleted file mode 100644 index 4e426f7..0000000 --- a/scripts/raspberrypi/config-common/rpmlist-devstation-24.03-LTS-SP2 +++ /dev/null @@ -1,1278 +0,0 @@ -dnf -alsa-utils -haveged -wpa_supplicant -vim -net-tools -iproute -iputils -NetworkManager -NetworkManager-wifi -NetworkManager-wwan -NetworkManager-bluetooth -NetworkManager-ovs -NetworkManager-ppp -openssh-server -openssh-clients -passwd -hostname -bluez -pulseaudio-module-bluetooth -parted -sudo -bc -systemd-timesyncd -abattis-cantarell-fonts -abseil-cpp -accountsservice -accountsservice-libs -acl -adcli -adobe-mappings-cmap -adobe-mappings-cmap-lang -adobe-mappings-pdf -adwaita-cursor-theme -adwaita-icon-theme -adwaita-qt5 -alsa-lib -ansible -appstream -aspell -atk -atkmm -at-spi2-atk -at-spi2-core -attr -audit -audit-libs -authselect -autoconf -autogen -automake -avahi-glib -avahi-libs -babeltrace -basesystem -bash -bind -bind-dnssec-doc -bind-dnssec-utils -bind-libs -bind-license -bind-utils -binutils -bluez-libs -bolt -boost-iostreams -brotli -brotli-devel -btrfs-progs -bubblewrap -bullet -bzip2 -bzip2-devel -ca-certificates -cairo -cairo-devel -cairo-gobject -cairo-gobject-devel -cairomm -c-ares -ccid -cdparanoia-libs -checkpolicy -chkconfig -chrony -cmake -cmake-data -cmake-filesystem -cmake-rpm-macros -colord -colord-gtk -colord-libs -color-filesystem -compat-openssl11-libs -containers-common -container-selinux -copy-jdk-configs -coreutils -cpio -cpp -cpp-gpgme -cracklib -criu -cronie -crontabs -crun -crypto-policies -crypto-policies-scripts -cryptsetup -CUnit -CUnit-devel -cups-libs -cups-pk-helper -curl -cxl-libs -cyrus-sasl -cyrus-sasl-lib -daxctl-libs -dbus -dbus-c++ -dbus-common -dbus-daemon -dbus-glib -dbus-libs -dbus-tools -dbus-x11 -dconf -dejavu-fonts -desktop-file-utils -device-mapper -device-mapper-event -devstation-config -dhcp -diffutils -ding-libs -dmidecode -dnf-data -dnf-plugins-core -docbook-dtds -dosfstools -double-conversion -dracut -dracut-config-generic -dracut-config-rescue -dracut-live -dracut-network -dracut-squash -duktape -e2fsprogs -e2fsprogs-help -efibootmgr -efi-filesystem -efi-srpm-macros -efivar-libs -efl -elfutils-debuginfod-client -elfutils-default-yama-scope -elfutils-libelf -elfutils-libs -emacs-filesystem -enchant2 -epiphany-runtime -epkg -ethtool -euler-copilot-desktop -euler-copilot-shell -evolution-data-server -evolution-data-server-langpacks -exempi -exiv2 -expat -ffmpeg -ffmpeg-libs -fftw-libs-single -file -file-libs -filesystem -findutils -fipscheck -firefox -firewalld -flac -flatpak -fontconfig -fontconfig-devel -fonts-filesystem -freeglut -freerdp -freetype -freetype-devel -fribidi -fribidi-devel -fuse -fuse3 -fuse3-help -fuse-common -fuse-help -fuse-overlayfs -fwupd -gawk -gc -gcab -gcc -gcc-c++ -gcc-gdb-plugin -gcr -gcr4 -gcr4-base -gcr-base -gd -gdb -gdb-headless -gdbm -gdisk -gdk-pixbuf2 -gdk-pixbuf2-devel -gdk-pixbuf2-modules -gdm -geoclue2 -geocode-glib -geocode-glib-devel -gettext -ghostscript -giflib -git -git-core -gjs -glib2 -glib2-devel -glibc -glibc-common -glibc-devel -glibmm24 -glibmm24-help -glib-networking -gmock -gmp -gnome-autoar -gnome-bluetooth -gnome-color-manager -gnome-control-center -gnome-control-center-filesystem -gnome-desktop3 -gnome-doc-utils -gnome-doc-utils-stylesheets -gnome-keyring -gnome-keyring-pam -gnome-menus -gnome-online-accounts -gnome-remote-desktop -gnome-session -gnome-settings-daemon -gnome-shell -gnome-shell-extension-dash-to-dock -gnome-shell-extensions -gnome-software -gnome-terminal -gnome-tour -gnome-user-docs -gnupg2 -gnutls -gobject-introspection -gobject-introspection-devel -google-droid-sans-fonts -google-noto-fonts-common -google-noto-sans-arabic-vf-fonts -google-noto-sans-armenian-vf-fonts -google-noto-sans-bengali-vf-fonts -google-noto-sans-canadian-aboriginal-vf-fonts -google-noto-sans-cherokee-vf-fonts -google-noto-sans-devanagari-vf-fonts -google-noto-sans-ethiopic-vf-fonts -google-noto-sans-georgian-vf-fonts -google-noto-sans-hebrew-vf-fonts -google-noto-sans-kannada-vf-fonts -google-noto-sans-khmer-vf-fonts -google-noto-sans-lao-vf-fonts -google-noto-sans-math-fonts -google-noto-sans-mono-vf-fonts -google-noto-sans-sinhala-vf-fonts -google-noto-sans-symbols2-fonts -google-noto-sans-symbols-vf-fonts -google-noto-sans-tamil-vf-fonts -google-noto-sans-thaana-vf-fonts -google-noto-sans-thai-vf-fonts -google-noto-sans-vf-fonts -google-noto-serif-armenian-vf-fonts -google-noto-serif-ethiopic-vf-fonts -google-noto-serif-georgian-vf-fonts -google-noto-serif-gujarati-vf-fonts -google-noto-serif-gurmukhi-vf-fonts -google-noto-serif-hebrew-vf-fonts -google-noto-serif-kannada-vf-fonts -google-noto-serif-khmer-vf-fonts -google-noto-serif-lao-vf-fonts -google-noto-serif-sinhala-vf-fonts -google-noto-serif-tamil-vf-fonts -google-noto-serif-thai-vf-fonts -google-noto-serif-vf-fonts -gpgme -graphene -graphene-devel -graphite2 -graphite2-devel -graphviz -graphviz-devel -grep -groff-base -grub2-common -grub2-efi-aa64 -grub2-efi-aa64-cdboot -grub2-tools -grub2-tools-extra -grub2-tools-minimal -grubby -gsettings-desktop-schemas -gsm -gsound -gssdp -gst-editing-services -gstreamer1 -gstreamer1-plugins-bad-free -gstreamer1-plugins-base -gstreamer1-plugins-good -gstreamer1-plugins-good-qt -gtest -gtest-devel -gtk2 -gtk3 -gtk4 -gtk4-devel -gtkmm30 -gtk-update-icon-cache -guile -gupnp -gupnp-av -gupnp-dlna -gupnp-igd -gvfs -gvfs-client -gzip -harfbuzz -harfbuzz-devel -hdparm -hicolor-icon-theme -highcontrast-icon-theme -hunspell -hunspell-en -hwdata -hyphen -ibus -ibus-libpinyin -ibus-libs -iio-sensor-proxy -ima-evm-utils-libs -info -inih -iniparser -initscripts -initscripts-service -ipcalc -ipmitool -iprutils -ipset -ipset-libs -iptables -iptables-help -iptables-libs -iptables-nft -irqbalance -iso-codes -itstool -iw -jack-audio-connection-kit -jansson -java-21-openjdk -java-21-openjdk-devel -java-21-openjdk-headless -javapackages-filesystem -jbig2dec -jbigkit-libs -jitterentropy-library -jq -jsc4.1 -jsc5.0 -json-c -jsoncpp -json-glib -json-glib-devel -kbd -kbd-legacy -kbd-misc -kexec-tools -keyutils-libs -kf5-kcalendarcore -kf5-kcalendarcore-devel -kmod -kmod-libs -kpartx -krb5-libs -lame -lcms2 -less -libacl -libadwaita -libadwaita-devel -libadwaita-qt5 -libaio -libaom -libappstream-glib -libarchive -libargon2 -libass -libassuan -libasyncns -libatasmart -libatomic -libavdevice -libblkid -libblockdev -libbluray -libbpf -libbytesize -libcanberra -libcanberra-gtk3 -libcap -libcap-ng -libcbor -libcdio -libcdio-paranoia -libcloudproviders -libcomps -libconfig -libcurl -libdaemon -libdatrie -libdatrie-devel -libdav1d -libdazzle -libdb -libdbusmenu -libdbusmenu-gtk3 -libdmx -libdnf -libdrm -libdrm-devel -libedit -libepoxy -libepoxy-devel -liberation-fonts -libestr -libev -libevdev -libevent -libexif -libfastjson -libfdisk -libffado -libffi -libffi-devel -libfontenc -libfontenc-devel -libgcc -libgcrypt -libgdata -libgee -libgexiv2 -libglvnd -libglvnd-core-devel -libglvnd-devel -libglvnd-egl -libglvnd-gles -libglvnd-glx -libglvnd-opengl -libgnomekbd -libgomp -libgpg-error -libgphoto2 -libgsf -libgtop2 -libgudev -libgusb -libgweather -libgweather-devel -libgxps -libhandy -libical -libical-devel -libICE -libicu -libicu-devel -libidn -libidn2 -libiec61883 -libiec61883-help -libijs -libimagequant -libimobiledevice -libinput -libipa_hbac -libiptcdata -libjcat -libjpeg-turbo -libjpeg-turbo-devel -libkcapi -libksba -libldac -libldb -libmediaart -libmetalink -libmnl -libmodplug -libmodulemd -libmount -libmpc -libmspack -libmtp -libndp -libnet -libnetfilter_conntrack -libnfnetlink -libnfsidmap -libnftnl -libnghttp2 -libnghttp2-devel -libnice -libnl3 -libnma -libnotify -libnsl2 -libnvme -libogg -libosinfo -libpaper -libpcap -libpciaccess -libpciaccess-devel -libpfm -libpinyin -libpipeline -libplist -libpng -libpng-devel -libportal -libproxy -libpsl -libpsl-devel -libpwquality -LibRaw -libraw1394 -libraw1394-help -librepo -libreport-filesystem -librsvg2 -libsamplerate -libseccomp -libsecret -libselinux -libselinux-devel -libsemanage -libsepol -libsepol-devel -libshout -libsigc++20 -libsigc++20-help -libsigsegv -libslirp -libSM -libsmartcols -libsmbclient -libsndfile -libsodium -libsolv -libsoup -libsoup3 -libsoup3-devel -libspectre -libssh -libsss_autofs -libsss_certmap -libsss_idmap -libsss_nss_idmap -libsss_sudo -libstdc++ -libstdc++-devel -libstemmer -libsysprof-ui -libtalloc -libtasn1 -libtdb -libteam -libtevent -libthai -libthai-devel -libtheora -libtiff -libtiff-devel -libtirpc -libtool -libtool-ltdl -libtraceevent -libtracker-sparql3 -libudisks2 -libunistring -libunwind -libusbmuxd -libusbx -libuser -libutempter -libuuid -libuv -libv4l -libva -libvdpau -libverto -libvisual -libvncserver -libvorbis -libvpx -libwacom -libwacom-data -libwbclient -libwebp -libwinpr -libwpe -libX11 -libX11-devel -libXau -libXau-devel -libxcb -libxcb-devel -libXcomposite -libxcrypt -libxcrypt-devel -libXcursor -libXcursor-devel -libxcvt -libXdamage -libXdamage-devel -libXdmcp -libXext -libXext-devel -libXfixes -libXfixes-devel -libXfont2 -libXfont2-devel -libXft -libXft-devel -libXi -libXi-devel -libXinerama -libXinerama-devel -libxkbcommon -libxkbcommon-devel -libxkbcommon-x11 -libxkbfile -libxklavier -libxml2 -libxml++ -libxml2-devel -libxmlb -libXmu -libXpm -libXrandr -libXrandr-devel -libXrender -libXrender-devel -libXScrnSaver -libxshmfence -libxslt -libXt -libXtst -libXv -libXxf86dga -libXxf86vm -libyaml -lilv-libs -llvm-libs -lmdb -lm_sensors -lockdev -logrotate -low-memory-monitor -lshw -lsscsi -lua -luajit -lua-posix -lvm2 -lvm2-dbusd -lvm2-help -lz4 -lzo -m4 -make -malcontent-libs -mallard-rng -man-db -mariadb-connector-c -mcpp -mcstrans -mdadm -mesa-demos -mesa-dri-drivers -mesa-filesystem -mesa-libEGL -mesa-libEGL-devel -mesa-libgbm -mesa-libGL -mesa-libglapi -mesa-libGL-devel -mesa-libGLU -mesa-vulkan-drivers -mobile-broadband-provider-info -ModemManager-glib -mokutil -mozilla-filesystem -mozjs102 -mpfr -mpg123-libs -mtdev -multipath-tools -mutter -nautilus -ncurses -ncurses-base -ncurses-libs -ndctl -ndctl-libs -net-snmp -net-snmp-libs -nettle -NetworkManager-config-server -NetworkManager-libnm -newt -nftables -nm-connection-editor -nodejs -nodejs-docs -nodejs-full-i18n -nodejs-libs -nodejs-packaging -npm -npth -nspr -nss -nss-softokn -nss-util -ntfs-3g -ntp -ntpstat -numactl-libs -ocl-icd -oeDevPlugin -oedp -oegitext -oniguruma -openal-soft -opencore-amr -OpenCSD -openEuler-gpg-keys -openEuler-latest-release -openEuler-logos -openEuler-release -openEuler-rpm-config -openjpeg2 -openldap -opensc -openssh -openssl -openssl-libs -openssl-pkcs11 -open-vm-tools -open-vm-tools-desktop -opus -orc -osinfo-db -osinfo-db-tools -os-prober -ostree -p11-kit -p11-kit-trust -PackageKit -pam -pango -pango-devel -pangomm -pciutils -pcre2 -pcre2-devel -pcre -pcsc-lite -perf -perl -perl-Algorithm-Diff -perl-Archive-Tar -perl-autodie -perl-B-Debug -perl-bignum -perl-Carp -perl-Compress-Raw-Bzip2 -perl-Compress-Raw-Zlib -perl-Config-Perl-V -perl-constant -perl-CPAN-Meta -perl-CPAN-Meta-Requirements -perl-CPAN-Meta-YAML -perl-Data-Dumper -perl-devel -perl-Devel-PPPort -perl-Digest -perl-Digest-MD5 -perl-Digest-SHA -perl-Encode -perl-Encode-devel -perl-Encode-Locale -perl-Env -perl-Error -perl-experimental -perl-Exporter -perl-ExtUtils-Command -perl-ExtUtils-Install -perl-ExtUtils-MakeMaker -perl-ExtUtils-Manifest -perl-ExtUtils-ParseXS -perl-File-Fetch -perl-File-Path -perl-File-Temp -perl-Filter -perl-Filter-Simple -perl-Getopt-Long -perl-Git -perl-HTTP-Tiny -perl-IO-Compress -perl-IO-Socket-IP -perl-IO-Socket-SSL -perl-IPC-Cmd -perl-IPC-System-Simple -perl-IPC-SysV -perl-JSON-PP -perl-libnet -perl-libs -perl-Locale-Codes -perl-Locale-Maketext -perl-Math-BigInt -perl-Math-BigInt-FastCalc -perl-MIME-Base64 -perl-Module-CoreList -perl-Module-Load -perl-Module-Load-Conditional -perl-Module-Metadata -perl-Mozilla-CA -perl-Net-SSLeay -perl-Params-Check -perl-parent -perl-PathTools -perl-perlfaq -perl-PerlIO-via-QuotedPrint -perl-Perl-OSType -perl-Pod-Checker -perl-Pod-Escapes -perl-podlators -perl-Pod-Parser -perl-Pod-Perldoc -perl-Pod-Simple -perl-Pod-Usage -perl-Scalar-List-Utils -perl-Socket -perl-Storable -perl-Sys-Syslog -perl-Term-ANSIColor -perl-Term-Cap -perl-TermReadKey -perl-Test-Harness -perl-Test-Simple -perl-Text-Balanced -perl-Text-Diff -perl-Text-ParseWords -perl-Text-Tabs+Wrap -perl-Thread-Queue -perl-threads -perl-threads-shared -perl-Time-HiRes -perl-Time-Local -perl-Unicode-Collate -perl-Unicode-Normalize -perl-URI -perl-version -pigz -pinentry -pipewire -pipewire-gstreamer -pipewire-libs -pixman -pixman-devel -pkgconf -pngquant -policycoreutils -policycoreutils-python-utils -polkit -polkit-devel -polkit-help -polkit-libs -polkit-pkla-compat -polkit-qt5-1 -polkit-qt5-1-devel -poppler -poppler-cpp -poppler-data -poppler-glib -popt -powertop -procps-ng -protobuf -protobuf-c -protobuf-compiler -psmisc -publicsuffix-list -pulseaudio -pulseaudio-libs -pulseaudio-libs-glib2 -python3 -python3-annotated-types -python3-anyio -python3-audit -python3-babel -python3-bcrypt -python3-cairo -python3-certifi -python3-cffi -python3-click -python3-colorama -python3-configobj -python3-cryptography -python3-dateutil -python3-dbus -python3-decorator -python3-distro -python3-dnf -python3-dnf-plugins-core -python3-dns -python3-dotenv -python3-email-validator -python3-firewall -python3-gobject -python3-gobject-base -python3-gpgme -python3-h11 -python3-hawkey -python3-httpcore -python3-httpx -python3-httpx-sse -python3-idna -python3-importlib-metadata -python3-iniconfig -python3-IPy -python3-jinja2 -python3-jmespath -python3-libcomps -python3-libdnf -python3-libselinux -python3-libsemanage -python3-libxml2 -python3-linux-procfs -python3-lxml -python3-mako -python3-markdown -python3-markdown-it-py -python3-markupsafe -python3-mcp -python3-mdurl -python3-netaddr -python3-nftables -python3-packaging -python3-paramiko -python3-perf -python3-pip -python3-pluggy -python3-ply -python3-policycoreutils -python3-prettytable -python3-pyasn1 -python3-pycparser -python3-pydantic -python3-pydantic-core -python3-pydantic-settings -python3-pygments -python3-pynacl -python3-pyparsing -python3-pyqt5-sip -python3-pytest -python3-pytz -python3-pyudev -python3-pyyaml -python3-qt5 -python3-qt5-base -python3-rich -python3-rpm -python3-schedutils -python3-setools -python3-setuptools -python3-shellingham -python3-six -python3-slip -python3-sniffio -python3-sse-starlette -python3-starlette -python3-typer -python3-typer-cli -python3-typer-slim -python3-typing-extensions -python3-ujson -python3-unbound -python3-uvicorn -python3-wcwidth -python3-zipp -python-pip-wheel -python-qt5-rpm-macros -python-setuptools -qgnomeplatform-qt5 -qt5-qtbase -qt5-qtbase-common -qt5-qtbase-devel -qt5-qtbase-gui -qt5-qtconnectivity -qt5-qtdeclarative -qt5-qtenginio -qt5-qtgraphicaleffects -qt5-qtlocation -qt5-qtmultimedia -qt5-qtquickcontrols2 -qt5-qtsensors -qt5-qtserialport -qt5-qtsvg -qt5-qttools-common -qt5-qttools-libs-designer -qt5-qttools-libs-help -qt5-qtwayland -qt5-qtwebchannel -qt5-qtwebsockets -qt5-qtx11extras -qt5-qtxmlpatterns -qt5-rpm-macros -qt5-srpm-macros -qt-settings -rdma-core -readline -rest -rng-tools -roo-code -rootfiles -rpm -rpm-libs -rpm-ostree -rpm-ostree-libs -rsync -rsyslog -rtkit -rust-cbindgen -rust-ripgrep -rygel -samba-client -samba-client-libs -samba-common -samba-libs -sbc -SDL -SDL2 -security-tool -sed -selinux-policy -selinux-policy-mls -selinux-policy-targeted -serd -setup -sg3_utils -sgml-common -shadow -shadow-subid-devel -shared-mime-info -shim -skopeo -slang -slirp4netns -snapd-glib -snappy -sord -sound-theme-freedesktop -soxr -speex -speexdsp -sqlite -sqlite-devel -squashfs-tools -sratom -srt-libs -sshpass -sssd -sssd-ad -sssd-client -sssd-common -sssd-common-pac -sssd-ipa -sssd-krb5 -sssd-krb5-common -sssd-ldap -sssd-nfs-idmap -sssd-proxy -startup-notification -switcheroo-control -sysfsutils -sysprof -sysprof-cli -sysprof-devel -systemd -systemd-libs -systemd-pam -systemd-udev -systemtap -systemtap-client -systemtap-runtime -systemtap-sdt-devel -taglib -tar -tcl -thin-provisioning-tools -thin-provisioning-tools-help -thunderbird -thunderbird-librnp-rnp -timedatex -totem-pl-parser -tpm2-tss -tracker3 -tracker3-miners -trousers -tuned -twolame -tzdata -tzdata-java -uchardet -udisks2 -unbound-libs -unzip -upower -urw-base35-bookman-fonts -urw-base35-c059-fonts -urw-base35-d050000l-fonts -urw-base35-fonts -urw-base35-fonts-common -urw-base35-gothic-fonts -urw-base35-nimbus-mono-ps-fonts -urw-base35-nimbus-roman-fonts -urw-base35-nimbus-sans-fonts -urw-base35-p052-fonts -urw-base35-standard-symbols-ps-fonts -urw-base35-z003-fonts -usbmuxd -userspace-rcu -util-linux -util-linux-devel -uv -vala -vala-devel -vid.stab -vim-minimal -virt-what -vo-amrwbenc -volume_key -vscodium -vte291 -vulkan-headers -vulkan-loader -vulkan-loader-devel -wavpack -wavpack-help -wayland -wayland-devel -webkit2gtk4.1 -webkit2gtk5.0 -wget -which -wireless-regdb -woff2 -wpebackend-fdo -wqy-zenhei-fonts -x264-libs -x265 -xcb-util -xcb-util-image -xcb-util-keysyms -xcb-util-renderutil -xcb-util-wm -xdg-dbus-proxy -xdg-desktop-portal -xdg-desktop-portal-gnome -xdg-desktop-portal-gtk -xdg-user-dirs -xdg-user-dirs-gtk -xdg-utils -xfsprogs -xfsprogs-xfs_scrub -xkeyboard-config -xmlsec1 -xorg-x11-drv-amdgpu -xorg-x11-drv-amdgpu-debuginfo -xorg-x11-drv-amdgpu-debugsource -xorg-x11-drv-ati -xorg-x11-drv-ati-debuginfo -xorg-x11-drv-ati-debugsource -xorg-x11-drv-ati-help -xorg-x11-drv-dummy -xorg-x11-drv-dummy-debuginfo -xorg-x11-drv-dummy-debugsource -xorg-x11-drv-dummy-help -xorg-x11-drv-evdev -xorg-x11-drv-evdev-debuginfo -xorg-x11-drv-evdev-debugsource -xorg-x11-drv-evdev-devel -xorg-x11-drv-evdev-help -xorg-x11-drv-fbdev -xorg-x11-drv-fbdev-debuginfo -xorg-x11-drv-fbdev-debugsource -xorg-x11-drv-fbdev-help -xorg-x11-drv-libinput -xorg-x11-drv-libinput-debuginfo -xorg-x11-drv-libinput-debugsource -xorg-x11-drv-libinput-devel -xorg-x11-drv-libinput-help -xorg-x11-drv-nouveau -xorg-x11-drv-nouveau-debuginfo -xorg-x11-drv-nouveau-debugsource -xorg-x11-drv-nouveau-help -xorg-x11-drv-qxl -xorg-x11-drv-qxl-debuginfo -xorg-x11-drv-qxl-debugsource -xorg-x11-drv-synaptics-debuginfo -xorg-x11-drv-synaptics-debugsource -xorg-x11-drv-synaptics-devel -xorg-x11-drv-synaptics-legacy -xorg-x11-drv-v4l -xorg-x11-drv-v4l-debuginfo -xorg-x11-drv-v4l-debugsource -xorg-x11-drv-v4l-help -xorg-x11-drv-wacom -xorg-x11-drv-wacom-debuginfo -xorg-x11-drv-wacom-debugsource -xorg-x11-drv-wacom-devel -xorg-x11-drv-wacom-help -xorg-x11-fonts -xorg-x11-fonts-others -xorg-x11-font-utils -xorg-x11-proto-devel -xorg-x11-server -xorg-x11-server-common -xorg-x11-server-devel -xorg-x11-server-utils -xorg-x11-server-Xwayland -xorg-x11-util-macros -xorg-x11-utils -xorg-x11-xauth -xorg-x11-xinit -xorg-x11-xkb-utils -xvidcore -xz -xz-devel -xz-libs -yajl -yelp-tools -yelp-xsl -yum -zenity -zimg -zip -zlib -zlib-devel -zstd -zvbi -openEuler-repos diff --git a/scripts/raspberrypi/config-common/rpmlist-devstation-24.09 b/scripts/raspberrypi/config-common/rpmlist-devstation-24.09 deleted file mode 100644 index 8822ce3..0000000 --- a/scripts/raspberrypi/config-common/rpmlist-devstation-24.09 +++ /dev/null @@ -1,1032 +0,0 @@ -dnf -alsa-utils -haveged -wpa_supplicant -vim -net-tools -iproute -iputils -NetworkManager -NetworkManager-wifi -NetworkManager-wwan -NetworkManager-bluetooth -NetworkManager-ovs -NetworkManager-ppp -openssh-server -openssh-clients -passwd -hostname -bluez -pulseaudio-module-bluetooth -parted -sudo -bc -systemd-timesyncd -abattis-cantarell-fonts -abseil-cpp -accountsservice -accountsservice-libs -acl -adobe-mappings-cmap -adobe-mappings-cmap-lang -adobe-mappings-pdf -adwaita-cursor-theme -adwaita-icon-theme -alsa-lib -appstream -aspell -atk -at-spi2-atk -at-spi2-core -attr -audit-libs -autoconf -automake -avahi -avahi-devel -avahi-glib -avahi-libs -babeltrace -basesystem -bash -binutils -binutils-gold -bluez-libs -bolt -brotli -brotli-devel -btrfs-progs -bubblewrap -bullet -bullet-devel -bzip2 -bzip2-devel -ca-certificates -cairo -cairo-devel -cairo-gobject -cairo-gobject-devel -cdparanoia-libs -checkpolicy -chkconfig -cmake -cmake-data -cmake-filesystem -cmake-rpm-macros -code -colord -colord-gtk -colord-libs -color-filesystem -containers-common -container-selinux -copy-jdk-configs -coreutils -cpio -cpp -cpp-gpgme -cracklib -criu -cronie -crontabs -crun -crypto-policies -cryptsetup -CUnit -CUnit-devel -cups-libs -cups-pk-helper -curl -cxl-libs -cyrus-sasl-lib -daxctl-libs -dbus -dbus-c++ -dbus-common -dbus-daemon -dbus-devel -dbus-glib -dbus-libs -dbus-tools -dbus-x11 -dconf -dejavu-fonts -desktop-file-utils -device-mapper -device-mapper-event -devstation-config -dhcp -diffutils -dnf-data -dnf-plugins-core -dosfstools -double-conversion -dracut -duktape -e2fsprogs -e2fsprogs-help -efibootmgr -efi-filesystem -efi-srpm-macros -efivar-libs -efl -efl-devel -elfutils-default-yama-scope -elfutils-libelf -elfutils-libs -emacs-filesystem -enchant2 -epiphany-runtime -evolution-data-server -evolution-data-server-langpacks -exempi -exiv2 -expat -ffmpeg -ffmpeg-libs -fftw-libs-single -file -file-libs -filesystem -findutils -firefox -firewalld -flac -flac-devel -flatpak -fontconfig -fontconfig-devel -fonts-filesystem -freeglut -freerdp -freetype -freetype-devel -fribidi -fribidi-devel -fuse -fuse3 -fuse3-help -fuse-common -fuse-help -fuse-overlayfs -fwupd -gawk -gc -gcab -gcc -gcc-gdb-plugin -gcr -gcr4 -gcr4-base -gcr-base -gd -gdb -gdb-headless -gdbm -gdisk -gdk-pixbuf2 -gdk-pixbuf2-devel -gdk-pixbuf2-modules -gdm -geoclue2 -geocode-glib -geocode-glib-devel -gettext -ghostscript -giflib -gjs -glib2 -glib2-devel -glibc -glibc-common -glibc-devel -glibmm24 -glib-networking -gmock -gmp -gnome-autoar -gnome-bluetooth -gnome-color-manager -gnome-control-center -gnome-control-center-filesystem -gnome-desktop3 -gnome-keyring -gnome-keyring-pam -gnome-menus -gnome-online-accounts -gnome-remote-desktop -gnome-session -gnome-settings-daemon -gnome-shell -gnome-software -gnome-terminal -gnome-tour -gnupg2 -gnutls -gobject-introspection -gobject-introspection-devel -google-droid-sans-fonts -google-noto-fonts-common -google-noto-sans-arabic-vf-fonts -google-noto-sans-armenian-vf-fonts -google-noto-sans-bengali-vf-fonts -google-noto-sans-canadian-aboriginal-vf-fonts -google-noto-sans-cherokee-vf-fonts -google-noto-sans-devanagari-vf-fonts -google-noto-sans-ethiopic-vf-fonts -google-noto-sans-georgian-vf-fonts -google-noto-sans-hebrew-vf-fonts -google-noto-sans-kannada-vf-fonts -google-noto-sans-khmer-vf-fonts -google-noto-sans-lao-vf-fonts -google-noto-sans-math-fonts -google-noto-sans-mono-vf-fonts -google-noto-sans-sinhala-vf-fonts -google-noto-sans-symbols2-fonts -google-noto-sans-symbols-vf-fonts -google-noto-sans-tamil-vf-fonts -google-noto-sans-thaana-vf-fonts -google-noto-sans-thai-vf-fonts -google-noto-sans-vf-fonts -google-noto-serif-armenian-vf-fonts -google-noto-serif-ethiopic-vf-fonts -google-noto-serif-georgian-vf-fonts -google-noto-serif-gujarati-vf-fonts -google-noto-serif-gurmukhi-vf-fonts -google-noto-serif-hebrew-vf-fonts -google-noto-serif-kannada-vf-fonts -google-noto-serif-khmer-vf-fonts -google-noto-serif-lao-vf-fonts -google-noto-serif-sinhala-vf-fonts -google-noto-serif-tamil-vf-fonts -google-noto-serif-thai-vf-fonts -google-noto-serif-vf-fonts -gpgme -gpm-libs -graphene -graphene-devel -graphite2 -graphite2-devel -graphviz -graphviz-devel -grep -groff-base -grub2-common -grub2-efi-aa64 -grub2-tools -grub2-tools-extra -grub2-tools-minimal -grubby -gsettings-desktop-schemas -gsm -gsound -gssdp -gst-editing-services -gstreamer1 -gstreamer1-plugins-bad-free -gstreamer1-plugins-base -gstreamer1-plugins-good -gtest -gtest-devel -gtk2 -gtk3 -gtk4 -gtk4-devel -gtk-update-icon-cache -guile -gupnp -gupnp-av -gupnp-dlna -gupnp-igd -gvfs -gvfs-client -gzip -harfbuzz -harfbuzz-devel -hicolor-icon-theme -highcontrast-icon-theme -hunspell -hunspell-en -hwdata -hyphen -ibus -ibus-libpinyin -ibus-libs -iio-sensor-proxy -ima-evm-utils-libs -info -inih -iniparser -initscripts -initscripts-service -ipcalc -ipset -ipset-libs -iptables -iptables-libs -iptables-nft -isl -iso-codes -iw -jack-audio-connection-kit -jansson -java-21-openjdk -java-21-openjdk-devel -java-21-openjdk-headless -javapackages-filesystem -jbig2dec -jbigkit-libs -jq -jsc4.1 -jsc5.0 -json-c -jsoncpp -json-glib -json-glib-devel -kbd -kbd-legacy -kbd-misc -keyutils-libs -kmod -kmod-libs -kpartx -krb5-libs -lame -lcms2 -less -libacl -libadwaita -libadwaita-devel -libaio -libaom -libappstream-glib -libarchive -libargon2 -libass -libassuan -libasyncns -libatasmart -libatomic_ops -libavdevice -libblkid -libblockdev -libbluray -libbpf -libbytesize -libcanberra -libcanberra-gtk3 -libcap -libcap-ng -libcbor -libcdio -libcdio-paranoia -libcloudproviders -libcomps -libconfig -libcurl -libdaemon -libdatrie -libdatrie-devel -libdav1d -libdazzle -libdb -libdbusmenu -libdbusmenu-gtk3 -libdnf -libdrm -libedit -libepoxy -libepoxy-devel -liberation-fonts -libev -libevdev -libevent -libevent-devel -libexif -libfdisk -libffado -libffi -libffi-devel -libfontenc -libgcc -libgcrypt -libgdata -libgee -libgexiv2 -libglvnd -libglvnd-core-devel -libglvnd-devel -libglvnd-egl -libglvnd-gles -libglvnd-glx -libglvnd-opengl -libgnomekbd -libgomp -libgpg-error -libgphoto2 -libgsf -libgtop2 -libgudev -libgusb -libgweather -libgweather-devel -libgxps -libhandy -libical -libICE -libicu -libicu-devel -libidn -libidn2 -libiec61883 -libiec61883-help -libijs -libimagequant -libimobiledevice -libinput -libinput-devel -libiptcdata -libjcat -libjpeg-turbo -libjpeg-turbo-devel -libkcapi -libksba -libldac -libldb -libmediaart -libmnl -libmodplug -libmodulemd -libmount -libmpc -libmtp -libndp -libnet -libnetfilter_conntrack -libnfnetlink -libnftnl -libnghttp2 -libnghttp2-devel -libnice -libnl3 -libnma -libnotify -libnsl2 -libnvme -libogg -libogg-devel -libosinfo -libpaper -libpcap -libpciaccess -libpfm -libpinyin -libpipeline -libplist -libpng -libpng-devel -libportal -libproxy -libpsl -libpsl-devel -libpwquality -LibRaw -libraw1394 -libraw1394-help -librepo -libreport-filesystem -librsvg2 -libsamplerate -libseccomp -libsecret -libselinux -libselinux-devel -libsemanage -libsepol -libsepol-devel -libshout -libsigc++20 -libslirp -libSM -libsmartcols -libsmbclient -libsndfile -libsndfile-devel -libsolv -libsoup -libsoup3 -libsoup3-devel -libspectre -libssh -libstdc++ -libstemmer -libsysprof-ui -libtalloc -libtasn1 -libtdb -libtevent -libthai -libthai-devel -libtheora -libtiff -libtiff-devel -libtirpc -libtool -libtool-ltdl -libtraceevent -libtracker-sparql3 -libudisks2 -libunistring -libunwind -libunwind-devel -libusbmuxd -libusbx -libuser -libutempter -libuuid -libuv -libv4l -libva -libvdpau -libverto -libvisual -libvncserver -libvorbis -libvorbis-devel -libvpx -libwacom -libwacom-data -libwbclient -libwebp -libwinpr -libwpe -libX11 -libX11-devel -libXau -libXau-devel -libXaw -libxcb -libxcb-devel -libXcomposite -libxcrypt -libxcrypt-devel -libXcursor -libXcursor-devel -libxcvt -libXdamage -libXdamage-devel -libXdmcp -libXext -libXext-devel -libXfixes -libXfixes-devel -libXfont2 -libXft -libXft-devel -libXi -libXi-devel -libXinerama -libXinerama-devel -libxkbcommon -libxkbcommon-devel -libxkbcommon-x11 -libxkbcommon-x11-devel -libxkbfile -libxklavier -libxml2 -libxml++ -libxml2-devel -libxmlb -libXmu -libXpm -libXrandr -libXrandr-devel -libXrender -libXrender-devel -libXScrnSaver -libxshmfence -libxslt -libXt -libXtst -libXv -libXxf86dga -libXxf86vm -libyaml -lilv-libs -llvm-libs -lmdb -lockdev -logrotate -low-memory-monitor -lua -luajit -luajit-devel -lua-posix -lvm2 -lvm2-dbusd -lvm2-help -lz4 -lzo -m4 -make -malcontent-libs -man-db -mcpp -mdadm -mesa-demos -mesa-dri-drivers -mesa-filesystem -mesa-libEGL -mesa-libEGL-devel -mesa-libgbm -mesa-libGL -mesa-libglapi -mesa-libGLU -mobile-broadband-provider-info -ModemManager-glib -mokutil -mozilla-filesystem -mozjs102 -mpfr -mpg123-devel -mpg123-libs -mtdev -multipath-tools -mutter -nautilus -ncurses -ncurses-base -ncurses-libs -ndctl -ndctl-libs -nettle -NetworkManager-libnm -newt -nftables -nm-connection-editor -npth -nspr -nss -nss-softokn -nss-util -ntfs-3g -ocl-icd -oniguruma -openal-soft -opencore-amr -OpenCSD -openEuler-gpg-keys -openEuler-logos -openEuler-release -openEuler-rpm-config -openjpeg2 -openldap -openssh -openssl -openssl-devel -openssl-libs -openssl-pkcs11 -opus -opus-devel -orc -osinfo-db -osinfo-db-tools -os-prober -ostree -p11-kit -p11-kit-trust -PackageKit -pam -pango -pango-devel -pciutils -pcre2 -pcre2-devel -pcre -perf -perl -perl-Algorithm-Diff -perl-Archive-Tar -perl-autodie -perl-B-Debug -perl-bignum -perl-Carp -perl-Compress-Raw-Bzip2 -perl-Compress-Raw-Zlib -perl-Config-Perl-V -perl-constant -perl-CPAN-Meta -perl-CPAN-Meta-Requirements -perl-CPAN-Meta-YAML -perl-Data-Dumper -perl-devel -perl-Devel-PPPort -perl-Digest -perl-Digest-MD5 -perl-Digest-SHA -perl-Encode -perl-Encode-devel -perl-Encode-Locale -perl-Env -perl-experimental -perl-Exporter -perl-ExtUtils-Command -perl-ExtUtils-Install -perl-ExtUtils-MakeMaker -perl-ExtUtils-Manifest -perl-ExtUtils-ParseXS -perl-File-Fetch -perl-File-Path -perl-File-Temp -perl-Filter -perl-Filter-Simple -perl-Getopt-Long -perl-HTTP-Tiny -perl-IO-Compress -perl-IO-Socket-IP -perl-IO-Socket-SSL -perl-IPC-Cmd -perl-IPC-System-Simple -perl-IPC-SysV -perl-JSON-PP -perl-libnet -perl-libs -perl-Locale-Codes -perl-Locale-Maketext -perl-Math-BigInt -perl-Math-BigInt-FastCalc -perl-MIME-Base64 -perl-Module-CoreList -perl-Module-Load -perl-Module-Load-Conditional -perl-Module-Metadata -perl-Mozilla-CA -perl-Net-SSLeay -perl-Params-Check -perl-parent -perl-PathTools -perl-perlfaq -perl-PerlIO-via-QuotedPrint -perl-Perl-OSType -perl-Pod-Checker -perl-Pod-Escapes -perl-podlators -perl-Pod-Parser -perl-Pod-Perldoc -perl-Pod-Simple -perl-Pod-Usage -perl-Scalar-List-Utils -perl-Socket -perl-Storable -perl-Sys-Syslog -perl-Term-ANSIColor -perl-Term-Cap -perl-Test-Harness -perl-Test-Simple -perl-Text-Balanced -perl-Text-Diff -perl-Text-ParseWords -perl-Text-Tabs+Wrap -perl-Thread-Queue -perl-threads -perl-threads-shared -perl-Time-HiRes -perl-Time-Local -perl-Unicode-Collate -perl-Unicode-Normalize -perl-URI -perl-version -pigz -pinentry -pipewire -pipewire-gstreamer -pipewire-libs -pixman -pixman-devel -pkgconf -pngquant -policycoreutils -polkit -polkit-devel -polkit-help -polkit-libs -polkit-pkla-compat -poppler -poppler-cpp -poppler-data -poppler-glib -popt -procps-ng -protobuf -protobuf-c -protobuf-compiler -psmisc -publicsuffix-list -pulseaudio -pulseaudio-libs -pulseaudio-libs-devel -pulseaudio-libs-glib2 -python3 -python3-cairo -python3-dateutil -python3-dbus -python3-distro -python3-dnf -python3-dnf-plugins-core -python3-firewall -python3-gobject -python3-gobject-base -python3-gpgme -python3-hawkey -python3-iniconfig -python3-libcomps -python3-libdnf -python3-mako -python3-markdown -python3-markupsafe -python3-nftables -python3-packaging -python3-pip -python3-pluggy -python3-pyparsing -python3-pyqt5-sip -python3-pytest -python3-pyudev -python3-qt5 -python3-qt5-base -python3-rpm -python3-setuptools -python3-six -python3-unbound -python-pip-wheel -python-qt5-rpm-macros -python-setuptools -qt5-qtbase -qt5-qtbase-common -qt5-qtbase-gui -qt5-qtconnectivity -qt5-qtdeclarative -qt5-qtenginio -qt5-qtlocation -qt5-qtmultimedia -qt5-qtsensors -qt5-qtserialport -qt5-qtsvg -qt5-qttools-common -qt5-qttools-libs-designer -qt5-qttools-libs-help -qt5-qtwebchannel -qt5-qtwebsockets -qt5-qtx11extras -qt5-qtxmlpatterns -qt5-srpm-macros -qt-settings -readline -rest -rpm -rpm-libs -rpm-ostree -rpm-ostree-libs -rtkit -rygel -samba-client-libs -samba-common -sbc -SDL -SDL2 -SDL2-devel -sed -selinux-policy -selinux-policy-targeted -serd -setup -sgml-common -shadow -shadow-subid-devel -shared-mime-info -shim -skopeo -slang -slirp4netns -snapd-glib -sord -sound-theme-freedesktop -soxr -speex -speexdsp -sqlite -sqlite-devel -sratom -srt-libs -startup-notification -switcheroo-control -sysprof -sysprof-cli -sysprof-devel -systemd -systemd-devel -systemd-libs -systemd-pam -systemd-udev -systemtap-sdt-devel -taglib -tar -tcl -thin-provisioning-tools -thin-provisioning-tools-help -totem-pl-parser -tpm2-tss -tracker3 -tracker3-miners -trousers -twolame -tzdata -tzdata-java -uchardet -udisks2 -unbound-libs -upower -urw-base35-bookman-fonts -urw-base35-c059-fonts -urw-base35-d050000l-fonts -urw-base35-fonts -urw-base35-fonts-common -urw-base35-gothic-fonts -urw-base35-nimbus-mono-ps-fonts -urw-base35-nimbus-roman-fonts -urw-base35-nimbus-sans-fonts -urw-base35-p052-fonts -urw-base35-standard-symbols-ps-fonts -urw-base35-z003-fonts -usbmuxd -userspace-rcu -util-linux -util-linux-devel -vala -vala-devel -vid.stab -vim-common -vim-enhanced -vim-filesystem -vim-minimal -vo-amrwbenc -volume_key -vte291 -wavpack -wavpack-help -wayland -wayland-devel -webkit2gtk3 -webkit2gtk3-jsc -webkit2gtk4.1 -webkit2gtk5.0 -webp-pixbuf-loader -which -wireless-regdb -woff2 -wpebackend-fdo -wqy-zenhei-fonts -x264-libs -x265 -xcb-util -xcb-util-image -xcb-util-keysyms -xcb-util-renderutil -xcb-util-wm -xdg-dbus-proxy -xdg-desktop-portal -xdg-desktop-portal-gnome -xdg-desktop-portal-gtk -xdg-user-dirs -xdg-user-dirs-gtk -xdg-utils -xfsprogs -xfsprogs-xfs_scrub -xkeyboard-config -xorg-x11-drv-libinput -xorg-x11-fonts -xorg-x11-fonts-others -xorg-x11-font-utils -xorg-x11-proto-devel -xorg-x11-server -xorg-x11-server-common -xorg-x11-server-utils -xorg-x11-server-Xwayland -xorg-x11-utils -xorg-x11-xauth -xorg-x11-xinit -xorg-x11-xkb-utils -xvidcore -xz -xz-devel -xz-libs -yajl -yum -zenity -zimg -zip -zlib -zlib-devel -zstd -zvbi -openEuler-repos diff --git a/scripts/raspberrypi/config-common/rpmlist-devstation-25.03 b/scripts/raspberrypi/config-common/rpmlist-devstation-25.03 deleted file mode 100644 index 9b0b780..0000000 --- a/scripts/raspberrypi/config-common/rpmlist-devstation-25.03 +++ /dev/null @@ -1,1263 +0,0 @@ -dnf -alsa-utils -haveged -wpa_supplicant -vim -net-tools -iproute -iputils -NetworkManager -NetworkManager-wifi -NetworkManager-wwan -NetworkManager-bluetooth -NetworkManager-ovs -NetworkManager-ppp -openssh-server -openssh-clients -passwd -hostname -bluez -pulseaudio-module-bluetooth -parted -sudo -bc -systemd-timesyncd -abattis-cantarell-fonts -abseil-cpp -accountsservice -accountsservice-libs -acl -adcli -adobe-mappings-cmap -adobe-mappings-cmap-lang -adobe-mappings-pdf -adwaita-cursor-theme -adwaita-icon-theme -adwaita-qt5 -alsa-lib -ansible -appstream -atk -atk-devel -atkmm -at-spi2-atk -at-spi2-core -audit -audit-libs -authselect -autoconf -autogen -automake -avahi-glib -avahi-libs -babeltrace -basesystem -bash -bind -bind-dnssec-doc -bind-dnssec-utils -bind-libs -bind-license -bind-utils -binutils -bluez-libs -bolt -boost-iostreams -brotli -brotli-devel -btrfs-progs -bubblewrap -bullet -bzip2 -bzip2-devel -ca-certificates -cairo -cairo-devel -cairo-gobject -cairo-gobject-devel -cairomm -c-ares -ccid -cdparanoia-libs -checkpolicy -chkconfig -chrony -chrpath -cmake -cmake-data -cmake-filesystem -cmake-rpm-macros -colord -colord-gtk -colord-libs -color-filesystem -containers-common -container-selinux -copy-jdk-configs -coreutils -cpio -cpp -cpp-gpgme -cracklib -criu -cronie -crontabs -crun -crypto-policies -crypto-policies-scripts -cryptsetup -CUnit -CUnit-devel -cups-libs -cups-pk-helper -curl -cxl-libs -cyrus-sasl -cyrus-sasl-lib -daxctl-libs -dbus -dbus-c++ -dbus-common -dbus-daemon -dbus-glib -dbus-libs -dbus-tools -dbus-x11 -dconf -debugedit -dejavu-fonts -desktop-file-utils -device-mapper -device-mapper-event -devstation-config -dhcp -diffutils -ding-libs -dmidecode -dnf-data -dnf-plugins-core -docbook-dtds -dosfstools -double-conversion -dracut -dracut-config-generic -dracut-config-rescue -dracut-live -dracut-network -dracut-squash -duktape -dwz -e2fsprogs -e2fsprogs-help -efibootmgr -efi-filesystem -efi-srpm-macros -efivar-libs -efl -elfutils -elfutils-debuginfod-client -elfutils-default-yama-scope -elfutils-extra -elfutils-libelf -elfutils-libs -emacs-filesystem -enchant2 -epiphany-runtime -epkg -ethtool -euler-copilot-shell -evolution-data-server -evolution-data-server-langpacks -exempi -exiv2 -expat -ffmpeg -ffmpeg-libs -fftw-libs-single -file -file-libs -filesystem -findutils -fipscheck -firefox -firewalld -flac -flatpak -fontconfig -fontconfig-devel -fonts-filesystem -freeglut -freerdp -freetype -freetype-devel -fribidi -fribidi-devel -fuse -fuse3 -fuse3-help -fuse-common -fuse-help -fuse-overlayfs -fwupd -gawk -gc -gcab -gcc -gcc-c++ -gcc-gdb-plugin -gcr -gcr4 -gcr4-base -gcr-base -gd -gdb -gdb-headless -gdbm -gdisk -gdk-pixbuf2 -gdk-pixbuf2-devel -gdk-pixbuf2-modules -gdm -geoclue2 -geocode-glib -geocode-glib-devel -gettext -gettext-envsubst -gettext-libs -gettext-runtime -giflib -git -git-core -gjs -glib2 -glib2-devel -glibc -glibc-common -glibc-devel -glibmm24 -glibmm24-help -glib-networking -gmock -gmp -gnome-autoar -gnome-bluetooth -gnome-color-manager -gnome-control-center -gnome-control-center-filesystem -gnome-desktop3 -gnome-doc-utils -gnome-doc-utils-stylesheets -gnome-keyring -gnome-keyring-pam -gnome-menus -gnome-online-accounts -gnome-remote-desktop -gnome-session -gnome-settings-daemon -gnome-shell -gnome-shell-extension-dash-to-dock -gnome-shell-extensions -gnome-software -gnome-terminal -gnome-tour -gnome-user-docs -gnupg2 -gnutls -gobject-introspection -gobject-introspection-devel -google-droid-sans-fonts -google-noto-fonts-common -google-noto-sans-arabic-vf-fonts -google-noto-sans-armenian-vf-fonts -google-noto-sans-bengali-vf-fonts -google-noto-sans-canadian-aboriginal-vf-fonts -google-noto-sans-cherokee-vf-fonts -google-noto-sans-devanagari-vf-fonts -google-noto-sans-ethiopic-vf-fonts -google-noto-sans-georgian-vf-fonts -google-noto-sans-hebrew-vf-fonts -google-noto-sans-kannada-vf-fonts -google-noto-sans-khmer-vf-fonts -google-noto-sans-lao-vf-fonts -google-noto-sans-math-fonts -google-noto-sans-mono-vf-fonts -google-noto-sans-sinhala-vf-fonts -google-noto-sans-symbols2-fonts -google-noto-sans-symbols-vf-fonts -google-noto-sans-tamil-vf-fonts -google-noto-sans-thaana-vf-fonts -google-noto-sans-thai-vf-fonts -google-noto-sans-vf-fonts -google-noto-serif-armenian-vf-fonts -google-noto-serif-ethiopic-vf-fonts -google-noto-serif-georgian-vf-fonts -google-noto-serif-gujarati-vf-fonts -google-noto-serif-gurmukhi-vf-fonts -google-noto-serif-hebrew-vf-fonts -google-noto-serif-kannada-vf-fonts -google-noto-serif-khmer-vf-fonts -google-noto-serif-lao-vf-fonts -google-noto-serif-sinhala-vf-fonts -google-noto-serif-tamil-vf-fonts -google-noto-serif-thai-vf-fonts -google-noto-serif-vf-fonts -gpgme -graphene -graphene-devel -graphite2 -graphite2-devel -graphviz -graphviz-devel -grep -groff-base -grub2-common -grub2-efi-aa64 -grub2-efi-aa64-cdboot -grub2-tools -grub2-tools-extra -grub2-tools-minimal -grubby -gsettings-desktop-schemas -gsettings-desktop-schemas-devel -gsm -gsound -gssdp -gst-editing-services -gstreamer1 -gstreamer1-plugins-bad-free -gstreamer1-plugins-base -gstreamer1-plugins-good -gstreamer1-plugins-good-qt -gtest -gtest-devel -gtk2 -gtk3 -gtk4 -gtk4-devel -gtkmm30 -gtk-update-icon-cache -guile -gupnp -gupnp-av -gupnp-dlna -gvfs -gvfs-client -gzip -harfbuzz -harfbuzz-devel -hdparm -hicolor-icon-theme -highcontrast-icon-theme -hunspell -hunspell-en -hwdata -hyphen -ibus -ibus-libpinyin -ibus-libs -iio-sensor-proxy -ima-evm-utils-libs -info -inih -iniparser -initscripts -initscripts-service -ipcalc -ipmitool -iprutils -ipset -ipset-libs -iptables -iptables-help -iptables-libs -iptables-nft -irqbalance -iso-codes -itstool -iw -jack-audio-connection-kit -jansson -java-21-openjdk -java-21-openjdk-devel -java-21-openjdk-headless -javapackages-filesystem -jbig2dec -jbigkit-libs -jitterentropy-library -jq -jsc4.1 -jsc5.0 -json-c -jsoncpp -json-glib -json-glib-devel -kbd -kbd-legacy -kbd-misc -kexec-tools -keyutils-libs -kf5-kcalendarcore -kf5-kcalendarcore-devel -kmod -kmod-libs -kpartx -krb5-libs -lame -lcms2 -less -libacl -libadwaita -libadwaita-devel -libadwaita-qt5 -libaio -libaom -libappstream-glib -libarchive -libargon2 -libass -libassuan -libasyncns -libatasmart -libattr1 -libavdevice -libblkid -libblockdev -libbluray -libbpf -libbytesize -libcanberra -libcanberra-gtk3 -libcap -libcap-ng -libcbor -libcdio -libcdio-paranoia -libcloudproviders -libcomps -libconfig -libcurl -libdaemon -libdatrie -libdatrie-devel -libdav1d -libdazzle -libdb -libdbusmenu -libdbusmenu-gtk3 -libdnf -libdrm -libdrm-devel -libdvdnav -libdvdread -libedit -libepoxy -libepoxy-devel -liberation-fonts -libestr -libev -libevdev -libevent -libexif -libfastjson -libfdisk -libffado -libffi -libffi-devel -libfontenc -libfontenc-devel -libgcc -libgcrypt -libgdata -libgee -libgexiv2 -libglvnd -libglvnd-core-devel -libglvnd-devel -libglvnd-egl -libglvnd-gles -libglvnd-glx -libglvnd-opengl -libgnomekbd -libgomp -libgpg-error -libgphoto2 -libgs -libgsf -libgtop2 -libgudev -libgusb -libgweather -libgweather-devel -libgxps -libhandy -libical -libical-devel -libICE -libicu -libicu-devel -libidn -libidn2 -libiec61883 -libiec61883-help -libijs -libimagequant -libimobiledevice -libinput -libipa_hbac -libiptcdata -libjcat -libjpeg-turbo -libjpeg-turbo-devel -libkcapi -libksba -libldac -libldb -libmediaart -libmetalink -libmnl -libmodplug -libmodulemd -libmount -libmpc -libmspack -libmtp -libndp -libnet -libnetfilter_conntrack -libnfnetlink -libnfsidmap -libnftnl -libnghttp2 -libnghttp2-devel -libnl3 -libnma -libnotify -libnsl2 -libnvme -libogg -libosinfo -libpaper -libpcap -libpciaccess -libpciaccess-devel -libpfm -libpinyin -libpipeline -libplist -libpng -libpng-devel -libportal -libproxy -libpsl -libpsl-devel -libpwquality -LibRaw -libraw1394 -libraw1394-help -librepo -libreport-filesystem -librsvg2 -libsamplerate -libseccomp -libsecret -libselinux -libselinux-devel -libsemanage -libsepol -libsepol-devel -libshout -libsigc++20 -libsigc++20-help -libslirp -libSM -libsmartcols -libsmbclient -libsndfile -libsodium -libsolv -libsoup -libsoup3 -libsoup3-devel -libspectre -libsrtp -libssh -libsss_autofs -libsss_certmap -libsss_idmap -libsss_nss_idmap -libsss_sudo -libstdc++ -libstdc++-devel -libstemmer -libsysprof-ui -libtalloc -libtasn1 -libtdb -libteam -libtevent -libtextstyle -libthai -libthai-devel -libtheora -libtiff -libtiff-devel -libtirpc -libtool -libtool-ltdl -libtraceevent -libtracker-sparql3 -libudisks2 -libunistring -libunwind -libusbmuxd -libusbx -libuser -libutempter -libuuid -libuv -libv4l -libva -libvdpau -libverto -libvisual -libvncserver -libvorbis -libvpx -libwacom -libwacom-data -libwbclient -libwebp -libwebp-devel -libwinpr -libwpe -libX11 -libX11-devel -libXau -libXau-devel -libxcb -libxcb-devel -libXcomposite -libxcrypt -libxcrypt-devel -libXcursor -libXcursor-devel -libxcvt -libXdamage -libXdamage-devel -libXdmcp -libXext -libXext-devel -libXfixes -libXfixes-devel -libXfont2 -libXfont2-devel -libXft -libXft-devel -libXi -libXi-devel -libXinerama -libXinerama-devel -libxkbcommon -libxkbcommon-devel -libxkbcommon-x11 -libxkbfile -libxklavier -libxml2 -libxml++ -libxml2-devel -libxmlb -libXmu -libXpm -libXrandr -libXrandr-devel -libXrender -libXrender-devel -libXScrnSaver -libxshmfence -libxslt -libXt -libXtst -libXv -libXxf86vm -libyaml -llvm-libs -lmdb -lm_sensors -lockdev -logrotate -low-memory-monitor -lshw-B.02.20-2.oe2503.aarch64.rpm -lsscsi -lua -luajit -lua-posix -lvm2 -lvm2-dbusd -lvm2-help -lz4 -lzo -m4 -make -malcontent-libs -mallard-rng -man-db -mariadb-connector-c -mcpp -mcstrans -mdadm -mesa-demos -mesa-dri-drivers -mesa-filesystem -mesa-libEGL -mesa-libEGL-devel -mesa-libgbm -mesa-libGL -mesa-libglapi -mesa-libGL-devel -mesa-libGLU -mesa-vulkan-drivers -mkfontscale -mobile-broadband-provider-info -ModemManager-glib -mokutil -mozilla-filesystem -mozjs102 -mpfr -mpg123-libs -mtdev -multipath-tools -mutter -mutter-devel -nautilus -ncurses -ncurses-base -ncurses-libs -ndctl -ndctl-libs -net-snmp -net-snmp-libs -nettle -NetworkManager-config-server -NetworkManager-libnm -newt -nftables -nm-connection-editor -nodejs -nodejs-docs -nodejs-full-i18n -nodejs-libs -nodejs-packaging -npm -npth -nspr -nss -nss-softokn -nss-util -ntfs-3g -ntp -ntpstat -numactl-libs -ocl-icd -oeDevPlugin -oedp -oegitext -oniguruma -openal-soft -opencore-amr -OpenCSD -openEuler-gpg-keys -openEuler-latest-release -openEuler-logos -openEuler-release -openEuler-rpm-config -openjpeg2 -openldap -opensc -openssh -openssl -openssl-libs -openssl-pkcs11 -open-vm-tools -open-vm-tools-desktop -opus -orc -osinfo-db -osinfo-db-tools -os-prober -ostree -p11-kit -p11-kit-trust -PackageKit -pam -pango -pango-devel -pangomm -patch -pciutils -pcre2 -pcre2-devel -pcsc-lite -perf -perl -perl-Algorithm-Diff -perl-Archive-Tar -perl-autodie -perl-B-Debug -perl-bignum -perl-Carp -perl-Compress-Raw-Bzip2 -perl-Compress-Raw-Zlib -perl-Config-Perl-V -perl-constant -perl-CPAN-Meta -perl-CPAN-Meta-Requirements -perl-CPAN-Meta-YAML -perl-Data-Dumper -perl-devel -perl-Devel-PPPort -perl-Digest -perl-Digest-MD5 -perl-Digest-SHA -perl-Encode -perl-Encode-devel -perl-Encode-Locale -perl-Env -perl-Error -perl-experimental -perl-Exporter -perl-ExtUtils-Command -perl-ExtUtils-Install -perl-ExtUtils-MakeMaker -perl-ExtUtils-Manifest -perl-ExtUtils-ParseXS -perl-File-Fetch -perl-File-Path -perl-File-Temp -perl-Filter -perl-Filter-Simple -perl-Getopt-Long -perl-Git -perl-HTTP-Tiny -perl-Importer -perl-IO-Compress -perl-IO-Socket-IP -perl-IO-Socket-SSL -perl-IPC-Cmd -perl-IPC-System-Simple -perl-IPC-SysV -perl-JSON-PP -perl-libnet -perl-libs -perl-Locale-Codes -perl-Locale-Maketext -perl-Math-BigInt -perl-Math-BigInt-FastCalc -perl-MIME-Base64 -perl-Module-CoreList -perl-Module-Load -perl-Module-Load-Conditional -perl-Module-Metadata -perl-Mozilla-CA -perl-Net-SSLeay -perl-Params-Check -perl-parent -perl-PathTools -perl-perlfaq -perl-PerlIO-via-QuotedPrint -perl-Perl-OSType -perl-Pod-Checker -perl-Pod-Escapes -perl-podlators -perl-Pod-Parser -perl-Pod-Perldoc -perl-Pod-Simple -perl-Pod-Usage -perl-Scalar-List-Utils -perl-Socket -perl-Storable -perl-Sys-Syslog -perl-Term-ANSIColor -perl-Term-Cap -perl-TermReadKey -perl-Term-Table -perl-Test-Harness -perl-Test-Simple -perl-Text-Balanced -perl-Text-Diff -perl-Text-ParseWords -perl-Text-Tabs+Wrap -perl-Thread-Queue -perl-threads -perl-threads-shared -perl-Time-HiRes -perl-Time-Local -perl-Unicode-Collate -perl-Unicode-LineBreak -perl-Unicode-Normalize -perl-URI -perl-version -pigz -pinentry -pipewire -pipewire-gstreamer -pipewire-libs -pixman -pixman-devel -pkgconf -pngquant -policycoreutils -policycoreutils-python-utils -polkit -polkit-devel -polkit-help -polkit-libs -polkit-pkla-compat -polkit-qt5-1 -polkit-qt5-1-devel -poppler -poppler-cpp -poppler-data -poppler-glib -popt -powertop -procps-ng -protobuf -protobuf-c -protobuf-compiler -psmisc -publicsuffix-list -pulseaudio -pulseaudio-libs -pulseaudio-libs-glib2 -python3 -python3-audit -python3-babel -python3-bcrypt -python3-cairo -python3-cffi -python3-configobj -python3-cryptography -python3-dateutil -python3-dbus -python3-decorator -python3-distro -python3-dnf -python3-dnf-plugins-core -python3-firewall -python3-gobject -python3-gobject-base -python3-gpgme -python3-hawkey -python3-importlib-metadata -python3-iniconfig -python3-IPy -python3-jinja2 -python3-jmespath -python3-libcomps -python3-libdnf -python3-libselinux -python3-libsemanage -python3-libxml2 -python3-linux-procfs -python3-lxml -python3-mako -python3-markdown -python3-markupsafe -python3-nftables -python3-packaging -python3-paramiko -python3-perf -python3-pip -python3-pluggy -python3-ply -python3-policycoreutils -python3-prettytable -python3-pyasn1 -python3-pycparser -python3-pynacl -python3-pyparsing -python3-pyqt5-sip -python3-pytest -python3-pytz -python3-pyudev -python3-pyyaml -python3-qt5 -python3-qt5-base -python3-rpm -python3-schedutils -python3-setools -python3-setuptools -python3-six -python3-slip -python3-unbound -python3-wcwidth -python3-zipp -python-pip-wheel -python-qt5-rpm-macros -python-setuptools -qgnomeplatform-qt5 -qt5-qtbase -qt5-qtbase-common -qt5-qtbase-devel -qt5-qtbase-gui -qt5-qtconnectivity -qt5-qtdeclarative -qt5-qtenginio -qt5-qtgraphicaleffects -qt5-qtlocation -qt5-qtmultimedia -qt5-qtquickcontrols2 -qt5-qtsensors -qt5-qtserialport -qt5-qtsvg -qt5-qttools-common -qt5-qttools-libs-designer -qt5-qttools-libs-help -qt5-qtwayland -qt5-qtwebchannel -qt5-qtwebsockets -qt5-qtx11extras -qt5-qtxmlpatterns -qt5-rpm-macros -qt5-srpm-macros -qt-settings -rdma-core -readline -rest -rng-tools -rootfiles -rpm -rpm-build -rpm-libs -rpm-ostree -rpm-ostree-libs -rsync -rsyslog -rtkit -rust-cbindgen -rust-ripgrep -rygel -samba-client -samba-client-libs -samba-common -samba-libs -sbc -SDL -SDL2 -security-tool -sed -selinux-policy -selinux-policy-mls -selinux-policy-targeted -setup -sg3_utils -sgml-common -shadow -shadow-subid-devel -shared-mime-info -shim -skopeo -slang -slirp4netns -snapd-glib -snappy -sombok -sound-theme-freedesktop -soundtouch -soxr -speex -speexdsp -sqlite -sqlite-devel -squashfs-tools -srt-libs -sshpass -sssd -sssd-ad -sssd-client -sssd-common -sssd-common-pac -sssd-ipa -sssd-krb5 -sssd-krb5-common -sssd-ldap -sssd-nfs-idmap -sssd-proxy -startup-notification -switcheroo-control -sysfsutils -sysprof -sysprof-cli -sysprof-devel -systemd -systemd-libs -systemd-pam -systemd-rpm-macros -systemd-udev -systemtap -systemtap-client -systemtap-runtime -systemtap-sdt-devel -taglib -tar -tcl -telepathy-filesystem -telepathy-glib -telepathy-logger -thin-provisioning-tools -thin-provisioning-tools-help -thunderbird -thunderbird-librnp-rnp -timedatex -totem-pl-parser -tpm2-tss -tracker3 -tracker3-miners -trousers -ttmkfdir -tuned -twolame -tzdata -tzdata-java -uchardet -udisks2 -umockdev -unbound-libs -unzip -upower -urw-base35-bookman-fonts -urw-base35-c059-fonts -urw-base35-d050000l-fonts -urw-base35-fonts -urw-base35-fonts-common -urw-base35-gothic-fonts -urw-base35-nimbus-mono-ps-fonts -urw-base35-nimbus-roman-fonts -urw-base35-nimbus-sans-fonts -urw-base35-p052-fonts -urw-base35-standard-symbols-ps-fonts -urw-base35-z003-fonts -usbmuxd -userspace-rcu -util-linux -util-linux-devel -vala -vala-devel -vid.stab -vim-minimal -virt-what -vo-amrwbenc -volume_key -vscodium -vte291 -vulkan-headers -vulkan-loader -vulkan-loader-devel -wavpack -wavpack-help -wayland -wayland-devel -webkit2gtk4.1 -webkit2gtk5.0 -webrtc-audio-processing -wget -which -wireless-regdb -woff2 -wpebackend-fdo -wqy-zenhei-fonts -x264-libs -x265 -xcb-util -xcb-util-image -xcb-util-keysyms -xcb-util-renderutil -xcb-util-wm -xdg-dbus-proxy -xdg-desktop-portal -xdg-desktop-portal-gnome -xdg-desktop-portal-gtk -xdg-user-dirs -xdg-user-dirs-gtk -xdg-utils -xfsprogs -xfsprogs-xfs_scrub -xkeyboard-config -xmlsec1 -xorg-x11-drv-amdgpu -xorg-x11-drv-amdgpu-debuginfo -xorg-x11-drv-amdgpu-debugsource -xorg-x11-drv-ati -xorg-x11-drv-ati-debuginfo -xorg-x11-drv-ati-debugsource -xorg-x11-drv-ati-help -xorg-x11-drv-dummy -xorg-x11-drv-dummy-debuginfo -xorg-x11-drv-dummy-debugsource -xorg-x11-drv-dummy-help -xorg-x11-drv-evdev -xorg-x11-drv-evdev-debuginfo -xorg-x11-drv-evdev-debugsource -xorg-x11-drv-evdev-devel -xorg-x11-drv-evdev-help -xorg-x11-drv-fbdev -xorg-x11-drv-fbdev-debuginfo -xorg-x11-drv-fbdev-debugsource -xorg-x11-drv-fbdev-help -xorg-x11-drv-libinput -xorg-x11-drv-libinput-debuginfo -xorg-x11-drv-libinput-debugsource -xorg-x11-drv-libinput-devel -xorg-x11-drv-libinput-help -xorg-x11-drv-nouveau -xorg-x11-drv-nouveau-debuginfo -xorg-x11-drv-nouveau-debugsource -xorg-x11-drv-nouveau-help -xorg-x11-drv-qxl -xorg-x11-drv-qxl-debuginfo -xorg-x11-drv-qxl-debugsource -xorg-x11-drv-synaptics-debuginfo -xorg-x11-drv-synaptics-debugsource -xorg-x11-drv-synaptics-devel -xorg-x11-drv-synaptics-legacy -xorg-x11-drv-v4l -xorg-x11-drv-v4l-debuginfo -xorg-x11-drv-v4l-debugsource -xorg-x11-drv-v4l-help -xorg-x11-drv-wacom -xorg-x11-drv-wacom-debuginfo -xorg-x11-drv-wacom-debugsource -xorg-x11-drv-wacom-devel -xorg-x11-drv-wacom-help -xorg-x11-fonts -xorg-x11-fonts-others -xorg-x11-font-utils -xorg-x11-proto-devel -xorg-x11-server -xorg-x11-server-common -xorg-x11-server-devel -xorg-x11-server-utils -xorg-x11-server-Xwayland -xorg-x11-util-macros -xorg-x11-xauth -xorg-x11-xinit -xorg-x11-xkb-utils -xprop -xvidcore -xxhash-libs -xz -xz-devel -xz-libs -yajl -yelp-tools -yelp-xsl -yum -zenity -zimg -zip -zlib -zlib-devel -zstd -zstd-devel -zvbi -openEuler-repos diff --git a/scripts/raspberrypi/config-common/rpmlist-gnome b/scripts/raspberrypi/config-common/rpmlist-gnome deleted file mode 100644 index 629db7c..0000000 --- a/scripts/raspberrypi/config-common/rpmlist-gnome +++ /dev/null @@ -1,192 +0,0 @@ -dnf -alsa-utils -haveged -wpa_supplicant -vim -net-tools -iproute -iputils -NetworkManager -NetworkManager-wifi -NetworkManager-wwan -NetworkManager-bluetooth -NetworkManager-ovs -NetworkManager-ppp -openssh-server -openssh-clients -passwd -hostname -bluez -pulseaudio-module-bluetooth -parted -sudo -firefox -bc -systemd-timesyncd -dejavu-fonts -liberation-fonts -gnu-*-fonts -google-*-fonts -xorg-x11-apps -xorg-x11-drivers -xorg-x11-drv-ati -xorg-x11-drv-dummy -xorg-x11-drv-evdev -xorg-x11-drv-fbdev -xorg-x11-drv-intel -xorg-x11-drv-libinput -xorg-x11-drv-nouveau -xorg-x11-drv-qxl -xorg-x11-drv-synaptics-legacy -xorg-x11-drv-v4l -xorg-x11-drv-vesa -xorg-x11-drv-vmware -xorg-x11-drv-wacom -xorg-x11-fonts -xorg-x11-fonts-others -xorg-x11-font-utils -xorg-x11-server -xorg-x11-server-utils -xorg-x11-server-Xephyr -xorg-x11-server-Xspice -xorg-x11-util-macros -xorg-x11-utils -xorg-x11-xauth -xorg-x11-xbitmaps -xorg-x11-xinit -xorg-x11-xkb-utils -adwaita-icon-theme -atk -atkmm -at-spi2-atk -at-spi2-core -baobab -abattis-cantarell-fonts -cheese -clutter -clutter-gst3 -clutter-gtk -cogl -dconf -dconf-editor -devhelp -eog -epiphany -evince -evolution-data-server -file-roller -folks -gcab -gcr -gdk-pixbuf2 -gdm -gedit -geocode-glib -gfbgraph -gjs -glib2 -glibmm24 -glib-networking -gmime30 -gnome-autoar -gnome-backgrounds -gnome-bluetooth -gnome-boxes -gnome-builder -gnome-calculator -gnome-calendar -gnome-characters -gnome-clocks -gnome-color-manager -gnome-contacts -gnome-control-center -gnome-desktop3 -gnome-disk-utility -gnome-font-viewer -gnome-getting-started-docs -gnome-initial-setup -gnome-keyring -gnome-logs -gnome-menus -gnome-music -gnome-online-accounts -gnome-online-miners -gnome-photos -gnome-remote-desktop -gnome-screenshot -gnome-session -gnome-settings-daemon -gnome-shell -gnome-shell-extensions -gnome-software -gnome-system-monitor -gnome-terminal -gnome-tour -gnome-user-docs -gnome-user-share -gnome-video-effects -gnome-weather -gobject-introspection -gom -grilo -grilo-plugins -gsettings-desktop-schemas -gsound -gspell -gssdp -gtk3 -gtk4 -gtk-doc -gtkmm30 -gtksourceview4 -gtk-vnc2 -gupnp -gupnp-av -gupnp-dlna -gvfs -json-glib -libchamplain -libdazzle -libgdata -libgee -libgnomekbd -libgsf -libgtop2 -libgweather -libgxps -libhandy -libmediaart -libnma -libnotify -libpeas -librsvg2 -libsecret -libsigc++20 -libsoup -mm-common -mutter -nautilus -orca -pango -pangomm -libphodav -python3-pyatspi -python3-gobject -rest -rygel -simple-scan -sushi -sysprof -tepl -totem -totem-pl-parser -tracker3 -tracker3-miners -vala -vte291 -yelp -yelp-tools -yelp-xsl -zenity -ibus-libpinyin -openEuler-repos diff --git a/scripts/raspberrypi/config-common/rpmlist-ukui b/scripts/raspberrypi/config-common/rpmlist-ukui deleted file mode 100644 index fdef59e..0000000 --- a/scripts/raspberrypi/config-common/rpmlist-ukui +++ /dev/null @@ -1,27 +0,0 @@ -dnf -alsa-utils -haveged -wpa_supplicant -vim -net-tools -iproute -iputils -NetworkManager -NetworkManager-wifi -NetworkManager-wwan -NetworkManager-bluetooth -NetworkManager-ovs -NetworkManager-ppp -openssh-server -openssh-clients -passwd -hostname -bluez -pulseaudio-module-bluetooth -parted -sudo -ukui -firefox -bc -systemd-timesyncd -openEuler-repos diff --git a/scripts/raspberrypi/config-common/rpmlist-xfce b/scripts/raspberrypi/config-common/rpmlist-xfce deleted file mode 100644 index 3a5836d..0000000 --- a/scripts/raspberrypi/config-common/rpmlist-xfce +++ /dev/null @@ -1,43 +0,0 @@ -dnf -alsa-utils -haveged -wpa_supplicant -vim -net-tools -iproute -iputils -NetworkManager -NetworkManager-wifi -NetworkManager-wwan -NetworkManager-bluetooth -NetworkManager-ovs -NetworkManager-ppp -openssh-server -openssh-clients -passwd -hostname -bluez -pulseaudio-module-bluetooth -parted -sudo -dejavu-fonts -liberation-fonts -gnu-*-fonts -google-*-fonts -xorg-* -xfwm4 -xfdesktop -xfce4-* -xfce4-*-plugin -network-manager-applet -fcitx -fcitx-qt5 -fcitx-cloudpinyin -fcitx-sunpinyin -fcitx-configtool -lightdm -lightdm-gtk -firefox -bc -systemd-timesyncd -openEuler-repos diff --git a/scripts/raspberrypi/config/Dockerfile_makeraspi b/scripts/raspberrypi/config/Dockerfile_makeraspi deleted file mode 100644 index 0ba1932..0000000 --- a/scripts/raspberrypi/config/Dockerfile_makeraspi +++ /dev/null @@ -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.sh"] - diff --git a/scripts/rockchip/build-image-docker.sh b/scripts/rockchip/build-image-docker.sh deleted file mode 100755 index d91dc3b..0000000 --- a/scripts/rockchip/build-image-docker.sh +++ /dev/null @@ -1,148 +0,0 @@ -#!/bin/bash - -set -e - -__usage=" -Usage: build-image-docker [OPTIONS] -Build board image. - -Options: - --board BOARD_CONFIG Required! The config of target board in the boards folder. - -d, --docker DOCKER_FILE The URL/path of the Docker image, which defaults to https://repo.openeuler.org/openEuler-20.03-LTS-SP1/docker_img/aarch64/openEuler-docker.aarch64.tar.xz - -n, --name IMAGE_NAME The board 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-22.03-LTS-SP3. - -c, --config KERNEL_DEFCONFIG The name/path of defconfig file when compiling kernel, which defaults to openeuler_rockchip_defconfig. - -r, --repo REPO_INFO Required! The URL/path of target repo file or list of repo's baseurls which should be a space separated list. - -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() -{ - echo "$__usage" - exit $1 -} - -parseargs() -{ - if [ "x$#" == "x0" ]; then - return 0 - fi - - while [ "x$#" != "x0" ]; - do - if [ "x$1" == "x-h" -o "x$1" == "x--help" ]; then - return 1 - elif [ "x$1" == "x" ]; then - shift - elif [ "x$1" == "x--board" ]; then - board=`echo $2` - shift - shift - elif [ "x$1" == "x-d" -o "x$1" == "x--docker" ]; then - docker_file=`echo $2` - shift - shift - elif [ "x$1" == "x-n" -o "x$1" == "x--name" ]; then - name=`echo $2` - shift - shift - elif [ "x$1" == "x-k" -o "x$1" == "x--kernel" ]; then - kernel_url=`echo $2` - shift - shift - elif [ "x$1" == "x-b" -o "x$1" == "x--branch" ]; then - 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-r" -o "x$1" == "x--repo" ]; then - repo_file=`echo $2` - shift - shift - elif [ "x$1" == "x-s" -o "x$1" == "x--spec" ]; then - 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 - fi - done -} - -ERROR(){ - echo `date` - ERROR, $* | tee -a ${log_dir}/${builddate}.log -} - -LOG(){ - echo `date` - INFO, $* | tee -a ${log_dir}/${builddate}.log -} - -cur_dir=$(cd $(dirname $0);pwd) - -docker_file="https://repo.openeuler.org/openEuler-22.03-LTS-SP3/docker_img/aarch64/openEuler-docker.aarch64.tar.xz" - -workdir=${cur_dir}/build - -buildid=$(date +%Y%m%d%H%M%S) -builddate=${buildid:0:8} - -make_cores=$(nproc) -log_dir=${workdir}/log -if [ ! -d ${log_dir} ];then mkdir -p ${log_dir}; fi - -parseargs "$@" || help $? - -if [ "x${docker_file:0:4}" == "xhttp" ]; then - wget ${docker_file} -P ${workdir}/ -elif [ -f $docker_file ]; then - cp ${docker_file} ${workdir}/ -else - echo `date` - ERROR, docker file $docker_file can not be found. - exit 2 -fi - -if [ "x$repo_file" == "x" ] ; then - echo `date` - ERROR, \"-r REPO_INFO or --repo REPO_INFO\" missing. - help 2 -fi - -docker_file_name=${docker_file##*/} -docker_img_name=`docker load --input ${workdir}/${docker_file_name}` -docker_img_name=${docker_img_name##*: } - -LOG build board image with docker: ${docker_file}. - -(echo "FROM $docker_img_name" && grep -v FROM ${cur_dir}/configs/Dockerfile) | \ - docker build -t ${docker_img_name}-${buildid} \ - --build-arg board=${board} \ - --build-arg docker_file=${docker_file} \ - --build-arg name=${name} \ - --build-arg kernel_url=${kernel_url} \ - --build-arg branch=${branch} \ - --build-arg default_defconfig=${default_defconfig} \ - --build-arg repo_file=${repo_file} \ - --build-arg spec_param=${spec_param} \ - --build-arg make_cores=${make_cores} \ - --no-cache -f- ${cur_dir}/configs - -echo docker run --rm --privileged=true \ - -v ${cur_dir}:/work \ - ${docker_img_name}-${buildid} -docker run --rm --privileged=true \ - -v ${cur_dir}:/work \ - ${docker_img_name}-${buildid} -chmod -R a+r ${workdir} -docker image rm ${docker_img_name}-${buildid} -LOG -LOG Done. diff --git a/scripts/rockchip/build.sh b/scripts/rockchip/build.sh deleted file mode 100755 index 41d7655..0000000 --- a/scripts/rockchip/build.sh +++ /dev/null @@ -1,202 +0,0 @@ -#!/bin/bash - -__usage=" -Usage: build [OPTIONS] -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: - --board BOARD_CONFIG Required! The config of target board in the boards folder, which defaults to firefly-rk3399. - -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. - -r, --repo REPO_INFO The URL/path of target repo file or list of repo's baseurls which should be a space separated list. - -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() -{ - echo "$__usage" - exit $1 -} - -used_param() { - echo "" - echo "Default args" - echo "KERNEL_DEFCONFIG : $default_defconfig" - echo "" - echo "TARGET_BOARD : $board" - echo "" - echo "KERNEL_BRANCH : $branch" - echo "" -} - -default_param() { - default_defconfig=openeuler_rockchip_defconfig - board=firefly-rk3399 - ubootconfig=firefly-rk3399_defconfig - dtb_name=rk3399-firefly - platform=rockchip - 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=$cur_dir/build - name=${branch}-${board}-aarch64-alpha1 - make_cores=$(nproc) -} - -save_param() { - if [ -f $workdir/.param_last ]; then - rm $workdir/.param_last - fi - if [ -f $workdir/.param ]; then - mv $workdir/.param $workdir/.param_last - fi - echo "board=$board -default_defconfig=$default_defconfig -ubootconfig=$ubootconfig -dtb_name=$dtb_name -platform=$platform -branch=$branch -repo_file=$repo_file -kernel_url=$kernel_url -spec_param=$spec_param" > $workdir/.param -} - -oe_deppkg_install() { - dnf makecache - dnf install git wget make gcc bison dtc m4 flex bc openssl-devel tar dosfstools rsync parted dnf-plugins-core tar kpartx diffutils dracut uboot-tools -y -} - -parseargs() -{ - if [ "x$#" == "x0" ]; then - return 0 - fi - - while [ "x$#" != "x0" ]; - do - if [ "x$1" == "x-h" -o "x$1" == "x--help" ]; then - return 1 - elif [ "x$1" == "x" ]; then - shift - elif [ "x$1" == "x--board" ]; then - board=`echo $2` - shift - shift - elif [ "x$1" == "x-n" -o "x$1" == "x--name" ]; then - name=`echo $2` - shift - shift - elif [ "x$1" == "x-k" -o "x$1" == "x--kernel" ]; then - kernel_url=`echo $2` - shift - shift - elif [ "x$1" == "x-b" -o "x$1" == "x--branch" ]; then - 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-r" -o "x$1" == "x--repo" ]; then - repo_file=`echo $2` - shift - shift - elif [ "x$1" == "x-s" -o "x$1" == "x--spec" ]; then - 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 - fi - done -} - -buildid=$(date +%Y%m%d%H%M%S) -builddate=${buildid:0:8} - -ERROR(){ - echo `date` - ERROR, $* | tee -a ${log_dir}/${builddate}.log -} - -LOG(){ - echo `date` - INFO, $* | tee -a ${log_dir}/${builddate}.log -} - -cur_dir=$(cd $(dirname $0);pwd) - -default_param -parseargs "$@" || help $? - -source ${cur_dir}/boards/${board}.conf - -LOG "Selected board: ${board}." - -LOG "Board config: ${board}." -LOG "U-Boot config: ${ubootconfig}." -LOG "DeviceTree name: ${dtb_name}." -LOG "Target platform: ${platform}." - -used_param -if [ ! -d $workdir ]; then - mkdir $workdir -fi - -# Firefly Toolchain Repo -aarch64_toolchain_bin_repo="https://gitlab.com/firefly-linux/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.git" - -host_arch=$(arch) - -save_param -log_dir=${workdir}/log -if [ ! -d ${log_dir} ];then mkdir -p ${log_dir}; fi -if [ -f $workdir/.done ];then - LOG "Checking the previous build." - if [[ $(cat $workdir/.done | grep u-boot) == "u-boot" && \ - $(cat $workdir/.done | grep bootimg) == "bootimg" && \ - $(cat $workdir/.done | grep rootfs) == "rootfs" && \ - $(cat $workdir/.done | grep image) == "image" ]];then - LOG "Found complete build, clean build flag." - rm $workdir/.done - touch $workdir/.done - fi -else - oe_deppkg_install - if [[ "${host_arch}" == "x86_64" && "${arch}" == "arm64" ]];then - LOG "Cloning linux arm64 cross compile toolchain for x86_64..." - if [ -d ${workdir}/aarch64-toolchain ];then rm -rf ${workdir}/aarch64-toolchain; fi - git clone --depth=1 ${aarch64_toolchain_bin_repo} ${workdir}/aarch64-toolchain - else - LOG "You are running this script on a ${host_arch} mechine, progress...." - fi - touch $workdir/.done -fi - -if [[ $(cat $workdir/.done | grep u-boot) != "u-boot" ]];then - bash ${cur_dir}/build_u-boot.sh -fi - -if [[ $(cat $workdir/.done | grep bootimg) != "bootimg" ]];then - bash ${cur_dir}/build_boot.sh -fi - -if [[ $(cat $workdir/.done | grep rootfs) != "rootfs" ]];then - if [[ "${host_arch}" == "x86_64" && "${arch}" == "arm64" ]];then - LOG "You are running this script on a ${host_arch} mechine, installing qemu-user-static...." - sudo rpm -ivh ${cur_dir}/bin/qemu-user-static-aarch64-x86_64.rpm - fi - LOG "You are running this script on a ${host_arch} mechine, start building rootfs...." - bash ${cur_dir}/build_rootfs.sh -fi - -bash ${cur_dir}/gen_image.sh -n ${name} --board ${board} diff --git a/scripts/rockchip/build_boot.sh b/scripts/rockchip/build_boot.sh deleted file mode 100755 index ab96139..0000000 --- a/scripts/rockchip/build_boot.sh +++ /dev/null @@ -1,313 +0,0 @@ -#!/bin/bash - -__usage=" -Usage: build_boot [OPTIONS] -Build openEuler SBCs boot image. -The target boot.img will be generated in the build folder of the directory where the build_boot.sh script is located. - -Options: - --board BOARD_CONFIG Required! The config of target board in the boards folder, which defaults to firefly-rk3399. - -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. - --cores N The number of cpu cores to be used during making. - -h, --help Show command help. -" - -help() -{ - echo "$__usage" - exit $1 -} - -default_param() { - workdir=$cur_dir/build - branch=openEuler-20.03-LTS - default_defconfig=openeuler_rockchip_defconfig - board=firefly-rk3399 - 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(){ - if [ -f $workdir/.param ]; then - branch=$(cat $workdir/.param | grep branch) - branch=${branch:7} - - default_defconfig=$(cat $workdir/.param | grep default_defconfig) - default_defconfig=${default_defconfig:18} - - board=$(cat $workdir/.param | grep board) - board=${board:6} - - kernel_url=$(cat $workdir/.param | grep kernel_url) - kernel_url=${kernel_url:11} - fi -} - -parseargs() -{ - if [ "x$#" == "x0" ]; then - return 0 - fi - - while [ "x$#" != "x0" ]; - do - if [ "x$1" == "x-h" -o "x$1" == "x--help" ]; then - return 1 - elif [ "x$1" == "x" ]; then - shift - elif [ "x$1" == "x--board" ]; then - board=`echo $2` - shift - shift - elif [ "x$1" == "x-b" -o "x$1" == "x--branch" ]; then - 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-k" -o "x$1" == "x--kernel" ]; then - kernel_url=`echo $2` - shift - shift - elif [ "x$1" == "x--cores" ]; then - make_cores=`echo $2` - shift - shift - else - echo `date` - ERROR, UNKNOWN params "$@" - return 2 - fi - done -} - -buildid=$(date +%Y%m%d%H%M%S) -builddate=${buildid:0:8} - -ERROR(){ - echo `date` - ERROR, $* | tee -a ${log_dir}/${builddate}.log -} - -LOG(){ - echo `date` - INFO, $* | tee -a ${log_dir}/${builddate}.log -} - -LOSETUP_D_IMG(){ - set +e - if [ -d $workdir/boot_emmc ]; then - if grep -q "$workdir/boot_emmc " /proc/mounts ; then - umount $workdir/boot_emmc - fi - fi - if [ -d $workdir/boot_emmc ]; then - rm -rf $workdir/boot_emmc - fi - set -e -} - -clone_and_check_kernel_source() { - cd $workdir - if [ -d kernel ]; then - if [ -f $workdir/.param_last ]; then - 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} - - last_platform_name=$(cat $workdir/.param_last | grep platform) - last_platform_name=${last_dtb_name:9} - - last_kernel_url=$(cat $workdir/.param_last | grep kernel_url) - last_kernel_url=${last_kernel_url:11} - - cd $workdir/kernel - git remote -v update - lastest_kernel_version=$(git rev-parse @{u}) - local_kernel_version=$(git rev-parse @) - 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 - if [ -d $workdir/kernel ];then rm -rf $workdir/kernel; fi - if [ -d $workdir/boot ];then rm -rf $workdir/boot; fi - if [ -f $workdir/boot.img ];then rm $workdir/boot.img; fi - git clone --depth=1 -b $branch $kernel_url kernel - LOG "clone kernel source done." - fi - fi - else - git clone --depth=1 -b $branch $kernel_url kernel - LOG "clone kernel source done." - fi -} - -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 - - if [ ! -z "${cross_compile}" ]; then - export CROSS_COMPILE=${cross_compile} - 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() { - if [ ! -f $workdir/kernel/arch/arm64/boot/Image ]; then - ERROR "kernel Image can not be found!" - exit 2 - else - LOG "make kernel done." - fi - if [ -d $workdir/kernel/kernel-modules ];then rm -rf $workdir/kernel/kernel-modules; fi - if [ -d ${boot_dir} ];then rm -rf ${boot_dir}; fi - mkdir -p ${boot_dir} - mkdir -p $workdir/kernel/kernel-modules - cd $workdir/kernel - - if [ ! -z "${cross_compile}" ]; then - export CROSS_COMPILE=${cross_compile} - fi - make ARCH=arm64 install INSTALL_PATH=${boot_dir} - 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." -} - -mk_boot() { - LOG "start make bootimg..." - mkdir -p ${boot_dir}/extlinux - - LOG "start gen initrd..." - dracut --no-kernel ${boot_dir}/initrd.img - LOG "gen initrd done." - - dtb_name=$(ls $boot_dir | grep dtb) - LOG "gen extlinux config for $dtb_name" - if [ "${platform}" == "rockchip" ];then - bootargs=${rockchip_bootargs} - elif [ "${platform}" == "phytium" ];then - bootargs=${phytium_bootargs} - elif [ "${platform}" == "allwinner" ];then - bootargs=${allwinner_bootargs} - else - echo "Unsupported platform" - exit 2 - fi - echo "label openEuler - kernel /Image - initrd /initrd.img - fdt /${dtb_name} - append ${bootargs}" \ - > ${boot_dir}/extlinux/extlinux.conf - - LOG "gen extlinux config done." - - dd if=/dev/zero of=$workdir/boot.img bs=1M count=240 status=progress - mkfs.vfat -n boot $workdir/boot.img - if [ -d $workdir/boot_emmc ];then rm -rf $workdir/boot_emmc; fi - mkdir $workdir/boot_emmc - mount $workdir/boot.img $workdir/boot_emmc/ - cp -r ${boot_dir}/* $workdir/boot_emmc/ - umount $workdir/boot.img - rmdir $workdir/boot_emmc - - if [ -f $workdir/boot.img ]; then - LOG "make boot image done." - else - ERROR "make boot image failed!" - exit 2 - fi - - LOG "clean boot directory." - rm -rf ${boot_dir} -} - -kernel_defconfig="" -cur_dir=$(cd $(dirname $0);pwd) - -default_param -local_param -parseargs "$@" || help $? -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" -allwinner_bootargs="console=tty0 console=ttyS0,115200 rw root=UUID=614e0000-0000-4b53-8000-1d28000054a9 rootfstype=ext4 rootwait earlycon clk_gnore_unused" - -if [ ! -f $default_defconfig ] ; then - LOG "kernel defconfig is : ${default_defconfig}" - kernel_defconfig=$default_defconfig -elif [ -f $default_defconfig ]; then - LOG "use local kernel defconfig..." - cp $default_defconfig ${workdir}/ - kernel_defconfig=${workdir}/${default_defconfig##*/} -fi - -cross_compile="" -host_arch=$(arch) - -if [[ "${host_arch}" == "x86_64" && "${arch}" == "arm64" ]];then - LOG "You are running this script on a ${host_arch} mechine, use cross compile...." - cross_compile="${workdir}/aarch64-toolchain/bin/aarch64-none-linux-gnu-" -else - LOG "You are running this script on a ${host_arch} mechine, progress...." -fi - -if [ ! -d $workdir ]; then - mkdir $workdir -fi - -source $cur_dir/boards/${board}.conf - -if [ ! -d ${log_dir} ];then mkdir -p ${log_dir}; fi -if [ ! -f $workdir/.done ];then - touch $workdir/.done -fi -sed -i 's/bootimg//g' $workdir/.done -LOG "build boot..." -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 - make_kernel $workdir/kernel -fi -if [[ -f $workdir/boot.img && $(cat $workdir/.done | grep bootimg) == "bootimg" ]];then - LOG "boot is the latest" -else - trap 'LOSETUP_D_IMG' EXIT - LOSETUP_D_IMG - install_kernel - mk_boot -fi -LOG "The boot.img is generated in the ${workdir}." -echo "bootimg" >> $workdir/.done