2016-03-03 101 views
1

我想添加一個系統調用到linux內核3.14.61,打印'hello world'。 首先我下載了​​內核3.14.61的源代碼,然後按照以下步驟操作。在編譯linux內核時如何解決'make:*** [modules_install]錯誤1'錯誤?

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

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

3-我在kernel中創建名爲hello.c的新文件。 hello.c文件的地址是kernel/hello.c。我把

#include <linux/kernel.h> 

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

在裏面。

4-然後我添加hello.okernel/Makefileobj-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步驟i試圖編譯定製內核。所以我跑這些命令 一個接一個:

‫‪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

我該怎麼辦? – hamid

+0

使用'make menuconfig'或類似的方法仔細檢查並比較你的內核配置與原來的配置 – mfro