ubuntu16.04重新编译linux内核

2023-11-06

首先的首先,如果用的是虚拟机,那硬盘至少要分个40G,
硬盘太小的后果,你可以试试。。。

一、下载内核

首先到kernel官网获取linux源代码包。

我用的ubuntu版本是16.04

因此下载的包可以采用4.x

如果从官网下载速度过慢(我这下载需要两个多小时,还经常掉线),可以找找国内的镜像站。
以下是北京大学镜像站的资源,可以选择4.20进行下载
Index of /kernel/linux/kernel/v4.x/
在这里插入图片描述
下载完成后,依次进行如下步骤:
1、打开终端,输入sudo –s切换到root账户
2、cd到下载的目录后,输入mv linux-4.20.tar.xz /usr/src,把下载的内核源代码文件移到/usr/src目录。
3、输入cd /usr/src,切换到该目录下
4、输入tar xvJf linux-4.20.tar.xz,解压内核包
5、输入cd linux-4.20,切换到解压后目录下

以上,下载内核完成。

二、下载依赖包

只有源码文件无法完成编译,我们还需要依赖包。

国外下载速度比狗爬还慢,我们需要换源

1、首先,备份现有源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak1

2、接着,打开源列表

sudo gedit /etc/apt/sources.list

3、然后修改文件内容为:

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates mainrestricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

完成之后,保存退出

4、更新源与软件

sudo apt-get update
sudo apt-get upgrade

5、安装依赖包

sudo apt-get install libncurses5-dev libssl-dev
sudo apt-get install build-essential openssl
sudo apt-get install zlibc minizip
sudo apt-get install libidn11-dev libidn11

完成效果如图所示
在这里插入图片描述

三、编译内核

依次执行如下命令:

sudo make mrproper
sudo make clean
sudo make menuconfig

在这里插入图片描述
接着,我们就可以进行内核配置


直接退出,保存默认设置即可

这里我输了最后一条命令时,弹出了127号和2号错误,这里安装bison和flex两个依赖包就行了。安好后就可以弹出上面的窗口了

配置好之后,先使用lscpu查看cpu支持的线程数
这里我的电脑只有1个线程。。。
之后输入sudo make –j1命令,
使用1个线程进行编译

在这里插入图片描述

编译速度根据线程数而定,像我就用了两个多小时,8线程的二十几分钟就能搞定。

四、安装内核

编译完成后输入:

sudo make modules_install

安装内核模块
在这里插入图片描述
输入:

sudo make install

安装内核

在这里插入图片描述
大功告成。

五、加载内核

安装完成后对内核进行加载

加载完成后,在控制台输入:

uname -r

查看内核版本,可见,linux已经换上了新的内核
在这里插入图片描述

reference:
在Ubuntu16.04LTS下编译Linux-4.15.7内核
最全最详细:ubuntu16.04下linux内核编译升级更新
ubuntu的apt-get换清华源

步骤不复杂,实际操作还是挺累人的,尤其是中途出了一堆莫名其妙的错误

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu16.04重新编译linux内核 的相关文章

随机推荐

  • tomcat默认端口号(三个tomcat端口号)

    tomcat默认端口号 三个tomcat端口号 2020 05 08 10 43 21 共10个回答 Tomcat的默认端口号是多少 您好 提问者 Tomcat的默认端口号是 8080 weblogic的默认端口号是 7001 tomcat
  • MSP430学习笔记-架构篇

    最近开始接触MSP430单片机了 打算先把手册结合着书看一遍 之后用来做一个小玩意儿 学习笔记就按照学习进度来更新吧 也算做个备忘 有什么东西不记得了可以来翻一翻 今天我们来聊聊MSP430架构 一 MSP430简介 MSP430是由德州仪
  • [Intel汇编-NASM]进入保护模式全过程

    enter pm mbr org 0x7C00 该命令表示程序将被装在到偏移地址为0x7C00的地方 该命令效果是全局的 但只能使用一次 之后不得再用 从该位置开始到整个源代码结束之间的所有标号在被访问时都会隐式地自动加上0x7C00 但是
  • MicroPython1.19.1添加C模块

    1 样例路径 官方添加C模块例子在 micropython 1 19 1 examples usercmodule路径中 2 编译 make USER C MODULES examples usercmodule BOARD MY STM3
  • 3D游戏建模怎么接外包

    3D游戏建模怎么接外包 有些自学出来或者经过培训小伙伴 已经有能力做出作品时往往都想着怎么去赚钱 除了从事于建模行业的工作之余 身为大学生 可能在校的时间较为富裕 课余时间 能够接私单 赚点外快什么的也是能够的 接单的平台 八戒网 1个较为
  • 大学生必看的电影

    十大励志电影 1 肖申克的救赎 很喜欢安迪放MOZART的 费加罗的婚礼 那段 圣洁高亢的女高音穿云裂帛久被牢 牢禁锢的人们呆住了 他们可能不知这是什么音乐 可是对美的感觉 对自由的渴望 每个人都是一样 人们抬头望着碧蓝无垠的天空 美好的情
  • 网络--HTTP协议

    网络基础知识之 HTTP 协议 首先让我们从一个问题入手 当我们在浏览器中输入 http www baidu com 访问百度的时候浏览器做了哪些事情 这里以 Chrome 浏览器为例 1 DNS域名解析 首先 Chrome 搜索自身的 D
  • 针对某个逻辑卷进行fscheck修复文件系统

    系统启动无法正常启动 原因为 dev vg telstar telstar 该逻辑卷无法加载 报contains a file system with errors check forced OK那就根据该提示进行该逻辑卷的检查恢复工作 注
  • 多态的实现

    1 理解如何通过virtual fuction table指向正确的方法 Typically the compiler creates a separate vtable for each class When an object is c
  • 八大排序(一)冒泡排序,选择排序,插入排序,希尔排序

    一 冒泡排序 冒泡排序的原理是 从左到右 相邻元素进行比较 每次比较一轮 就会找到序列中最大的一个或最小的一个 这个数就会从序列的最右边冒出来 以从小到大排序为例 第一轮比较后 所有数中最大的那个数就会浮到最右边 第二轮比较后 所有数中第二
  • 后端跨域问题解决

    出于浏览器的同源策略限制 同源策略 Sameoriginpolicy 是一种约定 它是浏览器最核心也最基本的安全功能 如果缺少了同源策略 则浏览器的正常功能可能都会受到影响 可以说Web是构建在同源策略基础之上的 浏览器只是针对同源策略的一
  • ArrayList扩容机制

    扩容步骤 扩容 把原来的数组复制到另一个内存空间更大的数组中 添加元素 把新元素添加到扩容以后的数组中 2 源码分析 2 1 ArrayList里面的属性 默认初始化容量 private static final int DEFAULT C
  • web基本解题思路

    前两天安装一些web相关的软件 今天主要是做一些简单的web基础题 主要用BurpSuite软件进行抓包和分析数据 其中涉及到一些方法 如下所示 一 爆破 包括包括md5 爆破随机数 验证码识别等 二 绕WAF 包括花式绕Mysql 绕文件
  • Python安装超详细教程

    本文将介绍以下几部分内容 下载 python 安装 python 配置环境变量 python 多版本共存配置 python 编程工具推荐 一 下载 python 下载 python 点击这里进入 python 下载页面 在下载页面可以看到很
  • oracle什么时候要commit,Oracle什么时候需要Commit

    写完DML语句 update insert delete 后 需要手动COMMIT 如果没有COMMIT 更新的内容会被保存到内存中 而不是提交到数据库中 将不会被其他Session 对话 看见 其他对话看到的是更新前的数据 当用户退出对话
  • Docker指定时间段一键过滤容器运行时日志

    文章目录 引 效果 测试输错 时间段模式 时间段方式 时间戳方式 低版本Docker 时间范围模式 实时查看 脚本 引 针对容器日志过多时 过滤某个时间 时间段的日志 效果 说明 针对Docker版本比较低的客户端 无法使用 until参数
  • C#辗转相除法求最大公约数与最小公倍数

    class Program static void Main string args int num1 num2 mm Console WriteLine 请输入第一个数 num1 Convert ToInt32 Console ReadL
  • 【Flutter 1-6】Flutter项目目录结构

    文章首发地址 Flutter项目结构 了解Flutter的目录结构 可以帮助我们更好的管理和开发项目 这样我们在开发的过程中就会很清楚的知道 iOS代码该放在那里 Android代码该放在那里 Flutter代码该放在哪里 测试代码放在哪里
  • Linux操作系统加固

    如何尽可能地加强Linux的安全性和隐私性 以下列出的所有命令都将需要root特权 以 符号开头的单词表示一个变量 不同终端之间可能会有所不同 一 选择正确的Linux发行版 选择一个好的Linux发行版有很多因素 避免分发冻结程序包 因为
  • ubuntu16.04重新编译linux内核

    首先的首先 如果用的是虚拟机 那硬盘至少要分个40G 硬盘太小的后果 你可以试试 一 下载内核 首先到kernel官网获取linux源代码包 我用的ubuntu版本是16 04 因此下载的包可以采用4 x 如果从官网下载速度过慢 我这下载需