2014-09-13 2 views
0

나는 버추얼 박스에서 실행되는 우분투 14.04 64 비트 MAC을 맥북 프로. 나는 실행하고 싶은 hello_kernel.c에 다음과 같은 것을 가지고있다.i586-poky-linux :`arch/x86/tools/relocs '에 필요한`arch/x86/tools/relocs.c'에 대한 규칙이 없습니다.

#include <linux/module.h> 
#include <linux/kernel.h> 
#include <linux/init.h> 

static int __init enter(void) 
{ 
    printk(KERN_ALERT "Hello Kernel Galileo\n"); 
    return 0; 
} 

static void __exit exit(void) 
{ 
    printk(KERN_ALERT "Bye kernel Galileo\n"); 
    return; 
} 

module_init(enter); 
module_exit(exit); 

내가 /home/esp/SDK/i586-poky-linux 년에는 i586-비좁은 - 리눅스를 설치하고 여기 내 Makefile입니다했다.

obj-m:= hello_kernel.o 

ARCH=x86 
CROSS_COMPILE=i586-poky-linux- 

all: 
    make -C /home/esp/SDK/sysroots/i586-poky-linux/usr/src/kernel M=$(PWD) modules 

clean: 
    rm -fr *.o 
    rm -fr *.ko 
    rm -fr *.mod.c 
    rm -fr *.order 
    rm -fr *.symvers 

sudo make을 실행하면 다음과 같은 오류가 발생합니다.

make[2]: Nothing to be done for `all'. 
make[2]: *** No rule to make target `arch/x86/tools/relocs.c', needed by `arch/x86/tools/relocs'. Stop. 
make[1]: *** [archscripts] Error 2 
make[1]: Leaving directory `/home/esp/SDK/sysroots/i586-poky-linux/usr/src/kernel' 

나는 ~/SDK/sysroots/i586-poky-linux/usr/src/kernel/arch/x86/tools/에서 relocsrelocs.c 표시되지 않습니다.

답변

0

해결책을 찾았습니다! i586-poky-linux 커널 설치시 일부 스크립트가 누락되었습니다. 이러한 스크립트를 생성하려면 sudo make scriptsSDK/sysroots/i586-poky-linux/usr/src/kernel에 실행하십시오. 이렇게하면 필요한 스크립트가 생성되고 모든 것이 제대로 작동합니다. :)

관련 문제