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