3.23linux内核编译学习
2016-03-24 11:47
357 查看
写了一个小时,结果图书馆网不好,结果没保存,嘤嘤嘤,来重新返工了。
昨天的操作系统第一个实验,编译linux内核,看成实验教程做比较简单,过程也比较顺利。但还有一些小问题。老师要求用Ubuntu14.10,开始自己在极速上随便下个 Ubuntu GNOME 15.10,装起来蛮快的,进系统之后美瞎了,但是怕后续实验出错,就没敢在这个上面编译,哎是个遗憾。后来直接用的之前装Tinyos的ubuntu,内核版本是linux 3.19.1,没用更新的内核版本试下,又是个遗憾。
第一步,解压,因为直接用命令在网络上下载会出现网络错误,所以直接用网教上下载的老师的内核,copy到虚拟机里直接解压的:
第二步安装ncurses,之前照做也没思考这个是什么,后来经老师启发也查了一下:原来作用是提供字符终端处理库;输入的命令:
有两个tips:
(1)
(2)如果系统显示无法查找到这三个文件,输入
其实我做的时候比较顺利。完全无视这两个tips了,系统并没有显示无法查找到这三个文件。
第三步应该是图形化的内核配置,关于这个命令,加一个连接
一个tips是命令执行完成后打开配置菜单,直接关闭即可,不进行改动。实际上却是自动跳出来一个配置菜单,亲测选Exit和Save都没影响。
之后最关键的一步开始编译内核了:
命令虽短,但执行起来超级慢。也可能是我电脑的问题,足足编译了一个下午加半个晚上,期间好多次我都以为要宕机了TAT。听同学们说普遍情况是3—4h,快的也有1个多小时的,像我一样7、8h也有几个。据说有加快编译速度的方法,等下补充
第五步,安装内核模块:
这两个命令执行起来比编译快多了,不过这里有个坑让我在找老师检查的时候差点挂掉,立个flag等下说。
最后一步,修改引导菜单配置,编辑启动项的菜单选项。这步自己开始比较晕,不知道怎么找boot/grub/grub.cfg,后来找到了方法:
可以
Ending,开始重启,虚拟机之后我是开机长按Esc,才能进启动项。
最后问题出在给老师检查的时候,因为第一次做根本没怎么思考,老师直接问我装好的linux内核模块在哪,直接懵逼了。只知道解压好的文件在根目录啊,内核模块是什么啊。后来知道原来内核模块是在/boot下的两个.img文件。感谢老师,是自己学东西只浮于表面了,以后还是要多多思考多多总结呀~
昨天的操作系统第一个实验,编译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文件。感谢老师,是自己学东西只浮于表面了,以后还是要多多思考多多总结呀~
相关文章推荐
- CentOS parted分割大于2TB硬盘的performance问题处理
- 关于在CentOS中使用gdb出现debuginfos调试信息
- IPTABLES 规则(Rules)
- Linux内核Radix Tree
- Linux(CentOS7.0)下 C访问MySQL的各种坑!!!
- 《Linux内核设计与实现》 第十八章学习笔记
- Linux下基本的查找命令和查看信息
- CentOS7使用yum安装ceph rpm包
- Linux学习笔记--命令行下的常用快捷键
- 【读书笔记】Linux内核设计与实现(第五章)
- Linux(CentOS-7.0)下安装MySQL5.6.22
- centos7使用问题总结
- Linux 技巧:让进程在后台可靠运行的几种方法
- Linux IO模式
- Linux文件权限查看及修改命令chmod
- 《LINUX内核设计与实现》读书笔记之第五章
- Linux下安装与配置snmp服务
- Linux内核分析之扒开系统调用的三层皮(下)
- linux命令集散中心
- 《Linux内核设计与实现》第四周读书笔记——第五章