红联Linux门户
Linux帮助

第一个hello word驱动加载失败

发布时间:2015-09-22 09:46:11来源:linux网站作者:zmrlinux

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


编译通过:

第一个hello word驱动加载失败


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

首先查看了/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文件

本来是:

第一个hello word驱动加载失败

更改为:

第一个hello word驱动加载失败

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

第一个hello word驱动加载失败

这是重新编译后的结果vermagic 已经改变

然后再次尝试加载:

第一个hello word驱动加载失败

然后加载再次失败。


Linux下安装JDK并测试开发“Hello World!”:http://www.linuxdiyf.com/linux/12356.html