linux kernal配置移植 (简录)

1.交叉编译环境

顶层makefile中CROSS_COMPILE工具链路径修改;

ARCH ?=arm

CROSS_COMPILE ?= xxx //指定交叉编译工具链前缀

2.导入当前处理前的默认值

make <soc_name>_defconfig

arm处理器在arch/arm/configs目录下.基于arm不同开发板的默认配置

敲入命令后,在顶层目录下生成.config,该文件是从arch/arm/configs/<soc_name>_defconfig导入过来,并增加已关闭配置项.

.config生成后,需要新增删除啥选项,可以直接在.config中=y或#注销(不推荐此种方式)

使用make menuconfig进行修改,然后保存更新.config(推荐使用该方式)

linux内核挂载根文件系统需要在NFS网络协议中挂载的,所以必须make menuconfig中选择好NFS+TCPIP+网卡驱动.

make menuconfig时选择M 模块编译后,编译时该模块不会存在于内核image当中,需要使用insmod 插入再使用.

3.编译内核

//这个命令是编译make menuconfig时选中为*的内核选项

make uImage //生成vmLinux,为elf文件,必须运行在内核之上,但本身linux内核直接运行在处理器上,所以只能是.bin格式.该文件不能使用.

//生成zImage,是使用OBJCOPY vmLinux zImage,存在在arch/arm/boot下。但这个文件uboot不能识别,最终需要使用uImage.

//我们最终想使用uImage,在编译最后阶段会调用mkimage 命令生成uImage,该命令是编译机操作系统自带的工具.

//如果缺少mkimage这个工具,可以到uboot/tools下下面找到这个mkimage工具.cp mkimage /usr/bin

//这个命令是编译make menuconfig时选中为M的内核选项,编译为独立模块

make modules

编译内核make

编译内核和模块 make all

安装内核make install

安装模块make modules_install

其他命令查看MakeFile

相关推荐
zhangrelay10 分钟前
三分钟云课实践速通--C/C++程序设计--
linux·c语言·c++·笔记·学习·ubuntu
CDN36014 分钟前
2026年服务器运维实战:从eBPF内核观测到Serverless边缘计算
运维·服务器·serverless
千百元26 分钟前
华为应用生成 .p12、.cer、.p7b
运维·服务器
Max_uuc30 分钟前
【调度心法】别用 Mutex 制造“人质危机”!撕碎互斥锁的防御幻觉,论优先级反转与火星探测器的史诗级瘫痪
linux·运维·制造
孙同学_30 分钟前
【Linux篇】NTA机制与网络地址转换原理详解
linux·网络·智能路由器
小趴菜要进步36 分钟前
Kali/Linux 更改国内镜像源
linux·运维·服务器
2301_8163743340 分钟前
Nginx的源码编译
运维·nginx
kuaixunbao42 分钟前
2026年5月PCB厂家推荐:口碑好的产品解决高频信号传输稳定性痛点
大数据·运维·网络
ZHANG13HAO1 小时前
海思 Hi3516+ML307 双模 4G 在线方案:KOL 视频 AI 不掉线、长连接稳在线
arm开发
cookies_s_s1 小时前
C++ 内存模型与无锁编程:从底层原理到实战
linux·服务器·开发语言·c++