操原作业一:在ubantu中如何编译一个新内核

1. 准备工作

1)切换为管理员权限,sudo –i 输入用户密码 进入root 权限
2)查看内核版本
操原作业一:在ubantu中如何编译一个新内核
3)准备安装环境

apt-get install build-essential kernel-package libncurses5-dev libqt3-headers

build-essential (基本的编程库(gcc, make 等)
kernel-package (Debian 系统里生成 kernel-image 的一些配置文件和工具)
libncurses5-dev (meke menuconfig 要调用的)
libqt3-headers (make xconfig 要调用的)

可能会出现E:无法定位软件包的问题
解决办法
.在修改source.list前,最好先备份一份
执行备份命令

cp /etc/apt/sources.list /etc/apt/sources.list.old
执行命令打开source.list文件

vim /etc/apt/source.list

或者

gedit /etc/apt/source.list

(只截了这一张,但确实是这个命令)
操原作业一:在ubantu中如何编译一个新内核

.复制源
把下面的复制到source.list中去,并覆盖原来的文件内容。

deb-src http://mirror.neu.edu.cn/ubuntu/ xenial main restricted #Added by software-properties
deb http://mirror.neu.edu.cn/ubuntu/ xenial main restricted
deb-src http://mirror.neu.edu.cn/ubuntu/ xenial restricted multiverse universe #Added by software-properties
deb http://mirror.neu.edu.cn/ubuntu/ xenial-updates main restricted
deb-src http://mirror.neu.edu.cn/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirror.neu.edu.cn/ubuntu/ xenial universe
deb http://mirror.neu.edu.cn/ubuntu/ xenial-updates universe
deb http://mirror.neu.edu.cn/ubuntu/ xenial multiverse
deb http://mirror.neu.edu.cn/ubuntu/ xenial-updates multiverse
deb http://mirror.neu.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirror.neu.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirror.neu.edu.cn/ubuntu/ xenial-security main restricted
deb-src http://mirror.neu.edu.cn/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirror.neu.edu.cn/ubuntu/ xenial-security universe
deb http://mirror.neu.edu.cn/ubuntu/ xenial-security multiverse

清华大学

# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security multiverse

update命令

   apt-get update

2. 下载特定版本的内核源代码 http://www.kernel.org

我下载的是最新版的linux-5.0

3. 复制源码linux-5.0.tar.xz 到/usr/src 目录,解压缩

操原作业一:在ubantu中如何编译一个新内核
解压缩

tar –xvf linux-5.0.tar

解压后生成 linux-5.0 目录

4、配置菜单

进入内核文件夹,打开可视化菜单

 make menuconfig

出现如图所示错误(图找不到了,总之就是如果没有安装下面三个东西 )

 apt-get install bison
apt-get install flex
apt-get install libssl-dev

安装后按照需要配置内核菜单
操原作业一:在ubantu中如何编译一个新内核

5、编译

1)编译内核

make bzImage

要等超过一个小时。。。

2)编译模块

 make modules

这里出现了错误

操原作业一:在ubantu中如何编译一个新内核
解决方法

apt-get install libelf-dev

6、安装

1)安装模块

make modules_install

2)安装内核

make install

7、配置grub

更新grub启动信息

 update-grub

重启

验证
查看当前内核版本

uname -rm

操原作业一:在ubantu中如何编译一个新内核