Linux - 内核的编译和安装 - Ubuntu 14.04
参考:https://blog.csdn.net/qq_36290650/article/details/83052315
文章目录
一、准备工作
① 下载内核
-
查看Ubuntu内核版本
uname -r
我的是4.4.0-148
,那我就选择稍微新一点的版本(比如4.4.99
)做实验,防止兼容问题
笔者水平有限,对于如何选择内核版本以及是否可以使用旧版本内核降级仍不清楚
-
下载内核
https://mirrors.edge.kernel.org/pub/linux/kernel/
由于版本号非常多,建议直接使用Ctrl+F
搜索版本下载,我们需要的是linux-xxx.tar.xz
,其中xxx是你要下载的版本注:
目录里面一共有3种文件
ChangeLog-xxx
:版本变更信息以及需要的软件版本最低要求等信息
linux-xxx.tar.xx
:选择linux-xxx.tar.xz
,这是我们要下载的内核
patch-xxx.xxx
: 补丁建议使用迅雷下载,不然可能很慢!
② 将下载好的内核压缩包放到Ubuntu并解压
-
将文件放到Ubuntu的方法就不多说了,每个人的情况不同,也可以直接在Ubuntu里面下载,或者使用wget工具下载等等
-
解压
xz -cd linux-X.tar.xz | tar xvf -
这是官方文档给的方法,X是自己的版本号,在当前目录解压,其他解压方法可自行百度
下面的介绍将直接使用4.4.99
作为示例版本号解压后得到目录
linux-4.4.99
里面包括官方README文档
建议在比较安全的目录操作,防止误操作和权限问题,像普通用户目录
我的是~/WorkDir/kernel_compile
二、编译
① 安装依赖
参考:https://blog.csdn.net/qq_36290650/article/details/83052315 - 安装必要依赖
我只用到了这些,可以根据下一步make
的报错信息来对应安装缺失的依赖
sudo apt-get install libncurses5-dev -y # ncurses是一个字符终端图形库
sudo apt-get install openssl -y
sudo apt-get install libssl-dev -y
sudo apt-get install build-essential -y
可能用到的其他依赖
sudo apt-get install bc -y sudo apt-get install pkg-config -y sudo apt-get install libc6-dev -y sudo apt-get install bison -y sudo apt-get install flex -y sudo apt-get install libelf-dev -y
注:
ncurses是一个字符终端图形库,一会使用make menuconfig
要用到
还有其他配置config的方法
"make config"
Plain text interface.
"make menuconfig"
Text based color menus, radiolists & dialogs.
"make nconfig"
Enhanced text based color menus.
"make xconfig"
X windows (Qt) based configuration tool.(基于Qt的窗口界面)
"make gconfig"
X windows (GTK+) based configuration tool. (基于GTK+的窗口界面)
等等,具体可查看官方README
② 编译前的工作
# 我们需要在 /usr/src 目录下编译
# 将解压后的内核文件复制到 /usr/src
# 小文件比较多,可能要复制一会(也可以选择移动`mv`,看个人)
sudo cp -r ~/WorkDir/kernel_compile/linux-4.4.99 /usr/src/
# 切换到复制后的内核文件目录
cd /usr/src/linux-4.4.99
# 直接使用旧内核的config文件作为新内核的config
# boot目录下可能有多个旧内核的config文件,根据当前版本选择即可
sudo cp /boot/config-4.4.0-148-generic .config
# 配置config,即内核相关设置
sudo make menuconfig
执行 sudo make menuconfig
之后
- 使用左右方向键选中Exit,回车
- 选择Yes
③ 编译
需要很久,可能睡个午觉起来还没完成(具体时间取决于电脑性能、并发任务数和午觉时长)
# -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg.
# 分成N个任务同时进行,如果不给参数则不限制同时进行的任务数量
# make过程非常漫长,分成4个任务同时进行可以加快进度,但是会比较吃性能,这个N酌情选择
sudo make -j4
# 安装模块
sudo make modules_install
三、安装
# 安装,会在/boot下生成下一步要使用的initrd.img-4.4.99
sudo make install
# 制作initramfs文件系统镜像
# initramfs: https://www.cnblogs.com/wipan/p/9269505.html
# -o outfile Write to outfile.
sudo mkinitramfs -o /boot/initrd.img-4.4.99
# -k [version] Specify kernel version or 'all' (指定内核)
# -c Create a new initramfs(新建initramfs)
sudo update-initramfs -c -k 4.4.99
# 更新grub引导
sudo update-grub2
四、结束
重启Ubuntu,查看内核版本
完成!
文章评论