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

今天尝试自己加载第一个驱动模块,根据惯例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 已经改变

然后再次尝试加载:

然后加载再次失败

请各位看看到底是哪里出错?

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-12 14:46:29

第一个hello word 驱动加载失败--------的相关文章

多功能PCIE交换机之八:窗口扩展和驱动加载的常见问题

结合本人在PCIE NTB/DMA最近的实际工作,总结了地址转换窗口扩展和驱动加载过程中碰到的主要问题和解决办法. 0.系统启动后看不到NTB设备 需要检查BIOS,在PCIE设置里面NTB芯片是否使能.这是因为针对不同的应用场景和客户需要,BIOS里面通常添加了Enable/Disable NTB的选项. 1.如何扩展地址转换窗口 a.确定系统要求的地址转换窗口的范围和大小: b.确保系统要求的地址转换窗口的范围和大能够被BIOS支持 c.从可用的BAR2/3和BAR4/5中选择未使用的或者可

AngularJS中如果ng-src 图片加载失败怎么办

我们知道AngularJS加载图片的方法是用加ng-src标签,例如: <img ng-src="{{currentUrl}}"/> 其中currentUrl为图片地址,如果图片正常能显示,那这么使用一点问题没有,但是,如果图片加载失败了(例如该图片已经不存在,从而出现404错误),在该放图片的地方就会出现一个难看的图片加载失败图标,如果想把这个图标换成你自定义的图片,可以如下这么做: HTML: <img ng-src="{{currentUrl}}&qu

另类阻止驱动加载

标 题: [分享][原创]另类阻止驱动加载 作 者: czcqq 时 间: 2010-05-04,22:27:47 链 接: http://bbs.pediy.com/showthread.php?t=112338 关于驱动的加载大概有几种方法 1 在WINDOWS下动态加载 2 在WINDOWS启动的时候加载 3 感染系统文件 对于 在WINDOWS启动的时候加载 和 感染系统文件 我们暂时不讨论,玩么只讨论动态加载 一般的加载流程,是这样的:打开服务管理器->创建服务->启动服务->

老调重弹:JDBC系列 之 &lt;驱动加载原理全面解析&gt;

前言 最近在研究Mybatis框架,由于该框架基于JDBC,想要很好地理解和学习Mybatis,必须要对JDBC有较深入的了解.所以便把JDBC 这个东东翻出来,好好总结一番,作为自己的笔记,也是给读者一个参考---以下是本文的组织结构,读者可以点击上面的目录查看: 概述 一般情况下,在应用程序中进行数据库连接,调用JDBC接口,首先要将特定厂商的JDBC驱动实现加载到系统内存中,然后供系统使用.基本结构图如下: 驱动加载入内存的过程 这里所谓的驱动,其实就是实现了java.sql.Driver

老调重弹:JDBC系列之&lt;驱动加载原理全面解析) ----转

  最近在研究Mybatis框架,由于该框架基于JDBC,想要很好地理解和学习Mybatis,必须要对JDBC有较深入的了解.所以便把JDBC 这个东东翻出来,好好总结一番,作为自己的笔记,也是给读者一个参考--- 概述 一般情况下,在应用程序中进行数据库连接,调用JDBC接口,首先要将特定厂商的JDBC驱动实现加载到系统内存中,然后供系统使用.基本结构图如下: 驱动加载入内存的过程 这里所谓的驱动,其实就是实现了java.sql.Driver接口的类.如oracle的驱动类是 oracle.j

DLL加载失败的情况分析

场景说明: 将断点定位在上面的HMODULE instance = ::LoadLibrary(filename.c_str());函数,当加载ueroutealg.dll的时候,发现句柄为空,然后通过添加如下代码:DWORD dwError = GetLastError(); 在该函数的背后,收集到加载失败的错误码:[127]-找不到指定的程序.点击VS菜单,然后选择工具,点击错误查找,输入127. 解决分析: 1)  一般的情况是程序采用了动态加载的方式来运行,在加载DLL的过程,发现程序需

Android网络状态获取和WebView的加载完成,加载失败监听

在我们的项目中,经常需要对WebView中加载的内容是否完成或者是否加载失败进行判别,这两天写的一个小应用就涉及到了这一点. WebView的实质就是loadUrl,所以前提是设备接入网络,那么这个如何判断呢?看代码吧: // 网络状态 public boolean isNetworkConnected(Context context) { if (context != null) { ConnectivityManager mConnectivityManager = (Connectivit

java访问access数据库驱动加载不正确

前几天新装了系统,做了一个从access数据库中查询内容的程序,运行的时候总是提示数据库的驱动加载不正确,网上百度的结果都是说电脑没有配置odbc数据源,或者是Driver后面空格的问题,可是我检查了之后,这些都没有错: 后来发现是新导入的java工程,程序默认了eclipse的jre system library,我就把这个默认的修改成我电脑配置的jdk后,再次运行,程序就正常了

js 图片加载失败处理方法

在项目中不可避免会用到图片,尤其是列表,有时候图片会加载失败:这样就会显示一个很难看的坏图片缩略图:下面介绍两种方法,解决这个问题: 1.如果在你的项目中有引入jQuery插件,你可以使用error([[data],fn])这个函数: $("img").error(function(){ //当图片加载失败时,你要进行的操作 //$(this).attr('src','images/no_pic.jpg'); }); 2.如果项目中没有jQuery这样的插件,可以使用HTML的DOM事