免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: magiceyes
打印 上一主题 下一主题

rmmod -f为什么不能强制卸载模块 [复制链接]

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
11 [报告]
发表于 2008-12-11 23:37 |只看该作者
那就先重启一次试试。
BTW,代码不保密的话,贴出来一些给大家看看,猜原因比较麻烦。

论坛徽章:
0
12 [报告]
发表于 2008-12-11 23:44 |只看该作者
原帖由 Godbach 于 2008-12-11 23:25 发表
scutan研究的很细啊


我记得在哪儿看到过这个。

不过我想楼主要把代码贴出来才好解决,猜的话不好整得。

论坛徽章:
0
13 [报告]
发表于 2008-12-12 00:00 |只看该作者
没啥保密的啊,我是小菜菜,从网上down的啊
http://www.wiley.com//legacy/compbooks/pate/
绝对地址http://www.wiley.com//legacy/compbooks/pate/uxfs_rh8.tar.gz
我就是把它移植到2.6上了
主要出在mount上
2.4函数是
struct super_block *
ux_read_super(struct super_block *s, void *data, int silent)
{
        struct ux_superblock      *usb;
        struct ux_fs              *fs;
        struct buffer_head        *bh;
        struct inode              *inode;
        kdev_t                    dev;

        dev = s->s_dev;
        set_blocksize(dev, UX_BSIZE);
        s->s_blocksize = UX_BSIZE;
        s->s_blocksize_bits = UX_BSIZE_BITS;

        bh = sb_bread(s, 0);
        if(!bh) {
                goto out;
        }
        usb = (struct ux_superblock *)bh->b_data;
        if (usb->s_magic != UX_MAGIC) {
                if (!silent)
                        printk("Unable to find uxfs filesystem\n");
                goto out;
        }
        if (usb->s_mod == UX_FSDIRTY) {
                printk("Filesystem is not clean. Write and "
                       "run fsck!\n");
                goto out;
        }

        /*
         *  We should really mark the superblock to
         *  be dirty and write it back to disk.
         */

        fs = (struct ux_fs *)kmalloc(sizeof(struct ux_fs),
                                     GFP_KERNEL);
        fs->u_sb = usb;
        fs->u_sbh = bh;
        s->s_private = fs;

        s->s_magic = UX_MAGIC;
        s->s_op = &uxfs_sops;

        inode = iget(s, UX_ROOT_INO);
        if (!inode) {
                goto out;
        }
        s->s_root = d_alloc_root(inode);
        if (!s->s_root) {
                iput(inode);
                goto out;
        }

        if (!(s->s_flags & MS_RDONLY)) {
                mark_buffer_dirty(bh);
                s->s_dirt = 1;
        }
        return s;

out:
        return NULL;
}
我把它该成了ux_get_sb()且回调uxfs_fill_super(),实现上就是这些了!
这个函数是2.4的相关数据结构我改为2.6了!
不过这不仔细看也看不出来什么啊!
我就是想知道怎么强制卸载!就是出现了段错误,我想一点一点printk调

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
14 [报告]
发表于 2008-12-12 09:58 |只看该作者
LZ,你的给的打包文件里面是在2.4下编译的吧。我在2.4.20-8内核上编译没问题。
可以insmod和rmmod。

但是Makefile有个小问题,编译生成的模块名字应改为uxfs.o, 你确实uxfs。 我觉得这个地方可能会导致你现在的问题。

另外,最好给出2.6下的代码,这样好帮你测试2.6下的情况。

论坛徽章:
0
15 [报告]
发表于 2008-12-12 12:18 |只看该作者
原帖由 Godbach 于 2008-12-12 09:58 发表
LZ,你的给的打包文件里面是在2.4下编译的吧。我在2.4.20-8内核上编译没问题。
可以insmod和rmmod。

但是Makefile有个小问题,编译生成的模块名字应改为uxfs.o, 你确实uxfs。 我觉得这个地方可能会导致你现 ...

2.6还没有调试通过,我当前最急需解决的问题不是如何调试通过,而是出现错误后,怎么强制rmmod
就是因为一上午时间我都重启了50多次系统了,这样调试太浪费时间了.

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
16 [报告]
发表于 2008-12-12 12:48 |只看该作者
但是Makefile有个小问题,编译生成的模块名字应改为uxfs.o, 你确实uxfs。 我觉得这个地方可能会导致你现在的问题。


LZ先试一下不是因为这个问题导致的

论坛徽章:
0
17 [报告]
发表于 2008-12-12 16:43 |只看该作者
原帖由 Godbach 于 2008-12-12 12:48 发表


LZ先试一下不是因为这个问题导致的

不是这个问题造成的,makefile我已经仿照2.6的改了.

论坛徽章:
0
18 [报告]
发表于 2008-12-13 08:22 |只看该作者
原帖由 Godbach 于 2008-12-12 09:58 发表
LZ,你的给的打包文件里面是在2.4下编译的吧。我在2.4.20-8内核上编译没问题。
可以insmod和rmmod。

但是Makefile有个小问题,编译生成的模块名字应改为uxfs.o, 你确实uxfs。 我觉得这个地方可能会导致你现 ...

请问你在2.4下编译内核模块的命令是什么?是不是和2.6一样的?
我的是make -C /lib/modules/linux2.6.24-19-generic/build SUBDIRS=/'模块的路径' modules.

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
19 [报告]
发表于 2008-12-13 09:13 |只看该作者
原帖由 magiceyes 于 2008-12-13 08:22 发表

请问你在2.4下编译内核模块的命令是什么?是不是和2.6一样的?
我的是make -C /lib/modules/linux2.6.24-19-generic/build SUBDIRS=/'模块的路径' modules.


2.6和2.4下的不一样啊。你给的那个代码中的Makefile是2.4的Makefile

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
20 [报告]
发表于 2008-12-13 09:13 |只看该作者
请问你在2.4下编译内核模块的命令是什么?是不是和2.6一样的?
我的是make -C /lib/modules/linux2.6.24-19-generic/build SUBDIRS=/'模块的路径' modules.


对,这个是2.6下常用的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP