注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

W_中原的博客笔记

通知:新博客日志将更新到个人站点:http://www.zhgyuan.cn/

 
 
 

日志

 
 

HelloWorld linux驱动  

2014-04-07 23:07:24|  分类: Linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
新建一个C文件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,HelloWorld!\n");

}

module_init(hello_init);
module_exit(hello_exit);
HelloWorld linux驱动 - W_中原 - 汪中原的博客笔记

编写Makefile:(注意TAB键与空格键的区别)
obj-m := hello.o
KERNELDIR :=/lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:  
$(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) modules
install:
insmod hello.ko
uninstall:
rmmod hello

clean:
$(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) clean
rm -f *.o *.ko *.mod.c .hello*
 HelloWorld linux驱动 - W_中原 - 汪中原的博客笔记

现在可以make了:
编译:
#make
安装:
#make install
卸载:
#make uninsall
清除编译产生的文件:
#make clean
HelloWorld linux驱动 - W_中原 - 汪中原的博客笔记

输入指令dmesg就看到了执行后的结果:
HelloWorld linux驱动 - W_中原 - 汪中原的博客笔记
当然也可以CTRL + ALT + F5到控制台模式看结果(ALT + F7返回)
 

移植到ARM平台只需要修改makefile文件就行了:
obj-m := hello.o
#KERNELDIR :=/lib/modules/$(shell uname -r)/build
KERNELDIR :=/opt/kernel
PWD := $(shell pwd)
default:  
$(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-linux-
install:
insmod hello.ko
uninstall:
rmmod hello

clean:
$(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) clean
rm -f *.o *.ko *.mod.c .hello*
HelloWorld linux驱动 - W_中原 - 汪中原的博客笔记
 
 
  评论这张
 
阅读(22)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017