ubuntu18.04 编译内核 学习记录

Android硬件技术的第一章作业有编译内核这一项,参考网上的编译内核过程自己操作了一遍,现在在实验报告里记录下来。

整个过程参考了多篇文章,主要按下面链接这篇教程选取自己需要的部分一步步做的。(因为装的是双系统不是虚拟机所以有些虚拟机的操作就省去了)

https://www.cnblogs.com/acm-icpcer/p/8029656.html

下面做一下自己按教程操作的实验记录。

1.先到www.kernel.org下载内核源码。

ubuntu18.04 编译内核 学习记录_第1张图片

我下载的是最新的稳定版。

2.下载完成以后解压。

ubuntu18.04 编译内核 学习记录_第2张图片

3.安装基本的编译工具

逐次在终端执行下面四条命令。

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

ubuntu18.04 编译内核 学习记录_第3张图片

ubuntu18.04 编译内核 学习记录_第4张图片1ubuntu18.04 编译内核 学习记录_第5张图片

ubuntu18.04 编译内核 学习记录_第6张图片

4.在终端进入解压的内核源码的目录或在内核源码的目录中打开终端。

ubuntu18.04 编译内核 学习记录_第7张图片

5.依次执行下面三条命令。

sudo make mrproper 

sudo make clean 

sudo make menuconfig

sudo make mrproper:清除编译过程中产生的所有中间文件

sudo make clean:清除上一次编译产生的中间文件

sudo make menuconfig:会出现图形化界面

我在执行sudo make menuconfig时遇到了错误

ubuntu18.04 编译内核 学习记录_第8张图片

上网对错误进行搜索以后,根据下面这篇文章所说的,缺哪个包安装哪个包,对bison包和flex包进行了安装。

https://blog.csdn.net/zxhio/article/details/80312316

ubuntu18.04 编译内核 学习记录_第9张图片

安装完这两个包,再执行sudo make menuconfig命令,就进入到图形化界面了。

ubuntu18.04 编译内核 学习记录_第10张图片

出现此图形化界面后,直接按右方向键选择到exit退出,退出提示中选择保存,实现内核的默认配置。

ubuntu18.04 编译内核 学习记录_第11张图片

6.执行命令sudo make -j4

j后面跟的参数是电脑cpu的进程数,用终端命令和上网查了一下得知我的电脑是双核四线程的,所以执行-j4,4个线程并行编译,编译速度是普通make命令的4倍。这一步通常要等比较长时间等它执行完。

ubuntu18.04 编译内核 学习记录_第12张图片

ubuntu18.04 编译内核 学习记录_第13张图片

ubuntu18.04 编译内核 学习记录_第14张图片

ubuntu18.04 编译内核 学习记录_第15张图片

ubuntu18.04 编译内核 学习记录_第16张图片

去吃了个饭回来终于运行完了!开心!

7.接着依次执行下面的命令

sudo make modules_install        //安装内核模块

sudo make install      //安装内核

 ubuntu18.04 编译内核 学习记录_第17张图片

ubuntu18.04 编译内核 学习记录_第18张图片

输入sudo make install的命令,却发现报错,根据报错信息安装libelf-dev包。

ubuntu18.04 编译内核 学习记录_第19张图片

再运行一遍sudo make install命令,提示/boot分区空间不足。

ubuntu18.04 编译内核 学习记录_第20张图片

于是上网查找解决办法,删除旧内核释放空间。

按下面这篇教程的命令删除了一个不用的旧内核。

https://blog.csdn.net/Tong_jy/article/details/79730247

ubuntu18.04 编译内核 学习记录_第21张图片

ubuntu18.04 编译内核 学习记录_第22张图片

删掉一个内核以后/boot分区的可用空间大了很多。

ubuntu18.04 编译内核 学习记录_第23张图片

重新执行sudo make install ,还是提示/boot分区磁盘不足。

于是使用另一种方法。

http://www.bubuko.com/infodetail-524227.html

查找资料后,我选择将原来的/boot分区挂载到更大的空间,按照下面这篇教程来做。

https://blog.csdn.net/u013022149/article/details/60955225(ubuntu由于/boot空间不足导致升级失败解决办法)

ubuntu18.04 编译内核 学习记录_第24张图片

ubuntu18.04 编译内核 学习记录_第25张图片

发现umount /boot的时候提示target is busy,然后再去找这个问题的解决办法。

然后发现可以用umount -fl /boot 命令强制卸载。

ubuntu18.04 编译内核 学习记录_第26张图片

umount以后再按上面教程重新挂载/boot到更大的空间,再重新执行 sudo make install ,成功。

可以看到文件夹中出现了新内核。

ubuntu18.04 编译内核 学习记录_第27张图片

到这里新内核就成功嵌入操作系统啦!

 

8.最后重启操作系统,在进入界面的高级选项里选用新内核。

ubuntu18.04 编译内核 学习记录_第28张图片

ubuntu18.04 编译内核 学习记录_第29张图片

ubuntu18.04 编译内核 学习记录_第30张图片

这样新内核就正式启用啦!整个编译内核的过程就完成啦!

你可能感兴趣的:(ubuntu学习笔记)