假如你需要改内核代码(调试或者其他目的),就需要从源码编译内核,以运行你的修改。
首先,要有一个可用的linux环境(虚拟机或者物理机),本文是Ubuntu16.04。查看当前系统的内核版本:
$ uname -a
Linux 4.4.0-193-generic #224-Ubuntu SMP Tue Oct 6 17:15:28 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
在http://kernel.org下载相同或者较低版本的内核源码,这里下载4.3.0的版本
https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.xz
下载之后,解压
tar xf linux-4.3.tar.xz
cd linux-4.3/
拷贝当前系统/boot目录的config文件
cp /boot/config-4.4.0-190-generic .config
make oldconfig
可能会出现一些选项需要手动配置,y是打开,m是模块。看不懂就选y。然后开始编译。
make -j8
至此,编译完成。
安装模块(即把模块复制到系统的确定目录)
make modules_isntall
安装内核(把内核复制到/boot目录,更新grub启动项)
make install
然后重启
reboot。
启动之后,查看内核版本
$ uname -a
Linux 4.3.0 #1 SMP Mon Oct 19 23:58:29 CST 2020 x86_64 x86_64 x86_64 GNU/Linux
至此,内核编译、安装成功。
网友评论