-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)이지만 사용하지 않으려 고 시도했습니다.