Linux内核编译、安装流程
原文链接:https://blog.csdn.net/qq_28437139/article/details/83692907
此处只讲linux内核编译步骤至于安装虚拟机,安装ubuntu操作系统请自行百度
环境信息:
Linux操作系统:ubuntu16.04
内核版本:4.15.0-29-generic
需要编译和安装的内核源码版本:4.19
第一步:下载linux内核源码
官网地址地址:https://www.kernel.org/

官网大致是这个样子,大家关注我标出的位置就OK了
第一列:
mainline当前在开发的内核新版本
stable 稳定的内核版本
longterm 长期维护的内核版本
第二列:
版本号以小数点分割
第一个位置主版本号一般有重大改变时会修改的版本号(具有里程碑意义)
第二个位置次版本号偶数代表稳定版本(可商用),奇数代表开发板不稳定(不可商用)
第三个位置这个号码代表当前版本修改次数(每次可能修改一些bug)
第三列:
当前版本最后一次修改代码时间
第四列:
tarball:完整的代码
pgp:验证签名
patch:基于上一个版本的补丁(一般商用的系统不会频繁的编译内核,所以可以打补丁上去方便)
在这里我们点击tarball下载完整代码
第二步:上传代码解压,安装软件
登录ubuntu16.04
切换到root权限:su - root
查看当前操作系统安装了哪些内核(注意:当前操作系统可以安装许多内核,但是当前运行的内核只能有一个)
dpkg --list | grep linux-image
查看当前运行的内核版本
uname –r
为了防止后面安装的时候报错首先执行下面命令安装软件
sudo apt-get install libncurses5-dev libssl-dev -y
sudo apt-get install build-essential openssl -y
sudo apt-get install zlibc minizip -y
sudo apt-get install libidn11-dev libidn11 -y
sudo apt-get install bison -y
sudo apt-get install flex -y
sudo apt-get install libelf-dev -y
sudo apt-get install libelf-devel -y
sudo apt-get install elfutils-libelf-devel –y
sudo apt-get install flex –y
sudo apt-get install bison -y
将内核源码解压到/usr/src/目录下
tar xvf 源码包
将解压后的源码包创建新链接
ln –s 解压后源码包名 linux

第三步:配置编译选项开始编译安装内核
make mrproper 清空一些配置信息检查源码是否完整
make clean 清空一些编译信息
cd /usr/src/linux
make menuconfig
这里选择内核中哪些模块参与编译(简单的说就是哪些编译好的内核有哪些功能,具体的功能在下一节博客中会给大家详细介绍),这里打下按向右的箭头,选择退出,弹出对话框口选择yes,这里的意思是选择默认的配置。
在当前目录下执行
make(相当于make bzImage加make modules)另外make可以加-j 20 意思启动20个线程编译
make modules 生成相应的模块
make modules_install 将相应的模块拷贝到对应的目录下
make install 该命令的作用是将.config,vmlinuz,initrd.img,System.map文件到/boot/目录、更新grub。默认启动新内核
如何删除内核:
查看当前安装的内核
dpkg --get-selections | grep linux

如上图所示,在该图列表中含image 部分是已经安装过的内核
执行apt-get remove linux-image-****-generic
或者
sudo apt-get purge linux-image-****-generic
(移除后启动选项中还会有卸载的内核选项)
update-grub 更新grub这样在系统启动的时候就不会有卸载掉的内核了这样就彻底的卸载了
问题
dpkg --get-selections|grep linux
有时候这个命令找不到刚才安装的内核
这个时候用一下方法
- 删除boot下面和要删除的内核版本相关的文件 rm –rf rm -f *3.19.8*
- 删除/usr/src/目录下的内核源码
- update-grub 更新grub
Linux内核编译、安装流程的更多相关文章
- Linux内核编译安装
1. .config 复制一份当前系统编译时的配置,在/usr/src目录下 $ ls /usr/src/ linux-headers-4.10.0-35 linux-headers-4.8.0-36 ...
- Linux内核编译与安装
2013-04-16 Linux内核介绍 Linux内核是一个用C语言写成的,符合POSIX标准的类Unix操作系统.内核是操作系统中最基本的一部分,提供了众多应用程序访问计算机硬件的机制.L ...
- Linux下编译安装PCRE库
备注:如果没有root权限,使用 --prefix 指定安装路径 ./configure --prefix=/home/work/tools/pcre-8.xx =================== ...
- 学习笔记之Linux内核编译过程
准备工作 物理主机:win8(32位) 虚拟机工具:VirtualBox_4.3.16_Win32 虚拟主机:xubuntu-12.04.4 安装virtualBox功能增强包 设置好虚拟机与主机的共 ...
- 运行在TQ2440开发板上以及X86平台上的linux内核编译
一.运行在TQ2440开发板上的linux内核编译 1.获取源码并解压 直接使用天嵌移植好的“linux-2.6.30.4_20100531.tar.bz2”源码包. 解压(天嵌默认解压到/opt/E ...
- Linux下编译安装qemu和libvirt
目录 [hide] 1 安装qemu 1.1 qemu介绍 1.2 下载源文件 1.3 编译安装 2 安装libvirt 2.1 libvirt介绍 2.2 下载libvirt 2.3 编译安装 3 ...
- linux内核编译环境配置
linux内核编译环境配置 如果不是编译内核,只需要安装与内核相匹配的kernel-devel开发包即可.即是/lib/modules/`uname -r`/build -> /usr/src/ ...
- Linux下编译安装qemu和libvirt【转】
转自:http://www.cnblogs.com/findumars/p/5679742.html 目录 [hide] 1 安装qemu 1.1 qemu介绍 1.2 下载源文件 1.3 编译安装 ...
- linux内核编译与开发
一.Linux内核简介linux kernel map: linux 系统体系结构: linux kernel体系结构: arm有7种工作模式,x86也实现了4个不同级别RING0-RING3,RIN ...
随机推荐
- Oracle语句中IN和=的区别有哪些?
Oracle语句中IN和=的区别有: 1.首先应用范围不一样:in 可以理解为是范围内的选择:= 只有一个.例如: select sno, sname from t1 where sno in ('s ...
- 上传1T文件
一般10M以下的文件上传通过设置Web.Config,再用VS自带的FileUpload控件就可以了,但是如果要上传100M甚至1G的文件就不能这样上传了.我这里分享一下我自己开发的一套大文件上传控件 ...
- jQuery相关方法3----动画相关
一.显示和隐藏 show(参数1,参数2)方法和hide(参数1,参数2)方法,动画效果显示和隐藏 参数1是时间,单位毫秒(1000毫秒=1秒),也可以是 "slow"" ...
- 用Python实现自己下载音乐的统计
今天看Python实例,学习了如何对文件进行操作,突然想把自己网易云音乐下载到本地的歌曲名单写到一个txt中,看看具体情况.当然,我现在肯定无法做到直接去网易云音乐上爬取,就做个最简单的吧,嘻嘻^-^ ...
- 【模板】杜教筛(Sum)
传送门 Description 给定一个正整数\(N(N\le2^{31}-1)\) 求 \[ans1=\sum_{i=1}^n \varphi(i)\] \[ans_2=\sum_{i=1}^n \ ...
- kvm 学习(二)镜像
Linux下 如何通过命令行使用现有的镜像创建.启动kvm虚拟机 这里假定已经创建好了相应的镜像: eg:我这里制作的镜像名称为zu1-centos7.img # ls zu1-centos7.img ...
- linux服务器执行cd和ls等等命令都有卡顿现象问题记录
一 执行命令free -gh 1. free 命令显示系统内存的使用情况,包括物理内存.交换内存(swap)和内核缓冲区内存. 2. -g 表示以G单位显示, -m以兆单位显示, h会在数字后面 ...
- Linux中man命令的使用方法再解释
原文链接:http://www.linuxidc.com/Linux/2017-03/142407.htm Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下 ...
- Linux 连接memcache 拒绝连接,防火墙关闭,selinux disabled 仍然不行,最后在外站找到原因,为服务器添加memcache访问权限
最后啊,不行,直接装memcached https://www.runoob.com/memcached/memcached-install.html 附上连接:https://www.presta ...
- 解决Visual Studio:"无法导入以下密钥文件: xxxx.pfx,该密钥文件可能受密码保护"
[解决方法] 从开始菜单找到并打开Visual Studio 命令提示(2010):开始->Microsoft Visual Studio 2010->Visual Studio Tool ...