转自: http://blog.csdn.net/suntao222/article/details/7457886
 

在Linux内核中单独编译KO文件

在当前模块目录下创建Makefile: obj-m := mxt224.o

然后再该模块目录下打开终端输入:make -C /home/kernel_path/ M=$(pwd) modules

/home/kernel_path/ 是内核所在路径

或者用该makefile:

[plain]  view plain copy
  1. #set KERNELDIR and CROSS_COMPILE path yourself  
  2. #  
  3. ifneq   ($(KERNELRELEASE),)   
  4.  obj-m   :=   mxt224.o  
  5. else   
  6.  KERNELDIR   :=   /home/stone/stone_share/Project/t11/t11-2.3/kernel  
  7.  #KERNELDIR   :=   /home/bee/bee_share/mini6410/linux-2.6.36-android/linux-2.6.36-android  
  8.  #KERNELDIR   :=   /opt/mini6440/linux/linux-2.6.36  
  9.  PWD   :=   $(shell pwd)  
  10.  #CROSS_ARCH := ARCH=arm CROSS_COMPILE=/usr/local/arm/4.5.1/bin/arm-linux- #6410-linux-2.6.36  
  11.  CROSS_ARCH := ARCH=arm CROSS_COMPILE=/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-  
  12. default:   
  13.  $(MAKE) $(CROSS_ARCH) -C  $(KERNELDIR)   M=$(PWD)   modules   
  14.   
  15. install:   
  16.  $(MAKE)  $(CROSS_ARCH) -C  $(KERNELDIR)   M=$(PWD)   modules_install   
  17. clean:   
  18.  rm   -rf   *.o   *~   core   .depend   .*.cmd   *.ko   *.mod.c   .tmp_versions *.symvers *.d *.markers *.order  
  19.   
  20. .PHONY:   modules   modules_install   clean  main  
  21. endif  
Logo

更多推荐