CentOS 5.4 添加系统调用函数及内核编译

转载Andy的博客,原文也没有图,不知道怎么回事。

首先,建议系统直接装,而不是用VM 等虚拟机装。我的很多朋友用虚拟机装的编译内核时老是出现问题。估计是虚拟机的问题。

下载内核

编译Linux内核,首先是在官方网站下载Linux内核,我下的是目前最稳定的最新版本:2.6.28。是一个完整版。

解压内核

把下载的内核拷贝到目录usr/src/下。然后解压:tar -jxvf linux-2.6.28.tar.bz2.

解压完后,在该文件夹下,会产生一个新的文件linux-2.6.28

添加系统调用。

这一步是很关键的,如果错误了,就不能在我编译的内核里打印我的大名了。这里需要修改三个文件的内容:

(1)首先是kernel/sys.c文件。在这个文件末尾添加系统调用的实现函数:

asmlinkage long sys_mysyscall(int number)

{

printk(KERN_ALERT “This is my syscall。\n”);

return number;

}

(2)在arch/x86/kernel/syscall_table_32.S中添加:.long sys_mysyscall

(3) /usr/src/linux-2.6.29.1/arch/x86/include/asm

unistd_32.h中添加:#define __NR_mysyscall 333 这一步是添加系统调用的入口参数。

清除以前编译的内核文件。

修改完以上三个文件就可以了。接下来是激动人心的时刻。要开始编译系统内核了。

在编译内核之前,可以先用如下命令make mrproper清除以前编译的东西。

定制内核。

我直接选择 make oldconfig.用以前的内核配置。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwpdsf.html