内核编译
一. 环境
vmware:14.1.3版本
ubuntu:18.0.1版本
内核版本:linux-4.19.23(可去官网自行下载)
二. 查看系统原内核
uname -a
三. 下载内核压缩包,并导入到虚拟机中,解压
解压命令为
tar xf linux-4.19.23.tar.xz
四. 为了之后使用方便,给刚解压的文件加一个软链接。
ln-sv linux-4.19.23 linux
查看链接文件中的文件
五.配置内核
配置内核的指令有很多个,具体如下:
make config:遍历选择所要编译的内核特性
make allyesconfig:配置所有可编译的内核特性
make allnoconfig:并不是所有的都不编译,而是能选的都回答为NO、只有必须的都选择为yes。
make menuconfig:这种就是打开一个文件窗口选择菜单,这个命令需要打开的窗口大于80字符的宽度,打开后就可以在里面选择要编译的项了
下面两个是可以用鼠标点选择的、比较方便哦:
make kconfig(KDE桌面环境下,并且安装了qt开发环境)
make gconfig(Gnome桌面环境,并且安装gtk开发环境)
menuconfig:使用这个命令的话、如果是新安装的系统就要安装gcc和ncurses-devel这两个包才可以打开、然后再里面选择就可以了、通这个方法也是用得比较多的:
使用make menuconfig的界面如下:
有界面,操作更加方便,但是编译时间更长。
本次采用 make localmodconfig 进行编译,结果如下:
备注:配置内核阶段可能会遇到各种问题,需要配置各种支持库,具体情况参考博文二。
六. 编译内核
(1)编译内核需要生成映像文件和模块文件,映像文件由配置中的选择为<*>的文件编译链接而成,开机后直接加载在内存中运行模块文件将选择为的文件编译成.o文件,放在磁盘中,以备后来要用到,先配置映像文件,
输入
make bzImage
(2)然后编译模块文件,输入:
make modules
(3)把散落在各个文件夹下的.o文件组装起来,输入:
make modules_install
(4)安装内核,输入:
sudo make install
七. 配置启动项
(1) Ubuntu 系 统 为 GRUB(GRand Unified Bootloader )引导,需要更新grub
用update-grub命令可以直接更新grub启 动菜单(grub.cfg),生成相应的启动项 ,此时新版本的内核在第一个启动位置;
输入:
sudo update-grub
(2)在开机时进入Grub 界面后,按 shift 键可以进行选择内核 • 默认情况下grub界面并不显示, 修改grub界面显示时长需要 修改相应的配置文件 /etc/default/grub, 具 体 为 修 改 GRUB_HIDDEN_TIMEOUT 和 GRUB_TIMEOUT 参数 ( 在 ubuntu18.04 中只需 修改GRUB_TIMEOUT 参数)
sudo vi etc/default/grub
更改参数
(3)重启: 执行reboot 命令进行重启并选择 刚刚安装的内核 – 上一步执行update-grub 命令后默认以4.19.23内核运行
进入系统之后执行uname –a命令查看系 统版本,如果为4.19.23则内核安装启动成功
至此完成内核编译~