第一个驱动helloworld module加载i…
来源:互联网 发布:联合国工作 知乎 编辑:程序博客网 时间:2024/06/06 16:34
在使用命令ismod helloworld.ko加载编译成功的模块helloworld.ko时出现错误
一般出错信息被记录在文件/var/log/messages中
[root@hailiang linux-2.6.15.5]# cat /var/log/messages|tail
通过命令看一下模块的相关信息
[root@hailiang tmp]# modinfohelloworld.ko
filename:
alias:
description:
author:
depends:
vermagic:
#include<linux/module.h>
#include<linux/vermagic.h>
#include<linux/compiler.h>
MODULE_INFO(vermagic,VERMAGIC_STRING);找到这个符号,
打开文件/usr/src/kernels/2.6.27.5-117.fc10.i686/include/linux/vermagic.h
#include<linux/utsrelease.h>
#include<linux/module.h>
#ifdef CONFIG_SMP
#define MODULE_VERMAGIC_SMP "SMP "
#else
#define MODULE_VERMAGIC_SMP ""
#endif
。。。。。。。。。。。。。。。。。。。
#ifdef CONFIG_MODVERSIONS
#defineMODULE_VERMAGIC_MO
DVERSIONS "modversions "
#else
#define MODULE_VERMAGIC_MODVERSIONS ""
#endif
#ifndef MODULE_ARCH_VERMAGIC
#define MODULE_ARCH_VERMAGIC ""
#endif
#defineVERMAGIC_STRING
从这里看出vermagic中多出来的字符modversions是由于编译内核时选上了“”选项的原因,(其实这是因为在编译helloworld模块前,自己曾试图重新编译内核所致:cd /usr/src/kernel..
[root@hailiang2.6.27.5-117.fc10.i686]# make menuconfig
scripts/kconfig/mconf arch/x86/Kconfig
#
# configuration written to .config
#
*** End of Linux kernelconfiguration.
*** Execute 'make' to build the kernel or try 'makehelp'.
[root@hailiang2.6.27.5-117.fc10.i686]# make
scripts/kconfig/conf -s arch/x86/Kconfig
make[1]: *** No rule to make target`missing-syscalls'.
make: *** [prepare0] Error 2
)见下图
然后再重新编译helloworld.ko模块,然后再加载helloworld成功。
(2)在这里直接modprobe
FATAL: Module helloworld notfound.
这是因为
使用man modprobe看
DESCRIPTION
modprobe会自动在/lib/modules/'uname-r'下寻找模块加载,将helloworld.ko拷到/lib/modules 下然后再执命令 modprobe helloworld发现还是找不到,从man modprobe
看出还需要依赖命令:depmod生成的module.dep
- 第一个驱动helloworld module加载i…
- 第一个驱动helloworld module加载i…
- 第一个驱动helloworld module加载insmod “Invalid module format ”问题解决
- 第一个驱动之helloworld
- 第一个Uefi驱动--helloworld
- 第一个驱动之helloworld
- linux第一个驱动之helloworld
- 第一个hello world驱动模块
- ubuntu12.04下实现第一个设备驱动模块HelloWorld
- 第一个hello word 驱动加载失败--------
- 编译第一个驱动,加载点亮LED
- HelloWorld模块加载--驱动
- 加载驱动module
- 第一个java HelloWorld
- 第一个模块HelloWorld
- 第一个helloworld程序
- helloworld第一个驱动程序
- D3D 第一个HelloWorld
- android build
- android build
- Android project 的常用编译方法
- Android project 的常用编译方法
- 第一个驱动helloworld module加载i…
- 第一个驱动helloworld module加载i…
- Android JNI开发入门之一
- Android JNI开发入门之一
- Android JNI开发入门之二
- Android JNI开发入门之二
- Android HAL实践(一):Mini6410…
- Android HAL实践(一):Mini6410…
- 解决lib只读的问题
- 解决lib只读的问题