ubuntu编译linux内核
为什么要自己编译Linux内核呢?不要误会,没有任何geek的目的,我只是为了获取具有调试信息的vmlinux文件,方便在oprofile工具上使用,用来跟着程序的CPU耗费在哪个函数环节.
首先通过apt-get获取内核代码,当然你可以直接从kernel.org上Git获取代码.
1 | sudo apt-get install linux-source |
然后是一些编译需要的包
1 | sudo apt-get install libncurses5-dev |
将linux-source-3.5.0.tar.bz2解压到/tmp目录下
1 | tar -jxf /usr/src/linux-source-3.5.0/linux-source-3.5.0.tar.bz2 -C /tmp/ |
后面通常就会在tmp下进行编译,我的tmp是挂载到内存中的,这个样子可以加快编译速度,同时减少SSD的磨损,但是一直由于空间不足而失败,事后计算了编译文件共有9G大小,所以说内存小的电脑还是放在硬盘上执行吧.
先清理一下代码遗留文件
1 | make mrproper |
获取配置文件
1 | cp /boot/config-<code>uname -r</code> ./.config |
编译配置文件,确保CONFIG_DEBUG_INFO=y选项存在,也可以通过make menuconfig更改选项
然后进行编译
1 | sudo make -j4 |
OK,这个样子可以等着了
1 2 | oen@oen ~/code/src/linux-source-3.5.0 $ ls vmlinux* vmlinux vmlinux.o |
vmlinux便是我想要的文件,参与oprofile的内核调试过程.
如果你想说如何安装内核,恩,我后面会写的
1 | make -j8 && make modules -j8 && make modules-install -j8 && make install -j8 |
ubuntu编译linux内核来自于OenHan
链接为:http://oenhan.com/ubuntu-vmlinux-kernel