Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2116833
  • 博文数量: 438
  • 博客积分: 3871
  • 博客等级: 中校
  • 技术积分: 6075
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-10 00:11
个人简介

邮箱: wangcong02345@163.com

文章分类

全部博文(438)

文章存档

2017年(15)

2016年(119)

2015年(91)

2014年(62)

2013年(56)

2012年(79)

2011年(16)

分类: C/C++

2011-11-01 20:14:02

一.嵌入式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

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