Linux编译错误:目标'vmlinux'的配方失败

时间:2016-04-21 17:08:42

标签: c linux linux-kernel

我是linux新手。我正在尝试向linux内核4.4.1添加系统调用。但是当我运行时,它会给我以下错误:

init/built-in.o: In function `populate_rootfs':
/home/xxx/kernel/linux-4.4.1/init/initramfs.c:610: undefined reference to `__initramfs_size'
/home/xxx/kernel/linux-4.4.1/init/initramfs.c:624: undefined reference to `__initramfs_size'
Makefile:927: recipe for target 'vmlinux' failed
make: *** [vmlinux] Error 1

所做的更改是:

  • sys_hello中定义了一个新系统调用hello.c,并为系统调用添加了Makefile,并将其放在名为hello的文件夹中。

  • 将内核Makefile更改为告诉编译器我们的新系统调用(sys_hello())的源文件存在于hello目录中。 core-y + = usr / hello /

  • 将新系统调用(sys_hello())添加到系统调用表(syscall_64.tbl文件)

    326    common    hello    sys_hello
    
  • 在系统调用头文件(sys_hello())中添加了新的系统调用(syscalls.h)。

    asmlinkage long sys_hello(int *num);
    
  • Ran make:

    make menuconfig
    make
    

知道如何修复错误并编译内核吗?

0 个答案:

没有答案