免费注册 查看新帖 |

Chinaunix

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

【求助】linux启动过程initrd如何配置自加载驱动模块 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-28 12:08 |只看该作者 |倒序浏览
写了一个块设备驱动,该设备是通过socket进行重定向到网络上的一个镜像文件,当linux系统起来以后可以进行分区、格式化、挂载、磁盘读写等。。当我直接insmod模块时,在/dev目录下就可以看到相应的设备文件test,通过fdisk可以分区,分区后在/dev目录下可以看到该设备的子设备(即分区后的设备test0、test1),之后通过mkfs.ext3  /dev/test0 可以进行文件系统创建(即初始化)。也就是在我一个完整启动的linux系统上这些动作都可以完成。。
大家都知道linux启动过程中,就是在加载完内核以后会先启动一个小系统initrd(当然这个小系统不一定是必须的),主要完成一些不能静态编译的模块加载工作,我想通过修改linuxrc脚本来实现块设备的自动加载。该块设备用到网络,所以还需要一些网络模块,我都把他们放到initrd里面,通过修改linuxrc脚本加载所需的模块,问题是,当我最后一步加载test时,在/dev目录下找不到该设备,我就通过mknod命令自己创建该设备节点,之后尝试通过fdisk等打开该设备,也打不开,不知道有没有大牛知道initrd这个小系统有什么特殊的地方。。为什么打不开我写的块设备。。。。

论坛徽章:
0
2 [报告]
发表于 2012-06-12 15:33 |只看该作者
发现问题所在了,在initrd镜像内进行操作,重新编辑脚本文件(init= 这里的文件名),配置fdisk自动写入分区,脚本内加入:
fdisk /dev/test <<EOF
w
EOF
即可,另外我用的fedora5初始不支持ext3文件系统,ext3是作为动态编译的只生成内核模块,我把磁盘重新制作为ext2,就可以挂载了。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP