2012-09-05 8 views
-1

컴파일 환경으로 Ubuntu 12.04가 있습니다.Android 용 LKM을 컴파일 할 수 없습니다.

나는 또한 시안 모드 커널에게의 소스 코드를 가지고 (Github의에서 얻을 : https://github.com/CyanogenMod/cm-kernel)

내가 (리눅스 용) 안드로이드 NDK의 R5c는

에서 툴체인을 사용 나는 다음과 같은 코드가 있습니다 :

: 이것은 내 메이크
#include <linux/kernel.h> 
#include <linux/module.h> 
#include <asm/unistd.h> 

asmlinkage ssize_t (*orig_open)(const char *pathname, int flags); 

asmlinkage ssize_t hooked_open(const char *pathname, int flags) { 
    printk(KERN_INFO "SYS_OPEN: %s\n", pathname); 
    return orig_open(pathname, flags); 
} 

void **sys_call_table; 

static int __init root_start(void) { 
    sys_call_table= (void *) 0x0030084; 

    orig_open = sys_call_table[__NR_open]; 
    sys_call_table[__NR_open] = hooked_open; 
    return 0; 
} 

static void __exit root_stop(void) { 
    sys_call_table[__NR_open] = &orig_open; 
} 

module_init(root_start); 
module_exit(root_stop); 

입니다

export PATH=$PATH:/home/hongnhat/lkm/android-ndk-r5c/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin 
cd CyanogenMod-cm-kernel-2a32a61 
make oldconfig && make prepare 
cd .. 
make 

결과는 다음과 같습니다 : 그것은 인식 할 수없는 옵션 '-EL'오류가 발생하는 이유

make -C CyanogenMod-cm-kernel-2a32a61/ M=/home/hongnhat/lkm ARCH=arm CROSS_COMPILE=arm-eabi- modules 
make[1]: Entering directory `/home/hongnhat/lkm/CyanogenMod-cm-kernel-2a32a61' 

    WARNING: Symbol version dump /home/hongnhat/lkm/CyanogenMod-cm-kernel-2a32a61/Module.symvers 
      is missing; modules will have no dependencies and modversions. 

    CC [M] /home/hongnhat/lkm/root.o 
as: unrecognized option '-EL' 
make[2]: *** [/home/hongnhat/lkm/root.o] Error 1 
make[1]: *** [_module_/home/hongnhat/lkm] Error 2 
make[1]: Leaving directory `/home/hongnhat/lkm/CyanogenMod-cm-kernel-2a32a61' 
make: *** [all] Error 2 

모르겠어요

obj-m += root.o 

all: 
    make -C CyanogenMod-cm-kernel-2a32a61/ M=$(PWD) ARCH=arm CROSS_COMPILE=arm-eabi- modules 

내 단계는 터미널에 컴파일. 제게 문제를 해결하는 데 도움이되도록 노력하고 있습니다. 다른 것을 사용해 보았습니다. gcc 버전 (4.4.0, 4.4.3, 4.6)이지만 사용하지 않으려 고 시도했습니다.

답변

1

소싱 멘토에서 GCC로 컴파일 해보십시오. 나는 안드로이드 용 리눅스 커널을 컴파일하기 전에 그것을 시도했다. 어쩌면 도움이 될지도 모른다.

관련 문제