22 KiB
树莓派
本文档提供 树莓派、Rockchip的 openEuler 镜像的构建脚本和相关文档。
文件说明
- 建议直接使用本文档 最新镜像 章节中给出的 openEuler 的树莓派镜像。
- 如需根据自身需求定制镜像,可参考 openEuler 镜像的构建 和 交叉编译内核。
- 树莓派: 使用文档
- 刷写镜像
- 树莓派使用
- openEuler 镜像的构建
- 交叉编译内核
- QEMU 启动树莓派
- openEuler 20.03 LTS SP2 更新日志
- openEuler 20.03 LTS SP2 内测版(UKUI 桌面、中文输入法)更新日志
- openEuler 20.03 LTS SP2 内测版(DDE 桌面、中文输入法)更新日志
- openEuler 20.03 LTS SP2 内测版(Xfce 桌面、中文输入法)更新日志
- openEuler 21.09 更新日志
- openEuler 21.09 内测版(UKUI 桌面、中文输入法)更新日志
- openEuler 21.09 内测版(DDE 桌面、中文输入法)更新日志
- openEuler 21.09 内测版(Xfce 桌面、中文输入法)更新日志
- openEuler 21.09 内测版(LXDE 桌面、中文输入法)更新日志
- scripts: 构建 openEuler 树莓派镜像的脚本
最新镜像
所有镜像。
其他信息:
使用镜像
镜像刷写 SD 卡并使用树莓派,详见以下文档:
镜像构建
准备环境
本仓库的脚本运行环境要求如下:
- 操作系统:openEuler、CentOS 7、CentOS 8
- 架构:AArch64,如树莓派
其他架构可以使用 QEMU 模拟器搭建 AArch64 运行环境。
构建镜像
详细过程参见 openEuler 镜像的构建。
构建脚本见 scripts/raspberrypi。
快速构建(无需编译内核,推荐)
须知:
当前支持多个 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 版本。 如果构建包含 Xfce/UKUI/DDE 桌面环境的镜像,需要注意三点:
- 构建包含 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 版本。
- 构建包含 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 版本。
- 根据需要设置 -s/--spec,其具体意义见该参数的介绍部分。
使用已有的树莓派内核、固件、蓝牙等 RPM 包构建镜像。
构建镜像需执行命令:
sudo bash build-image.sh -d DIR -r REPO -n IMAGE_NAME -s SPEC
各个参数意义:
-
-d, --dir DIR
构建镜像和临时文件的输出目录,默认为脚本所在目录。如果
DIR不存在则会自动创建。脚本运行结束后,会提示镜像的存储位置,默认保存在
DIR/raspi_output/img/下。 -
-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 版本的镜像,该文件内容参考 https://gitee.com/src-openeuler/openEuler-repos/blob/openEuler-21.03/generic.repo。
- 资源库的 baseurl 列表,如
"http://repo.openeuler.org/openEuler-21.03/OS/aarch64/ http://repo.openeuler.org/openEuler-21.03/EPOL/aarch64/"。
- 开发源 repo 文件的 URL,如
-
-n, --name IMAGE_NAME
构建的镜像名称。
例如,
openEuler-21.03.img。默认为openEuler-raspi-aarch64.img,或者根据-n, --name IMAGE_NAME参数自动生成。 -
-s, --spec SPEC
构建的镜像版本:
headless,无图形界面版的镜像。xfce,带 Xfce 桌面以及中文字体、输入法等全部配套软件。ukui,带 UKUI 桌面及必要的配套软件(不包括中文字体以及输入法)。dde,带 DDE 桌面及必要的配套软件(不包括中文字体以及输入法)。- rpmlist 文件路径,其中包含镜像中要安装的软件列表,内容参考 rpmlist。
默认使用
headless选项。 -
-h, --help
显示帮助信息。
完全构建(包括编译内核)
包含编译内核、下载树莓派相关固件等过程,速度相对较慢。
这里,提供两种构建方式。
须知:
当前支持三个 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 版本。 如果构建包含 Xfce/UKUI/DDE 桌面环境的镜像,需要注意四点:
- 构建包含 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 21.03:需要选择 openEuler 内核 的 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 内核 的 openEuler-20.03-LTS 分支,即将参数
-k/--kernel设置为git@gitee.com:openeuler/raspberrypi-kernel.git,-b/--branch设置为openEuler-20.03-LTS。- openEuler 21.09:需要选择 openEuler-RaspberryPi 内核 的 openEuler-21.09 分支,即将参数
-k/--kernel设置为git@gitee.com:openeuler/raspberrypi-kernel.git,-b/--branch设置为openEuler-21.09。- openEuler 22.03 LTS:需要选择 openEuler-RaspberryPi 内核 的 openEuler-22.03-LTS 分支,即将参数
-k/--kernel设置为git@gitee.com:openeuler/raspberrypi-kernel.git,-b/--branch设置为openEuler-22.03-LTS。- openEuler 22.09:需要选择 openEuler-RaspberryPi 内核 的 openEuler-22.09 分支,即将参数
-k/--kernel设置为git@gitee.com:openeuler/raspberrypi-kernel.git,-b/--branch设置为openEuler-22.09。- openEuler 22.03 LTS SP1:需要选择 openEuler-RaspberryPi 内核 的 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 内核 的 openEuler-23.03 分支,即将参数
-k/--kernel设置为git@gitee.com:openeuler/raspberrypi-kernel.git,-b/--branch设置为openEuler-23.03。- openEuler 22.03 LTS SP2:需要选择 openEuler-RaspberryPi 内核 的 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 内核 的 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 内核 的 OLK-6.6 分支,即将参数
-k/--kernel设置为git@gitee.com:openeuler/raspberrypi-kernel.git,-b/--branch设置为OLK-6.6。- 构建包含 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 版本,需要选择对应内核源码和分支。
- openEuler 20.09:需要选择 openEuler-RaspberryPi 内核 的 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 内核 的 openEuler-20.03-LTS 分支,即将参数
-k/--kernel设置为git@gitee.com:openeuler/raspberrypi-kernel.git,-b/--branch设置为openEuler-20.03-LTS。- openEuler 21.03:需要选择 openEuler 内核 的 openEuler-21.03 分支,即将参数
-k/--kernel设置为git@gitee.com:openeuler/kernel.git,-b/--branch设置为openEuler-21.03`。- openEuler 21.09:需要选择 openEuler-RaspberryPi 内核 的 openEuler-21.09 分支,即将参数
-k/--kernel设置为git@gitee.com:openeuler/raspberrypi-kernel.git,-b/--branch设置为openEuler-21.09。- openEuler 22.03 LTS:需要选择 openEuler-RaspberryPi 内核 的 openEuler-22.03-LTS 分支,即将参数
-k/--kernel设置为git@gitee.com:openeuler/raspberrypi-kernel.git,-b/--branch设置为openEuler-22.03-LTS。- openEuler 22.09:需要选择 openEuler-RaspberryPi 内核 的 openEuler-22.09 分支,即将参数
-k/--kernel设置为git@gitee.com:openeuler/raspberrypi-kernel.git,-b/--branch设置为openEuler-22.09。- openEuler 22.03 LTS SP1:需要选择 openEuler-RaspberryPi 内核 的 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 内核 的 openEuler-23.03 分支,即将参数
-k/--kernel设置为git@gitee.com:openeuler/raspberrypi-kernel.git,-b/--branch设置为openEuler-23.03。- openEuler 22.03 LTS SP2:需要选择 openEuler-RaspberryPi 内核 的 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 内核 的 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 内核 的 OLK-6.6 分支,即将参数
-k/--kernel设置为git@gitee.com:openeuler/raspberrypi-kernel.git,-b/--branch设置为OLK-6.6。- 构建包含 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 版本。
- openEuler 20.03 LTS SP1/20.03 LTS SP2/20.03 LTS SP3:需要选择 openEuler-RaspberryPi 内核 的 openEuler-20.03-LTS 分支,即将参数
-k/--kernel设置为git@gitee.com:openeuler/raspberrypi-kernel.git,-b/--branch设置为openEuler-20.03-LTS。- openEuler 21.03:需要选择 openEuler 内核 的 openEuler-21.03 分支,即将参数
-k/--kernel设置为git@gitee.com:openeuler/kernel.git,-b/--branch设置为openEuler-21.03`。- openEuler 21.09:需要选择 openEuler-RaspberryPi 内核 的 openEuler-21.09 分支,即将参数
-k/--kernel设置为git@gitee.com:openeuler/raspberrypi-kernel.git,-b/--branch设置为openEuler-21.09。- openEuler 22.03 LTS:需要选择 openEuler-RaspberryPi 内核 的 openEuler-22.03-LTS 分支,即将参数
-k/--kernel设置为git@gitee.com:openeuler/raspberrypi-kernel.git,-b/--branch设置为openEuler-22.03-LTS。- openEuler 22.09:需要选择 openEuler-RaspberryPi 内核 的 openEuler-22.09 分支,即将参数
-k/--kernel设置为git@gitee.com:openeuler/raspberrypi-kernel.git,-b/--branch设置为openEuler-22.09。- openEuler 22.03 LTS SP1:需要选择 openEuler-RaspberryPi 内核 的 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 内核 的 openEuler-23.03 分支,即将参数
-k/--kernel设置为git@gitee.com:openeuler/raspberrypi-kernel.git,-b/--branch设置为openEuler-23.03。- openEuler 22.03 LTS SP2:需要选择 openEuler-RaspberryPi 内核 的 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 内核 的 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 内核 的 OLK-6.6 分支,即将参数
-k/--kernel设置为git@gitee.com:openeuler/raspberrypi-kernel.git,-b/--branch设置为OLK-6.6。- 根据需要设置 -s/--spec,其具体意义见该参数的介绍部分。
主机上构建
构建镜像需执行命令:
sudo bash build-image-common.sh -n IMAGE_NAME -k KERNEL_URL -b KERNEL_BRANCH -c KERNEL_DEFCONFIG -r REPO -s SPEC --cores N
脚本运行结束后,会提示镜像的存储位置,镜像默认保存在脚本运行所在目录的 raspi_output_common/img/ 下。
各个参数意义:
-
-n, --name IMAGE_NAME
构建的镜像名称。
例如,
openEuler-20.03-LTS-SP1.img。默认为openEuler-raspi-aarch64.img,或者根据-n, --name IMAGE_NAME参数自动生成。 -
-k, --kernel KERNEL_URL
内核源码仓库的项目地址,默认为
https://gitee.com/openeuler/raspberrypi-kernel.git。可根据需要设置为git@gitee.com:openeuler/raspberrypi-kernel.git或git@gitee.com:openeuler/kernel.git。 -
-b, --branch KERNEL_BRANCH
内核源码的对应分支,默认为
openEuler-20.03-LTS,推荐使用分支openEuler-21.09、openEuler-20.03-LTS或openEuler-20.09。 -
-c, --config KERNEL_DEFCONFIG
内核编译使用的配置文件名称或路径,默认为
openeuler-raspi_defconfig。如果该参数为配置文件名称,请确保该文件在内核源码的目录 arch/arm64/configs 下。 -
-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 版本的镜像,该文件内容参考 https://gitee.com/src-openeuler/openEuler-repos/blob/openEuler-20.03-LTS-SP1/generic.repo。
- 资源库的 baseurl 列表,如
"http://repo.openeuler.org/openEuler-20.03-LTS-SP1/OS/aarch64/ http://repo.openeuler.org/openEuler-20.03-LTS-SP1/EPOL/aarch64/"。
- 开发源 repo 文件的 URL,如
-
-s, --spec SPEC
构建的镜像版本:
headless,无图形界面版的镜像。xfce,带 Xfce 桌面以及中文字体、输入法等全部配套软件。ukui,带 UKUI 桌面及必要的配套软件(不包括中文字体以及输入法)。dde,带 DDE 桌面及必要的配套软件(不包括中文字体以及输入法)。- rpmlist 文件路径,该文件包含镜像中要安装的软件列表,内容参考 rpmlist。
默认使用
headless选项。 -
--cores N
并行编译的数量,根据运行脚本的宿主机 CPU 实际数目设定,默认为可用的 CPU 总数。
Docker 容器内构建
构建镜像需执行命令:
sudo bash build-image-docker.sh -d DOCKER_FILE -n IMAGE_NAME -k KERNEL_URL -b KERNEL_BRANCH -c KERNEL_DEFCONFIG -r REPO --cores N
脚本运行结束后,镜像默认保存在脚本运行所在目录的 raspi_output_common/img/ 下。
注意!!!运行该脚本前,需安装 Docker 运行环境。该脚本会自动将 DOCKER_FILE 参数对应的 Docker 镜像导入本机系统中。
除参数 DOCKER_FILE 外,剩余参数与主机上构建中对应参数一致:
-
-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 镜像,并导入本机系统中。