为了避免编译内核的时候,系统发生不可控的错误,笔者选择把linux系统装在了虚拟机上。下面是具体的系统配置
系统配置
运行环境:Oracle VM VirtualBox 虚拟机
系统版本:Ubuntu 18.04 LTS版
运行内容:4GB(建议2GB以上)
磁盘大小:40GB (磁盘太小会导致编译失败)
处理器核心:4个 @2.30GHz x64 (四个核心能加快编译的速度)
显存大小:12MB
安装方法:命令行窗口
安装编译工具
为了加快软件软件下载的速度,可以把服务器的镜像换成阿里云的镜像。
打开软件和更新
,选择其他站点
,然后选择阿里云服务器。
先更新一下软件包 : sudo apt-get update
- 安装gcc:
sudo apt-get install gcc
- 安装make:
sudo apt-get install make
- 安装ncurses dev:
sudo apt-get install libncurses5-dev
- 安装openssl:
sudo apt-get install libssl-dev
- 安装libelf-dev
sudo apt-get install libelf-dev
- 安装bison:
sudo apt-get install bison
- 安装flex:
sudo apt-get install flex
下面给出了其中一个命令运行截图,其他命令运行情况大同小异,不再另截图。
下载内核
打开Ubuntu 自带的浏览器,访问 (www.kernel.org),下载内核,这里笔者选择了稳定版的 4.20.14的内核。
找到下载到的内核文件,鼠标右键,选择在终端打开
,
然后需要切换到root账户,如果没有设置过root密码,输入sudo passwd root
设置root密码
如果已经设置过了root密码,输入 su
, 输入密码后,进入root账户。然后把 内核文件复制到 /usr/src
目录下 ,这里读者注意看自己内核文件的文件名。(键入 linux
,然后按一下Tab
,系统会自带把文件名补全)
解压缩内核文件
注意:后面的操作都是在root用户下进行的。
首先进入/usr/src界面 :cd /usr/src
要记得自己的下的内核的版本,不要和原来的版本搞混
分两步解压缩内核文件:
1) xz -d linux-4.20.14.tar.xz
2) tar -xvf linux-4.20.14.tar
然后cd 进 解压好的内核文件夹 cd linux-4.20.14
清除残留的.config和.o文件 : make mrproper
如果后续编译错误,需要重新编译的话,也要再次执行该命令
编译安装内核
(以下命令均在root用户下执行)
配置内核 :make menuconfig
会出现这样一个配置对话框。对于每一个配置选项,用户可以回答y
,m
或者n
:其中y
代表将相应特性的支持或设备驱动程序编译进内核,m
表示将相应特性的支持或设备驱动程序编译成可加载模块,在需要时,可由系统或用户加入在内核去;n
表示内核不提供相应的特性或驱动程序的支持。
在这里,选择默认的配置选项就可以了,选择save
保存配置信息,然后选择ok
确认,然后选择 exit
退出即可,
编译内核: make -j4
因为我的处理器是四核四线程的,所以最大只能选4个线程同时编译。如果读者的处理器是八个线程的,可以用 make -j4
来编译
经过了漫长的两个半小时之后,终于编译成功了。。。如果编译过程中报错了,需要执行make mrproper
命令,然后重新 make
编译内核
编译模块 :make moduels -j4
又花了大概三小时。。。
安装模块: make modules_install
安装内核:make install
安装模块和内核比较快,一会儿就安装好了,然后更新一个grub引导,就完成了
更新引导::update-grub2
更新引导后,输入reboot重启
重启速度有点慢。。等了几分钟后,才进入了系统,用uname -a
查看当前的内核版本,显示的内核版本为 4.20.14, 安装成功~~