linux内核裁剪

从内核官网下载源码,使用Git克隆源码仓库:git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

内核配置裁剪

默认配置:

bash 复制代码
make ARCH=arm defconfig

精简内核功能

精简内核功能

bash 复制代码
1. make ARCH=arm menuconfig
[
    ARCH=arm make O=out p***_debug_defconfig
    ARCH=arm make O=out menuconfig
	ARCH=arm64 make O=out i***_defconfig
	ARCH=arm64 make O=out menuconfig
]

主要裁剪选项:

General setup:

禁用CONFIG_KERNEL_XZ 以外的压缩选项。

禁用CONFIG_DEBUG_INFO(调试信息)。

Processor type and features:根据目标平台选择正确的处理器类型。

禁用不必要的CPU特性(如CONFIG_X86_EXTENDED_PLATFORM)。

Device Drivers:

移除不需要的设备驱动(如未使用的网卡、USB设备驱动)。

File systems:

仅保留需要的文件系统(如ext4、squashfs)。

Networking support:

移除不需要的网络协议(如IPv6、IPX)。

Kernel hacking:

禁用所有调试选项(如CONFIG_DEBUG_KERNEL)。

模块化裁剪

去掉不用的ko,如:rm -rf drivers/net/wireless/

文件系统裁剪(存储和启动项)

存储:

选择轻量级文件系统,如使用initramfs或squashfs作为根文件系统。

移除不必要的工具,如移除bash,使用busybox替代。

启动项:不用的服务关掉。

内存和存储优化

通过裁剪和压缩减少内核映像大小。如使用CONFIG_KERNEL_XZ 压缩内核。

减少内核的内存占用。如调整内存分配策略(如CONFIG_SLOB)。

编译

make ARCH=arm zImage #编译内核映像

make ARCH=arm dtbs #编译设备树

make ARCH=arm modules #编译模块

启动测试

使用 Bootloader 加载内核并测试功能。

tftp 0x80008000 zImage

bootm 0x80008000

内核体积:从几十MB减少到几MB。

内存占用:从几百MB减少到几十MB。

启动速度:从几秒减少到几百毫秒。

相关推荐
AOwhisky14 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发
重生的黑客15 小时前
Linux 进程优先级、切换与调度:从孤儿进程到 O(1) 调度模型
linux·运维·服务器·进程优先级·nice
Urbano15 小时前
夹克与商务单西口袋工序自动化技改研究报告
运维·自动化
骑上单车去旅行16 小时前
MD5校验对比脚本
linux·服务器·windows
平生幻16 小时前
Linux 常用命令
linux
期待着201316 小时前
docker 安装 ,在centos7.9
运维·docker·容器
踏月的造梦星球16 小时前
DM8 DSC 单机双实例部署
运维·开发语言·数据库
MXsoft61817 小时前
平台化是智能运维发展的必然趋势吗?
运维
ShirleyWang01217 小时前
让headlamp控制台能访问
linux·服务器·python·k8s·k3s
liuccn17 小时前
Linux 存储系统:LVM 与直接分区
linux·运维