杂记编译内核时的一些记录

Posted powerrailgun

tags:

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

这里记录些从网络上收集到的各种编译内核时的一些注意事项和操作。未经验证,仅供参考!

下载源码,然后转到源码目录(或者新建一个目录,在该目录下运行make?-C?/usr/src/linux?O=`pwd`);

?????将当前运行内核的config文件拷过来(位置在/boot?目录下,config*等文件),重命名为.config;

????在编译内核之前,需要确认.config中,以下编译选项是否打开:

????(1)CONFIG_DEBUG_INFO?,必须打开该选项,否则crash会出现以下错误:

?????????????crash?no?debugging?data?available

????(2)CONFIG_STRICT_DEVMEM,必须打开该选项,否则crash会出现以下错误:

??????????????crash:?read?error:?kernel?virtual?address:?c0670680??type:?"kernel_config_data"

??????????????WARNING:?cannot?read?kernel_config_data

??????????????crash:?read?error:?kernel?virtual?address:?c066bb68??type:?"cpu_possible_mask"

?????设置完毕,开始编译,依次运行如下命令:

?????(1)?make?bzImage

?????(2)?make?modules

?????(3)?make?modules_install

?????(4)?make?install?(运行该命令后,会在/boot目录下生成我们自己的vmlinuz)

4.??生成initrd

???????转到/boot?目录下,运行update-initramfs?-c?-k?[version]?,如我编译的内核为2.6.38.6,则生成的

vmlinuz为vmlinuz-2.6.38.6,?运行update-initramfs?-c?-k?2.6.38.6生成的为initrd.img-2.6.38.6;

以上是关于杂记编译内核时的一些记录的主要内容,如果未能解决你的问题,请参考以下文章

技术杂记

问题排查低版本内核驱动移植到高版本内核中编译报错,部分编译异常记录及解决

问题排查低版本内核驱动移植到高版本内核中编译报错,部分编译异常记录及解决

(经验杂记) —— Visual Studio 运行程序时关闭Assert的弹出

(经验杂记) —— Visual Studio 运行程序时关闭Assert的弹出

内核模块编译过程摘要记录