使用Ubuntu编译Linux内核

1.下载内核并解压到 /usr/src 目录下

在终端执行以下命令即可下载 4.16.14版本(目前最新的稳定版)的内核到当前shell打开的目录下

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.16.14.tar.xz  

解压下载的内核文件 linux-4.16.14.tar.xz

xz -d linux-4.16.14.tar.xz   将 linux-4.16.14.tar.xz  文件解压成 linux-4.16.14.tar 压缩文件
sudo tar -xvf linux-4.16.14.tar  -C /usr/src  将 linux-4.16.14.tar 解压到 /usr/src 目录下

2.编译内核可能用到的依赖库安装

	
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 apt-get install bison

sudo apt-get install flex

3.配置内核编译参数

cd /usr/src/linux-4.16.14  切换到刚才我们解压的内核源代码目录下

make mrproper   清除编译过程产生的中间文件,就是将内核代码还原为刚解压的状态,最好每次编译前执行一下。

make clean      清除上次编译产生的中间文件,最好每次编译前执行一下。

make menuconfig 配置编译参数,编译的内核模块选择,内核剪裁需要重点研究的部分。

4. 编译内核

   make -jN     也可以只使用 make ,N表示编译时用几个线程编译,最大不要超过CPU个数的两倍

编译内核比较耗时,大概两小时。

5. 安装内核

   make modules_install   安装内核模块,驱动等
   make install  安装内核

6. 其它说明

内核配置,编译过程中如果提示找不到依赖文件,只需要根据提示的错误信息安装对应的依赖文件即可。

比如出现以下错误提示:

/bin/sh: 1: flex: not found
scripts/Makefile.lib:202: recipe for target 'scripts/kconfig/zconf.lex.c' failed
make[2]: *** [scripts/kconfig/zconf.lex.c] Error 127
Makefile:514: recipe for target 'silentoldconfig' failed

说明需要 flex模块,但是电脑上没有安装,只需要执行sudo apt-get install flex安装上就行。

posted @ 2018-06-09 11:21  ay-a  阅读(3140)  评论(0编辑  收藏  举报