OpenHarmony中Linux内核手动编译调试解读
2023-02-26 12:31:29 时间
https://harmonyos.51cto.com
一、OpenHarmony手动编译Linux内核
1.首次编译标准系统
./build.sh --product-name Hi3516DV300 --ccache
2.编译完成在编译的内核
在OpenHarmony-v3.1-Beta/out/KERNEL_OBJ/kernel/src_tmp/linux-5.10目录下
配置编译环境变量
export OHOS_ROOT=/home/weimin/OpenHarmony/OpenHarmony-v3.1-Beta
export PATH=$OHOS_ROOT/prebuilts/clang/ohos/linux-x86_64/llvm/bin:$PATH
export PATH=$OHOS_ROOT/prebuilts/gcc/linux-x86/arm/gcc-linaro-7.5.0-arm-linux-gnueabi/bin:$PATH
export MAKE_OPTIONS="ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- CC=clang HOSTCC=clang"
export PRODUCT_PATH=vendor/hisilicon/Hi3516DV300
编译内核
make ${MAKE_OPTIONS} menuconfig hi3516dv300_standard_defconfig
或者
make ${MAKE_OPTIONS} menuconfig hi3516dv300_small_defconfig
make ${MAKE_OPTIONS} uImage
编译完成在out/KERNEL_OBJ/kernel/src_tmp/linux-5.10/arch/arm/boot目录下生成uImage,zImage-dtb,zImage和Image等镜像文件。
二、手动打包ramdisk镜像
进入ramdisk的文件目录执行如下命令:
进入ramdisk的文件目录执行如下命令:
find . | cpio -c -o -v |gzip >../ramdisk.img
三、打包ramdisk.img和zImage-dtb生成boot.img
ohos.its文件内容如下:
/dts-v1/;
/ {
description = "U-Boot uImage source file for Hi3516DV300";
#address-cells = <1>;
images {
kernel@1 {
description = "Linux kernel for Hi3516DV300";
data = /incbin/("./zImage-dtb");
type = "kernel";
arch = "arm";
os = "linux";
compression = "none";
load = <0x82000000>;
entry = <0x82000000>;
};
ramdisk@1 {
description = "ohos Ramdisk Image";
data = /incbin/("./ramdisk.img");
type = "ramdisk";
arch = "arm";
os = "linux";
compression = "none";
load = <0x84000000>;
entry = <0x84000000>;
};
};
configurations {
default = "conf@boot";
conf@boot {
description = "booting ARM Linux Kernel Image";
kernel = "kernel@1";
ramdisk = "ramdisk@1";
};
};
};
data = /incbin/(“./zImage-dtb”);指定zImage文件的路径
data = /incbin/(“./ramdisk.img”); 指定ramdisk文件的路径
如果ohos.its没有修改,将ohos.its、ramdisk.img和zImage-dtb文件放入同一目录下,执行下面命令生成boot.img:
mkimage -f ohos.its boot.img
https://harmonyos.51cto.com
相关文章
- Claydo-Easy 3D Modelling for Mac(简单的3D建模软件) v1.8激活版
- 如何设计一个短链服务?
- 工业革命4.0时代,人工智能市场对“新零售”有怎样的助力突破?
- Node.js 应用程序的 Docker 安全优秀实践
- 焊接机器人高温焊渣怎么处理
- Adobe2023全家桶详细软件功能讲解及配置要求
- Photoshop2023最新中文版ps软件安装教程
- mac新手必备的6款软件 特别适合mac新手日常使用
- CAD去教育版插件合集(最高支持CAD2020版)CAD软件全版本下载
- 22个每个程序员都应该知道的 Git 命令
- 人员超员识别系统
- IDM是一款强大的下载工具 idm多个版本(电脑、手机、浏览器插件都有)
- 关于PDF神器,也许是史上最全的整理pdf编辑器全版本下载
- 微服务设计的十条参考指南
- 是什么让一段20行代码的性能提升了10倍
- Go 语言创始人:复制亿点点代码比用别人轮子好!
- Spring的循环依赖,到底是什么样的
- 功能强大的PDF编辑工具--Adobe Acrobat Pro DC2021
- PDF编辑器Adobe Acrobat Pro DC2021安装教程来啦~PDF编辑器全版本下载
- 【算法竞赛】AtCoder Beginner Contest 284 D, F