一.嵌入式linux系统中内核模块的编译
1. 需要导出环境变量ARCH 和 CROSS_COMPILE,为了方便还需要导出LINUXROOT
-
#env.sh
-
export ARCH=arm
-
export CROSS_COMPILE=${TOOL_CHAIN_DIR}/target/bin/arm-hisiv200-linux-
-
export LINUXROOT=${HISI_SDK_DIR}/source/osdrv/kernel/linux-2.6.35
2. 在Makefile中
-
# Makefile
-
obj-m:= hello.o
-
KDIR:=${LINUXROOT}
-
PWD:=$(shell pwd)
-
-
default:
-
$(MAKE) -C $(KDIR) M=$(PWD) modules
-
-
install:
-
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules_install
-
clean:
-
rm -f *.mod.c *.ko *.o Module.markers modules.order Module.symvers
3. 用的时候
source env.sh
make
二. MTK平台下内核模块的编译
1.在MTK平台下编译内核module
a. 将helloworld的内核模块放在kernel/drivers目录下
b. 编译
cong@msi:/work/mtk/6572$ ./mk r k /work/mtk/6572/kernel/drivers/hello/
c. 清理
cong@msi:/work/mtk/6572$ ./mk c k /work/mtk/6572/kernel/drivers/hello/
注:
a. 不用修改hello的上层目录Makefile,直接编译就行
b. 命令中的路径要写绝对路径,用相对路径会报错 invalid KMOD_PATH
阅读(3775) | 评论(0) | 转发(2) |