内核定制随笔

2021-12-28  本文已影响0人  芝士份子

本文主要记一次Kernel定制的过程,记录在此备查回顾

目的:

1、编译支持AUFS、NTFS3的Porteus内核
2、学习内核定制流程

前期准备

apt install build-essential libelf-dev libncurses5-dev flex bison libssl-dev bc -y
工具包

过程记录

1、合并源码

cp -R aufs5-standalone-aufs5.15/{Documentation,fs,include} linux-5.15/

2、打补丁

patch -p1 < ../aufs5-standalone-aufs5.15/*.patch
示例图

3、配置编译选项
内核编译选项众多 为简化工作可在主流发行版的内核编译配置上修改
一般在/boot/下或者/proc/config.gz 若路径下没有可尝试运行如下命令后再拷贝

modprobe configs
发行版中拷贝编译配置

配置模板拷贝完成后 即可在此基础上启闭相关选项

make menuconfig 

General-Local Version(配置自定义内核名称,名称前建议加-可形成良好观感 例如:-zero)


NTFS3支持
Aufs支持

找不到选项可使用搜索功能 /键进入搜索 输入关键信息可得到相关选项的路径


keyword
result

4、开始编译

make -j8

启用多线程编译(线程数一般为CPU物理核心的两倍)

若非本地编译 开始编译前建议使用tmux启动编译任务 以避免ssh断开而引起编译中断*

tmux

5、编译完成
根据编译配置编译出来的内核文件一般在arch/x86/boot/bzImage

make install #安装内核至当前系统

默认情况module将安装至/lib/目录下 如非用于当前系统 可指定module输出路径

make modules_install     #安装至当前系统 

mkdir /path_to_output/    #指定输出路径
make modules_install INSTALL_MOD_PATH=/path_to_output/ #指定输出路径
# 默认命令下编译出来的modules体积过大,因为编译出来的 ko 文件携带了 debug 信息 可使用如下命令安装时精简掉ko文件的debug信息
make INSTALL_MOD_STRIP=1 modules_install INSTALL_MOD_PATH=/path_to_output/

若已完成modules安装 则可使用如下命令对已安装文件进行精简

bash -c 'find . -iname "*.ko" | xargs strip --strip-unneeded'  # 在输出目录或安装目录下执行)
上一篇 下一篇

猜你喜欢

热点阅读