免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4860 | 回复: 2
打印 上一主题 下一主题

[内核模块] 加载模块出错,insmod:error inserting './SBA.ko': -1 Cannot allocate memory [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-30 16:57 |只看该作者 |倒序浏览
本帖最后由 wuyi202644 于 2012-05-30 16:59 编辑

各位大侠、高手:
    小弟我编译一个linux内核模块时,出错,它报的错误是:“insmod:error inserting './SBA.ko': -1 Cannot allocate memory”
    源码包见附件,这是写的一个块设备驱动,模拟故障注入的,是从网上下的一个源码包。

    运行前,需修改源码包中的compile.sh,它里面的/root/vijayan/repository/2.6.9/linux-2.6.9/ ”  这句改成自己的相应的内核路径。
    还有Makefile中的这一句 “EXTRA_CFLAGS += -I/root/vijayan/sosp05/analysis/include -I/root/vijayan/sosp05/analysis/hash_cache/include” ,把“/root/vijayan/sosp05/analysis” 改成附件中的源码包解压后的路径。

    运行步骤:
         1. 编译 ./compile.sh ,这步没有问题,虽然有很多warning,但都是参数类型不匹配,参数类型转换的问题。
         2. 运行 ./install_sba.sh ext3 data 5 16 n ;  "ext3 data 5 16 n"  都是运行这条命令带的参数;详见install_sba.sh文件中的这句
   "Usage: install_sba.sh <ext3|reiser|jfs> <data|metadata|wback> <commit> <jsize> <sepdev(y|n)>"      

         我在进行第二步(./install_sba.sh)的时候,就会报错误: insmod:error inserting './SBA.ko': -1 Cannot allocate memory。 我查看了源码,它在插入模块时出错,具体跟踪到函数时,在sba.c文件中的模块初始化函数int __init sba_init(void)(在sba.c中的568行)中的调用open_by_devnum函数时,出错。现不知如何解决这个问题,纠结了好久。。

   求各位高手指导!help ~

fault-injection-driver.rar

329.07 KB, 下载次数: 6

论坛徽章:
0
2 [报告]
发表于 2012-06-02 00:16 |只看该作者
代码中连续两次调用了open_by_devnum,会不会和这个有关??我曾经也遇到这样的问题,但原因和你这个看起来不相同。
               
sba_device.f_dev = open_by_devnum(f_dev_no, FMODE_READ|FMODE_WRITE);
if (IS_ERR(sba_device.f_dev)) {
       return PTR_ERR(sba_device.f_dev);
}

sba_device.j_dev = open_by_devnum(j_dev_no, FMODE_READ|FMODE_WRITE);
if (IS_ERR(sba_device.j_dev)) {
        return PTR_ERR(sba_device.j_dev);
}

论坛徽章:
0
3 [报告]
发表于 2012-06-08 20:34 |只看该作者
恩,谢谢。问题已经解决了。:wink:
把代码中的sba.c文件中的第47行的static int f_dev[] = {MKDEV(8, 35)};
其中的主、次设备号改为运行机器上的已经存在的一个块设备文件的主、次设备号就可以了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP