第一个hello word 驱动加载失败--------
2015-07-16 20:14
323 查看
今天尝试自己加载第一个驱动模块,根据惯例hello word 然后失败了,现在说明我的操作过程,请个位看看。
首先我的内核版本:
模块代码与MAKEFILE
编译通过:
这是编译的结果,没有报错。
首先查看了/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 已经改变
然后再次尝试加载:
然后加载再次失败
请各位看看到底是哪里出错?
首先我的内核版本:
模块代码与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 驱动加载失败--------
- MMO可见格子算法
- 我的Android进阶之旅------>Android中的布局优化 include、merge 、ViewStub
- fio使用指南
- python yaml使用
- 5.osg中用顶点绘制球体并贴上地球纹理
- ffmpeg基本用法(转)
- POJ - 2411 Mondriaan's Dream (状态压缩)
- GDB 多线程调试基本命令
- Codeforces Round #277.5 (Div. 2)——C贪心—— Given Length and Sum of Digits
- java的构造器和void方法的区别
- 习题1-6 三角形(triangle)
- [转]Xcode快捷键
- UVA - 1419 Ugly Windows
- linux_c 网络开发日记(1)
- 每天一个Linux命令(sleep&usleep)
- HDU 1533 Going Home【最小费用流|KM算法】
- 设计模式之单例模式
- LeetCode---(154)Find Minimum in Rotated Sorted Array II
- Drawable和Bitmap转换