3.23linux内核编译学习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.23linux内核编译学习相关的知识,希望对你有一定的参考价值。

 写了一个小时,结果图书馆网不好,结果没保存,嘤嘤嘤,来重新返工了。

昨天的操作系统第一个实验,编译linux内核,看成实验教程做比较简单,过程也比较顺利。但还有一些小问题。老师要求用Ubuntu14.10,开始自己在极速上随便下个 Ubuntu GNOME 15.10,装起来蛮快的,进系统之后美瞎了,但是怕后续实验出错,就没敢在这个上面编译,哎是个遗憾。后来直接用的之前装Tinyos的ubuntu,内核版本是linux 3.19.1,没用更新的内核版本试下,又是个遗憾。

 

第一步,解压,因为直接用命令在网络上下载会出现网络错误,所以直接用网教上下载的老师的内核,copy到虚拟机里直接解压的:

sudo tar xvJf ./linux-3.19.1.tar.xz

cd ./linux-3.19.1

 

第二步安装ncurses,之前照做也没思考这个是什么,后来经老师启发也查了一下:原来作用是提供字符终端处理库;输入的命令:

sudo apt-get install libncurses5-dev build-essential kernel-package

有两个tips:

(1)libncurses5-dev是为了之后配置内核能运行make menuconfig程序做准备;build-sesstial为编译工具,kernel-package是编译内核工具。

(2)如果系统显示无法查找到这三个文件,输入#apt-get update更新数据源

其实我做的时候比较顺利。完全无视这两个tips了,系统并没有显示无法查找到这三个文件。

 

第三步应该是图形化的内核配置,关于这个命令,加一个连接make menuconfig,讲的比较详细:

 sudo make menuconfig

一个tips是命令执行完成后打开配置菜单,直接关闭即可,不进行改动。实际上却是自动跳出来一个配置菜单,亲测选Exit和Save都没影响。

之后最关键的一步开始编译内核了:

 sudo make

命令虽短,但执行起来超级慢。也可能是我电脑的问题,足足编译了一个下午加半个晚上,期间好多次我都以为要宕机了TAT。听同学们说普遍情况是3—4h,快的也有1个多小时的,像我一样7、8h也有几个。据说有加快编译速度的方法,等下补充

 

第五步,安装内核模块:

 sudo make modules_install

 sudo make install

这两个命令执行起来比编译快多了,不过这里有个坑让我在找老师检查的时候差点挂掉,立个flag等下说。

 

最后一步,修改引导菜单配置,编辑启动项的菜单选项。这步自己开始比较晕,不知道怎么找boot/grub/grub.cfg,后来找到了方法:

可以sudo gedit /boot/grub/grub.cfg,menu entry“”里面修改添加了自己的学号,此处应该注意是改的是菜单还是子菜单,不然可能找不到。

 

Ending,开始重启,虚拟机之后我是开机长按Esc,才能进启动项。

最后问题出在给老师检查的时候,因为第一次做根本没怎么思考,老师直接问我装好的linux内核模块在哪,直接懵逼了。只知道解压好的文件在根目录啊,内核模块是什么啊。后来知道原来内核模块是在/boot下的两个.img文件。感谢老师,是自己学东西只浮于表面了,以后还是要多多思考多多总结呀~

以上是关于3.23linux内核编译学习的主要内容,如果未能解决你的问题,请参考以下文章

Linux基础补充——存储结构与管理硬盘

Linux内核学习之路_1_编译Linux内核

Linux基础(待补充)

瑞芯微RV1126 如何配置和编译linux内核学习笔记

瑞芯微RV1126 如何配置和编译linux内核学习笔记

IMX6ULL学习笔记——获取和编译Linux内核