OpenHarmony中Linux内核手动编译调试解读

原创
系统 OpenHarmony
本篇带给大家OpenHarmony 3.1Beta版本linux内核手动编译调试的三个步骤。

​想了解更多内容,请访问:​

​51CTO和华为官方合作共建的鸿蒙技术社区​

​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

​想了解更多内容,请访问:​

​51CTO和华为官方合作共建的鸿蒙技术社区​

​https://harmonyos.51cto.com​

责任编辑:jianghua 来源: 鸿蒙社区
相关推荐

2023-04-10 09:44:22

内核鼠标调试鸿蒙

2023-02-01 16:28:30

Linux内核鸿蒙

2010-01-22 11:01:04

linux内核模块

2014-08-28 15:08:35

Linux内核

2010-07-20 10:04:25

Linux内核编译

2017-03-27 18:05:49

Linux内核编译与开发

2021-10-17 19:52:40

Python:源码编译器

2009-12-17 15:18:47

2010-03-02 16:13:56

Linux升级

2009-10-16 09:45:41

Linux内核操作系统

2023-10-05 15:47:04

Linux内核编译

2011-01-04 17:00:32

Linux内核编译

2010-04-12 11:19:47

编译内核模块

2010-04-20 10:12:05

2010-02-26 10:17:15

Linux uClin

2017-01-12 19:15:03

Linux内核调试自构proc

2021-05-26 07:53:58

Linux运维Linux系统

2009-10-23 16:35:44

linux Debia

2010-02-02 13:26:53

Linux内核

2023-05-08 08:05:42

内核模块Linux
点赞
收藏

51CTO技术栈公众号