码迷,mamicode.com
首页 > 其他好文 > 详细

第一个hello word 驱动载入失败--------

时间:2017-07-03 22:33:20      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:pwd   源代码   ati   cpp   term   shell   int   size   inf   

                   今天尝试自己载入第一个驱动模块,依据惯例hello word 然后失败了,如今说明我的操作过程。请个位看看。

首先我的内核版本号:

技术分享

模块代码与MAKEFILE

     

#include<linux/init.h>
#include<linux/module.h>

MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
    printk("hello,world\n");
    return 0;
}

static void hello_exit(void)
{
    printk("GOODBYE,world\n");
}

module_init(hello_init);
module_exit(hello_exit);

obj-m +=Hello.o  
CURRENT_DIR:=$(shell pwd)  
KERNEL_DIR:=$(shell uname -r)  
KERNEL_PATH:=/usr/src/kernels/$(KERNEL_DIR)  
  
all:  
	    make -C $(KERNEL_PATH) M=$(CURRENT_DIR) modules  
clean:  
	    make -C $(KERNEL_PATH) M=$(CURRENT_DIR) clean  

编译通过:

  技术分享

      

   这是编译的结果。没有报错。

   首先查看了/usr/src 这里并没有源代码树,所以运行  yum install kernel-devel    命令安装源代码树

   可是安装完毕后是4.0.7 版本号内核源代码树,可是如今内核版本号是4.0.6 于是更新yum update

   可是显示已经更新4.0.7 版本号。又一次启动后还是4.0.6   

   此处第一次脑洞大开。将/usr/src/ 下最新的4.0.7 源代码树名称更改为 4.0.6

   可是modinfo Hello.ko    的vermagic  还是4.0.7

   于是更改/usr/src/kernels/4.0.6-200.fc21.x86_64/include/linux/vermagic.h   文件

   本来是:

       技术分享

     更改为:

          技术分享

   

       强制给一个和PC 相同的内核版本

技术分享

这是又一次编译后的结果vermagic 已经改变

然后再次尝试载入:

技术分享

                        

然后载入再次失败

请各位看看究竟是哪里出错?

第一个hello word 驱动载入失败--------

标签:pwd   源代码   ati   cpp   term   shell   int   size   inf   

原文地址:http://www.cnblogs.com/zhchoutai/p/7112883.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!