openEuler 20.03 LTS面向RK3399移植系列(1)—内核和资源镜像的编译和制作

任务动机:openEuler 20.03 LTS面向RK3399移植

任务描述:

1. 安装编译环境

1.1 安装开发包

sudo apt-get install build-essential lzop libncurses5-dev libssl-dev

如果使用的是 64 位的 Ubuntu,还需要安装

sudo apt-get install libc6:i386

微信图片_20200719200404

1.2 安装mkbootimg工具

git clone https://github.com/neo-technologies/rockchip-mkbootimg.git
cd rockchip-mkbootimg
make && sudo make install

注:若没安装git 包,先输入sudo apt install git进行安装

注:若没安装git 包,先输入sudo apt install git进行安装

1.3 获取内核源码和安装交叉编译工具链

mkdir RK
cd RK

Firefly-RK3399 Linux 内核代码获取方式

git clone https://github.com/rockchip-linux/kernel/tree/develop-4.19

(下载不成功,可以下载压缩包,然后解压) 获取交叉编译工具

git clone https://TeeFirefly@gitlab.com/TeeFirefly/prebuilts.git

注:内核与编译工具应放在同一目录下

1.4 编译内核

Linux 内核采用的config 文件为rk3399pro_npu_defconfig, dts 文件为rk3399-firefly-linux.dts config 文件在~/linux-kernel/arch/arm64/configs/firefly_linux_defconfig,对应生成kernel.img 文件 dts 文件在~/ linux-kernel/arch/arm64/boot/dts/rockchip/rk3399-firefly-linux.dts,对应生成resource.img 文件 

make ARCH=arm64 rk3399pro_npu_defconfig

1596853666766

问题1:出现错误,提示没有装python

解决方法:安装python

sudo apt-get install python然后再次执行make ARCH=arm64 rk3399-firefly-linux.img

1596852755113

问题2:出现错误 lz4c:not found

解决方法:安装liblz4-tool

sudo apt-get install liblz4-tool

1596852872909

make ARCH=arm64 rk3399-firefly-linux.img

内核编译供成功,见下图

1596853036615

1.5 生成img镜像文件

1596853810090

1.6 警告信息

1596853789114

2. 内核移植

2.1 内核下载

https://gitee.com/openeuler/kernel/tree/4.19.90-2005.2.0/

2.2 文件拷贝

(1)将Rk-4.19内核源码的rk3399pro_npu_defconfig文件copy进openeuler内核的~/arch/arm64/configs文件夹中

(2)将Rk-4.19内核源码的~/arch/arm64/Makefile文件替换openeuler内核的~/arch/arm64/Makefile

(3)替换arm64/boot/dts目录下的:rockchip

(4)在根目录下增加RK-4.19中多余的单个文档与图片。

2.3 依赖安装

sudo apt-get install build-essential gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu bc libssl-dev -y

微信图片_20200719200451

2.4 变量配置

export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-

微信图片_20200719200447

2.5 编译

make ARCH=arm64 rk3399pro_npu_defconfig
make ARCH=arm64 rk3399-firefly-linux.img

1596968797904

报错:scripts缺少文件; 替换RK-4.9的scripts文件夹到openeuler中。

继续编译

make ARCH=arm64 rk3399-firefly-linux.img

报错:dt-bindings文件夹的文件找不到,替换RK-4.9的dt-bindings文件夹到openeuler中。

1596968746592

make ARCH=arm64 rk3399-firefly-linux.img

1596854442226

内核和资源镜像生成成功,见下图kernel.img和resources.img

1596854477283

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值