如何编译与我们计算机上安装的内核不同的修改内核?

时间:2014-03-23 18:52:48

标签: linux linux-kernel system-calls

我目前正在研究linux内核3.11.0-12。但是我通过修改从linux-2.6.26的kernel.org下载的源代码来添加系统调用。我想编译修改后的2.6.26内核来测试我的新系统调用。我该怎么办?

2 个答案:

答案 0 :(得分:0)

1)如果你想为你正在使用的相同架构构建内核,那么......

进入你的linux源文件夹并触发命令....

清洁: 使distclean

写配置:

make defconfig

构建内核:

制作uImage

或使vmlinux成为您要构建的图像

2)用于手臂架构...

清洁: make ARCH = arm CROSS_COMPILE = arm-linux-gnueabihf-distclean

写配置: make ARCH = arm CROSS_COMPILE = arm-linux-gnueabihf- defconfig

构建内核: make ARCH = arm CROSS_COMPILE = arm-linux-gnueabihf- uImage

3)使用第二步,您可以使用任何工具链为任何平台构建Linux内核  根据要求使用ARCH = CROSS_COMPILE =宏......

答案 1 :(得分:0)

我假设您使用的是vanilla内核并且您正在使用模块。无论是否香草,您需要目标内核的配置文件。

只需下载源代码,将内核配置文件复制到<kernel_source>/.config并构建内核一次,因为您需要配置和头文件来进行内核源代码构建。使用make modules_prepare

然后运行make -C <full_path_to_kernel_source> M=$PWD来构建模块。

请查看here以获取更多详细信息。