未定义的系统调用引用添加到内核

时间:2013-09-07 19:14:37

标签: linux linux-kernel kernel system-calls

将系统调用添加到内核后,我尝试编译内核 它运行了2个小时,最后抛出了下面提到的错误[screenshot]

未定义的引用

enter image description here

知道发生了什么。

内核3.9.3

遵循的步骤是 -

从www.kernel.org获取内核代码。 wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.3.1.tar.bz2

将命令'tar xvfj XXX'上传到文件夹例如:/ root / kernel tar xvfj linux-3.3.1.tar.bz2

编辑文件“/root/kernel/linux-3.3.1/arch/x86/syscalls/syscall_64.tbl”添加新行

312 64 husky1 sys_husky1

Eidt文件“/root/kernel/linux-3.3.1/include/linux/syscalls.h”添加新函数声明 asmlinkage long sys_husky1(int fd);

在“#endif”行之前

在“/root/kernel/linux-3.3.1/arch/x86/kernel”下添加一个新的c文件(我使用的是x86 CPU)示例:

编辑“/root/kernel/linux-3.3.1/arch/x86/kernel/Makefile”添加一个新行“obj-y + = husky.o”

转到/root/kernel/linux-3.3.1文件夹并运行命令“make -j8”

1 个答案:

答案 0 :(得分:5)

在syscall_64.tbl文件中搜索“sys_hello_rana”。我猜你在syscall表中将你的系统调用命名为“sys_hello_rana”,但在你定义它时使用了不同的名称(sys_husky1)。