Chinaunix首页 | 论坛 | 博客
  • 博客访问: 455033
  • 博文数量: 89
  • 博客积分: 1126
  • 博客等级: 少尉
  • 技术积分: 1432
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-11 23:37
文章分类

全部博文(89)

文章存档

2016年(6)

2015年(2)

2014年(1)

2013年(3)

2012年(23)

2011年(54)

分类: 嵌入式

2011-06-12 13:09:36

    最近学习编写驱动程序,编写驱动,首先要构建内核树,记得以前编写驱动时,直接指定了内核源码的位置,但是在ubuntu上内核版本和源码版本不一致,编译时出了很多错误。在网上搜了一下,才明白,编写模块驱动,首先要构建内核树。ubuntu上不带内核源码,一般的方法是下载内核重新编译一遍,构建内核树。但是这样做有点麻烦,又网上搜集一下,发现ubuntu上自带内核树,在/lib/modules 目录下。

  1. root@wang:/lib/modules/2.6.35-22-generic/build# ls
  2. arch crypto drivers fs init Kbuild lib mm net scripts sound tools usr
  3. block Documentation firmware include ipc kernel Makefile Module.symvers samples security source ubuntu virt
  4. root@wang:/lib/modules/2.6.35-22-generic/build# pwd
  5. /lib/modules/2.6.35-22-generic/build
Makefile 可以这样写:
  1. root@wang:/work/wanghuan/drives# cat Makefile -n
  2.      1    #===============================================================================
  3.      2    # Filename: Makefile
  4.      3    # Description:
  5.      4    #
  6.      5    # Author: wanghuan
  7.      6    # Company:
  8.      7    #
  9.      8    #==============================================================================
  10.      9    
  11.     10    obj-m :=cdev.o #目标文件
  12.     11    KDIR :=/lib/modules/2.6.35-22-generic/build #内核路径
  13.     12    PWD := $(shell pwd) #模块源文件路径
  14.     13    all:    
  15.     14        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
  16.     15        @rm -rf *.mod.*
  17.     16        @rm -rf .*.cmd
  18.     17        @rm -rf *.o
  19.     18        @rm -rf Module.*
  20.     19        chmod a+x cdev.ko
  21.     20    clean:
  22.     21        rm -rf *.ko
                                 
阅读(1203) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~