前些时候入手了一个智器的smart Q5。说实话把它当成一个娱乐的工具的话那还真有些费劲!不过我是把它当作个linux学习的测试工具来用的!很不错的东西了!!同时也佩服一下智器的开源精神,开放了内核的源码!

    最近想弄弄linux的驱动程序,(菜鸟哦!!)以后用redhat 2.4内核时也弄个驱动的hello world!可2.6的内核驱动程序编译方式变了!建议要先有linux内核树,然后才能编译驱动!(不过好像字符设备的驱动也可以不构建树,直接有头文件就可以编译!)

    我搞照网上的方法,弄了好长时间都编译出一大堆错,搞不懂!!晕!!后来下了本linux设备驱动程序第三版在它里面说到驱动的编译方法!一下子就搞定了!哈。高兴下!!

 

第一步:构建内核树(说白了就是编译下linux的内核!我的理解...哈!)

第二步:写好驱动程序源码比如hello.c

#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
           printk(KERN_ALERT "Hello, world\n");
           return 0;
}
static void hello_exit(void)
{
          printk(KERN_ALERT "Goodbye, cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);

第三步:写好Makefile文件

obj-m := hello.o

第四步:执行 make ARCH=arm CROSS_COMPILE=/usr/local/openmoko/arm/bin/arm-angstrom-linux-gnueabi- -C /home/fscience/smartkernel/ M=`pwd`

搞定。。。。不出意外就可以看到你的hello.ko了!!

posted on 2009-12-03 14:13  fscience  阅读(806)  评论(0编辑  收藏  举报