如何解决' make:*** [modules_install]错误1'编译linux内核时出错?

时间:2016-03-03 18:04:21

标签: c linux linux-kernel

我想添加一个系统调用到Linux内核3.14.61,打印' hello world'。
首先我下载了​​内核3.14.61源代码,然后执行了这些步骤。

1-我将316 64 hello sys_hello行添加到arch/x86/syscalls/syscall_64.tbl文件。

2-然后我将asmlinkage long sys_hello(void);行添加到include/linux/syscalls.h文件。

3-我在hello.c中创建了一个名为kernel的新文件。 hello.c文件的地址为kernel/hello.c,我将其放入:

#include <linux/kernel.h>

asmlinkage long sys_hello(void) {
    printk("hello world\n");
    return 0;
}

4-然后我在hello.o的末尾将kernel/Makefile添加到obj-y,如下所示:

obj-y     = fork.o exec_domain.o panic.o \
    cpu.o exit.o itimer.o time.o softirq.o resource.o \
    sysctl.o sysctl_binary.o capability.o ptrace.o timer.o user.o \
    signal.o sys.o kmod.o workqueue.o pid.o task_work.o \
    extable.o params.o posix-timers.o \
    kthread.o sys_ni.o posix-cpu-timers.o \
    hrtimer.o nsproxy.o \
    notifier.o ksysfs.o cred.o reboot.o \
    async.o range.o groups.o smpboot.o hello.o

5-经过前4个步骤后,我尝试编译自定义内核。所以我逐个运行这些命令:

‫‪make‬‬ ‫‪localmodconfig‬‬
make oldconfig
‫‪make‬‬ ‫‪–j2‬‬
‫‪sudo‬‬ ‫‪make‬‬ ‫‪modules_install‬‬

但是当我运行最后一个命令(sudo make modules_install)时,我看到了这个错误:

The present kernel configuration has modules disabled.
Type 'make config' and enable loadable module support.
Then build a kernel with module support enabled.

make: *** [modules_install] Error 1

我该如何解决?

1 个答案:

答案 0 :(得分:1)

显然,您的内核配置已禁用可加载模块,因此安装它们没有多大意义。

您的内核配置可能有问题。