我想添加一個系統調用到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.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步驟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
如何解決呢?
我該怎麼辦? – hamid
使用'make menuconfig'或類似的方法仔細檢查並比較你的內核配置與原來的配置 – mfro