buzaiyouyu 发表于 2011-2-11 15:00:39

linux驱动的编译问题

请教一下,怎样才能在宿主机上单独编译能运行在arm上的驱动模块呢,然后在开发板中用NFS来获取并运行驱动,谢谢了

buzaiyouyu 发表于 2011-2-11 20:34:06

运行环境:linux-2.6.12
  编译环境:arm-linux-gcc(3.4.1)
  运行平台:AT91RM9200
  一、编写模块程序testmodule.c
  
  #include <linux/init.h>
  #include <linux/kernel.h>
  #include <linux/module.h>
  static int hello_init(void)
  {
   printk("Hello! This is the first test module!\n");
   return 0;
  }
  static void hello_exit(void)
  {
  printk("Module exit! Bye Bye!\n");
   return;
  }
  module_init(hello_init);
  module_exit(hello_exit);
  MODULE_LICENSE("GPL");
  二、编写Makefile
  
  obj-m := testmodule.o
  KDIR := /src/linux-2.6.12
  PWD := $(shell pwd)
  default:
  $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
  #################################################
  注意:"$(MAKE)"前面要空一个"Tab"
  KDIR 为内核的路径,这个内核要与AT91RM9200运行的内核先同(编译器也要相同的,要不运行不了)。
  三、编译
  在linux下执行:make CC=/src/3.4.1/bin/arm-linux-gcc
  /*注释:/src/3.4.1/bin/arm-linux-gcc 为交叉编译环境的路径*/
  生成testmodule.ko
  四、运行
  1、将testmodule.ko通过串口或者网口下载到AT91RM9200的板子上
  2、执行:chmod +x testmodule.ko修改模块的属性将其设为可执行文件
  3、执行:insmod testmodule.ko
  Hello! This is the first test module!
  执行:rmmod testmodule.ko
页: [1]
查看完整版本: linux驱动的编译问题