Chinaunix首页 | 论坛 | 博客
  • 博客访问: 317306
  • 博文数量: 239
  • 博客积分: 481
  • 博客等级: 下士
  • 技术积分: 1170
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-15 17:28
文章分类

全部博文(239)

文章存档

2014年(13)

2013年(6)

2012年(122)

2011年(98)

分类:

2012-04-27 09:18:27

一.嵌入式linux系统中内核模块的编译
1. 需要导出环境变量ARCH 和 CROSS_COMPILE,为了方便还需要导出LINUXROOT
  1. #env.sh
  2. export ARCH=arm
  3. export CROSS_COMPILE=${TOOL_CHAIN_DIR}/target/bin/arm-hisiv200-linux-
  4. export LINUXROOT=${HISI_SDK_DIR}/source/osdrv/kernel/linux-2.6.35
2. 在Makefile中
  1. # Makefile
  2. obj-m:= hello.o
  3. KDIR:=${LINUXROOT}
  4. PWD:=$(shell pwd)

  5. default:
  6. $(MAKE) -C $(KDIR) M=$(PWD) modules

  7. install:
  8. $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules_install
  9. clean:
  10. 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

阅读(2828) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~