天嵌 ARM开发社区

 找回密码
 注册
查看: 11850|回复: 10

rmmod卸载不了模块

[复制链接]
palmcenter 发表于 2009-8-11 16:50:17 | 显示全部楼层 |阅读模式
我的板子一直不能卸载模块
[root@EmbedSky /lib]# insmod hellozf.ko
(0) Hello,world!
[root@EmbedSky /lib]# rmmod hellozf.ko
rmmod: cannot unload 'hellozf': unknown symbol in module, or unknown parameter
请问可能是什么问题?
我内核,文件系统,ko文件用的都是别人的,可是在他的板子上能正常rmmod,可到我这里就卸载错误.
感觉非常奇怪
亚瑟王 发表于 2009-8-11 18:04:09 | 显示全部楼层
建议你用自己的内核来编译一个模块,linux的版本不同,内核不同,可能导致这个问题。
 楼主| palmcenter 发表于 2009-8-12 03:15:54 | 显示全部楼层
本来我全是自己弄的,但一直过不去,跟别人交流的时候他说他过去了,我先后把文件系统,ko模块,内核都换了尝试卸载,始终有同样的问题
亚瑟王 发表于 2009-8-12 16:33:15 | 显示全部楼层
这个hello.ko的模块是最简单的模块了,主要就是两个函数:module_init()和module_exit(),只要他们存在就能加载和卸载驱动。
亚瑟王 发表于 2009-8-12 16:34:07 | 显示全部楼层
这个hello.ko的模块是最简单的模块了,主要就是两个函数:module_init()和module_exit(),只要他们存在就能加载和卸载驱动。
 楼主| palmcenter 发表于 2009-8-13 12:17:01 | 显示全部楼层
恩,是最简单的模块,这个正常才是能做其他事情的前提,如果这个不正常那就不是模块问题而是系统问题了,所以我才换别人的内核和文件系统尝试.但换了仍然不对,这个就郁闷了,不知道该怎么办.下面是我的c文件,就是移植手册的示例
/*************************************

NAME:EmbedSky_hello.c
COPYRIGHT:www.embedsky.net

*************************************/

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/version.h>
#include <linux/moduleparam.h>
#include <linux/init.h>

MODULE_LICENSE("GPL");               

static int __init EmbedSky_hello_init(void)
{

    printk("<1> \n     Hello,EmbedSky!\n");
    printk("<1> \nThis is first driver program.\n\n");

    return 0;
}

static void __exit EmbedSky_hello_exit(void)
{
    printk("<1> \n     Exit!\n");
    printk("<1> \nGoodbye EmbedSky!\n\n");
}                                    

module_init(EmbedSky_hello_init);
module_exit(EmbedSky_hello_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("www.embedsky.net");
MODULE_DESCRIPTION("SKY2440/TQ2440 Board First module test");
 楼主| palmcenter 发表于 2009-8-13 14:45:59 | 显示全部楼层
还有我的nand烧了几次,烧坏一大片,现在只能放十几m的小文件系统,放54m的带qt的都放不上去,烧到94%就没空间,error了,我用uboot的格式化功能也不行,格式化的时候它也是跳过那些坏块的,请问我该怎么办比较好?

还有个想法,能不能直接在内核里设置成把sd卡作为硬盘,放入文件系统,这样就能做到可更换,会方便很多,如果烧坏了顶多换个sd卡,就不用修板子了
 楼主| palmcenter 发表于 2009-8-17 00:12:08 | 显示全部楼层
本帖最后由 palmcenter 于 2009-8-17 00:13 编辑

我晕哦,我这个问题终于找到答案了,因为我是用u盘拷到板子上执行的,如果模块名是EmbedSky_hello.ko,就会比较长,后面一部分文件名会变成~符号,所以我就把名字改短了,改成hello.ko.于是insmod hello.ko,这样是可以加载成功的,但是rmmod hello.ko的时候系统就会报找不到hello模块
最后解决方法是rmmod EmbedSky_hello.ko或者rmmod EmbedSky_hello,这样就可以成功卸载,原来文件名跟模块名必须是统一的.
困扰了好久的问题终于解决了,爽啊
还有用天嵌的一键格式化nand功能,碰到坏块它还是会跳过去,无法清除坏块,但是用nand scrub命令可以清除,于是我的nand又可以用了
soulmate 发表于 2009-8-17 07:54:45 | 显示全部楼层
楼上的,nand scrub命令在哪里执行啊?我的坏块也很多,不知道怎么办~低级格式化以后也不行,还是有~
 楼主| palmcenter 发表于 2009-8-17 13:02:58 | 显示全部楼层
在uboot里,从一键命令模式quit退出到命令行模式,再打nand scrub
jiugantang 发表于 2009-11-18 17:15:23 | 显示全部楼层
卸载命令用rmmod + 文件名
记住不要带.ko 后缀  ,就可以卸载了
我也碰到同样的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-15 12:56 , Processed in 1.031250 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表