Linux - 内核的编译和安装 - Ubuntu 14.04

Linux - 内核的编译和安装 - Ubuntu 14.04

参考:https://blog.csdn.net/qq_36290650/article/details/83052315

一、准备工作

① 下载内核
  1. 查看Ubuntu内核版本uname -r
    我的是4.4.0-148,那我就选择稍微新一点的版本(比如4.4.99)做实验,防止兼容问题
    查看内核版本

    笔者水平有限,对于如何选择内核版本以及是否可以使用旧版本内核降级仍不清楚

  2. 下载内核
    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并解压
  1. 将文件放到Ubuntu的方法就不多说了,每个人的情况不同,也可以直接在Ubuntu里面下载,或者使用wget工具下载等等

  2. 解压
    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 之后

  1. 使用左右方向键选中Exit回车
  2. 选择Yes
    menuconfig
    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,查看内核版本
结束
完成!


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

insight^tkk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值