# kernel_linux_config **Repository Path**: fanxiaoyu321/kernel_linux_config ## Basic Information - **Project Name**: kernel_linux_config - **Description**: Configuration files of Linux kernel 4.19 for the embedded devices running the standard system | 支持适用于标准系统的嵌入式设备的linux-4.19内核的配置文件 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 266 - **Created**: 2021-09-06 - **Last Updated**: 2021-09-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Config组件 - [简介](#section11660541593) - [内核的Config组成模块](#section28381947133910) - [目录](#section161941989596) - [使用](#section1393789267) - [使用说明](#section1352114469620) - [构建指导](#section72118467716) - [以hi3516dv300开源开发板+ubuntu x86主机开发环境为例](#section19369206113115) - [场景1:版本级编译原生方式](#section1025111193220) - [场景2:单独编译修改后的内核](#section17446652173211) - [相关仓](#section1371113476307) ## 简介 OpenHarmony的Linux内核基于开源Linux内核LTS 4.19.y分支演进,为满足不同的内核场景诉求,针对性地合入CVE补丁 + OpenHarmony 特性 + vendor厂商具体的板级芯片驱动补丁从而构成完整的内核基线。 Linux社区LTS 4.19.y分支信息请查看[kernel官网](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/log/?h=linux-4.19.y)。 ## 内核的Config组成模块 1. 通用配置文件 针对标准系统给出对应的参考通用配置文件:standard\_common\_defconfig,以便于各开发者参考。 2. 开源开发板配置文件 针对于标准系统开源开发板Hi3516DV300,给出对应的配置文件。 ## 目录 ``` kernel/linux/config/linux-4.19 # 内核config └── standard_common_defconfig # 标准系统的内核的common defconfig └── hi3516dv300_emmc_smp_hos_l2_defconfig # 厂商Hisilicon对应的开源开发板Hi3516dv300标准系统的defconfig ``` ## 使用 ### 使用说明 如需使用上述config,以Hi3516DV300开发板调试为例,需要在内核代码完成对应芯片驱动patch的合入。 1. 合入芯片平台驱动补丁 针对不同芯片平台合入对应的patch,以Hi3516DV300为例: ``` patch -p1 < device/hisilicon/hi3516dv300/sdk_linux/open_source/linux/hisi_linux-4.19_hos_l2.patch ``` >![](public_sys-resources/icon-notice.gif) **须知:** >由于OpenHarmony工程的编译构建流程中会拷贝kernel/linux-4.19的代码环境后进行打补丁动作,在使用OpenHarmony的版本级编译命令前,需要kernel/linux-4.19保持原代码环境。 2. 复制defconfig到kernel/linux-4.19/arch/arm/configs下 ### 构建指导 ## 以hi3516dv300开源开发板+ubuntu x86主机开发环境为例 ### 场景1:版本级编译原生方式 使用工程的全量编译命令,编译生成uImage内核镜像 ``` ./build.sh --product-name Hi3516DV300 # 编译hi3516dv300的uImage内核镜像 ``` ### 场景2:单独编译修改后的内核 1. 准备工作 准备编译环境,可以使用开源arm clang/gcc编译器,或者使用工程自带编译器。 进入工程主目录配置环境变量: ``` export PATH=`pwd`/prebuilts/clang/host/linux-x86/clang-r353983c/bin:`pwd`/prebuilts/gcc/linux-x86/arm/gcc-linaro-7.5.0-arm-linux-gnueabi/bin/:$PATH # 配置编译环境 MAKE_OPTIONES="ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- CC=clang HOSTCC=clang" # 使用工程项目自带的clang环境 ``` 2. 修改内核代码或内核config (OpenHarmony提供对应平台的defconfig供参考)。 3. 创建编译目录及生成内核.config。 ``` make ${MAKE_OPTIONES} hi3516dv300_emmc_smp_hos_l2_defconfig # 使用自带的默认config 构建内核 ``` 4. 编译生成对应的内核Image。 ``` make ${MAKE_OPTIONES} -j32 uImage # 编译uImage内核镜像 ``` ## 相关仓 kernel\_linux\_config