写了一个小时,结果图书馆网不好,结果没保存,嘤嘤嘤,来重新返工了。
昨天的操作系统第一个实验,编译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文件。感谢老师,是自己学东西只浮于表面了,以后还是要多多思考多多总结呀~