说明:
如需根据自身需求定制内核,可参考本文档。
目前 openEuler 树莓派版本只支持 AArch64 架构。
编译内核时,除了使用 AArch64 架构的运行环境,也可以采用交叉编译的方式。这里,我们以 ubuntu16.04 x86_64 的服务器上编译内核为例,介绍交叉编译的过程。
apt-get install build-essential gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu bc libssl-dev -y
操作目录:${WORKDIR}
根据内核不同版本,需要下载不同仓库的不同分支:
6.6 内核
git clone git@gitee.com:openeuler/raspberrypi-kernel.git -b OLK-6.6 && cd raspberrypi-kernel
6.1 内核
git clone git@gitee.com:openeuler/raspberrypi-kernel.git -b openEuler-23.03 && cd raspberrypi-kernel
5.10 内核
git clone git@gitee.com:openeuler/raspberrypi-kernel.git -b OLK-5.10 && cd raspberrypi-kernel
git clone git@gitee.com:openeuler/raspberrypi-kernel.git -b OLK-5.10 && cd raspberrypi-kernel
git clone git@gitee.com:openeuler/raspberrypi-kernel.git -b openEuler-22.03-LTS-SP2 && cd raspberrypi-kernel
git clone git@gitee.com:openeuler/raspberrypi-kernel.git -b openEuler-22.03-LTS-SP1 && cd raspberrypi-kernel
git clone git@gitee.com:openeuler/raspberrypi-kernel.git -b openEuler-22.09 && cd raspberrypi-kernel
git clone git@gitee.com:openeuler/raspberrypi-kernel.git -b openEuler-22.03-LTS && cd raspberrypi-kernel
git clone git@gitee.com:openeuler/raspberrypi-kernel.git -b openEuler-21.09 && cd raspberrypi-kernel
git clone git@gitee.com:openeuler/kernel.git -b openEuler-21.03 && cd kernel
4.19 内核
git clone git@gitee.com:openeuler/raspberrypi-kernel.git -b openEuler-20.03-LTS && cd raspberrypi-kernel
git clone git@gitee.com:openeuler/raspberrypi-kernel.git -b openEuler-20.09 && cd raspberrypi-kernel
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
根据内核不同版本,需要载入不同的默认配置:
6.6 内核
make bcm2711_defconfig
6.1 内核
make bcm2711_defconfig
5.10 内核
make bcm2711_defconfig
make bcm2711_defconfig
make bcm2711_defconfig
make bcm2711_defconfig
make bcm2711_defconfig
make bcm2711_defconfig
make bcm2711_defconfig
make bcm2711_defconfig
4.19 内核
make openeuler-raspi_defconfig
make openeuler-raspi_defconfig
对应的 defconfig 文件在 ./arch/arm64/configs 下。
make -j9
mkdir ${WORKDIR}/ouput
make INSTALL_MOD_PATH=${WORKDIR}/output/ modules_install
在 ${WORKDIR}/output 文件夹下会生成 lib 文件夹。
内核
cp ${WORKDIR}/raspberrypi-kernel/arch/arm64/boot/Image ${WORKDIR}/output/
设备树文件等
cp ${WORKDIR}/raspberrypi-kernel/arch/arm64/boot/dts/broadcom/*.dtb ${WORKDIR}/output/
mkdir ${WORKDIR}/output/overlays
cp ${WORKDIR}/raspberrypi-kernel/arch/arm64/boot/dts/overlays/*.dtb* ${WORKDIR}/output/overlays/
至此,所有内核及内核模块相关内容都在 ${WORKDIR}/output 下了。
使用一个之前刷好 openEuler 树莓派镜像的 SD 卡,直接插到 Linux 主机上,SD 会默认挂载其 boot 分区和 根目录分区。这里其挂载路径分别表示为 ${boot} 和 ${rootfs},将上面编译好的内核放置到SD卡对应分区。
cp -r ${WORKDIR}/output/lib/modules ${rootfs}/lib/
cp ${WORKDIR}/output/Image ${boot}/kernel8.img
cp ${WORKDIR}/output/*.dtb ${boot}/
cp ${WORKDIR}/output/overlays/* ${boot}/overlays/
之后,参考 树莓派使用 使用该 SD 卡启用树莓派,验证功能:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。