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

Linux 添加到内核的系统调用的未定义引用,linux,linux-kernel,kernel,system-calls,Linux,Linux Kernel,Kernel,System Calls,将系统调用添加到内核后,我尝试编译内核。 它运行了2个小时,最后抛出 未定义的引用 你知道发生了什么吗 内核3.9.3 遵循的步骤是- 从中获取内核代码。 wgethttp://www.kernel.org/pub/linux/kernel/v3.0/linux-3.3.1.tar.bz2 使用命令tar xvfj XXX将其上传到文件夹示例: /root/kerneltar xvfjlinux-3.3.1.tar.bz2 编辑文件/root/kernel/linux-3.3.1/arch

将系统调用添加到内核后,我尝试编译内核。
它运行了2个小时,最后抛出

未定义的引用

你知道发生了什么吗

内核3.9.3

遵循的步骤是-

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

  • 使用命令
    tar xvfj XXX
    将其上传到文件夹示例:
    /root/kerneltar xvfjlinux-3.3.1.tar.bz2

  • 编辑文件
    /root/kernel/linux-3.3.1/arch/x86/syscalls/syscall_64.tbl
    并添加新行
    312 64 husky1 sys_husky1

  • 编辑文件
    /root/kernel/linux-3.3.1/include/linux/syscalls.h
    在声明行
    #endif
    之前添加新函数
    asmlong-sys\u-husky1(int-fd)

  • /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


  • 在syscall_64.tbl文件中搜索“sys_hello_rana”。我猜您在syscall表中将系统调用命名为“sys\u hello\u rana”,但在定义它时使用了不同的名称(sys\u husky1)