论坛风格切换切换到宽版
  • 848阅读
  • 0回复

[问题求助]Linux文件系统安装模块化讲解 [复制链接]

上一主题 下一主题
离线lj80117.
 
发帖
2080
C币
-140273
威望
384
贡献值
1
银元
-3
铜钱
4627
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
经过长时间学习Linux文件系统安装卸载,和大家一起分享一下学习的经验.,希望也能为不了解的同学一个启示.。<性病>

以Fedora8下面安装minix文件.系统为例:.

为了保证与系统内核相匹配,首先得获得相应版本的minix源代码,首先通过u.name .-r查询本机的内核版本:[成人用品]

[co.cobear@.cocobear ~]$ uname -r.

2.6.24..4-64.fc8           女人

在Kernel.org主页上可以获得2.6.24.4-64内核的源代码,其实我们只需要其中linux-2.6.24.4/fs/minix/目录中的代码。因为我们不需要对整个内核进行重新编译,因此我们只需要在linux- .6.24.4/fs/minix/目录下写一个Makefi.le,生成相.应的.mi.nix.ko就可以了。             电子

在开始写Makefi.le之.前要确认系统已经安装了以下的包:[成人用品]

[cocobear@cocobear ~]$. rpm -qa | grep k.ernel    健康

kernel-devel-2.6..24.4-6.4.fc8[成人用品]

kernel.-head.ers-2.6.24.4-64.fc8--- 印刷

kernel-2.6..24.4-64.fc8           建材

在模块编译的过程中需要用到。

在源代码中已经有一个Makefil.e:健康

#

# Makefi.le for the. Linux minix filesystem routines.          婚庆

#

obj-$(CONFIG_M.INIX_.FS) += minix.o.

minix-objs. := bitmap.o itree_v1.o itree_v2.o n.amei.o inode.o file.o dir.o          婚庆

修改该文件为:

#

M.akefile for the Linux minix fil.esystem routines..

# make mini.x fs as .kernel module虚拟主机

ob.j-m += minix.o<性病>

minix-objs :=. bitmap.o itree_v1.o itree_v.2.o namei.o inode.o file.o dir.o             电子

KERNELDIR:=/lib/module.s/$(shell uname -r)/b.uild健康

PW.D:=$(shell pwd).

default:

make -C $(KERNELD.IR) M=$(PW.D) modules学习

clean:

rm -rf .*..o *.mod.c *.ko *.symvers投资

这里简单的解释一下,obj-m表示该文件将以模块的方式编译;因为本模块由多个文件组成,采用模块名加 –objs(minix-objs)后缀的形式来定义模.块的组成文件。KERNELDIR定义了代码树的位置,PWD定义了当前文件夹.位置;而make.命令中-C选项指定了代码树的位置(由KERNELDIR给出),M=$.(PWD)指定了在当前目前进行构建工作。          婚庆

最后一行清理编译过程产生的文件。.              乙肝

完成了Makefile后我们就可以开始.编译这个文件系统模块了,直接输入m.ake就开始编译了:    美容

[cocobear@c.ocobear .minix]$ make--------------彩票

make.. -C /lib/modules/2.6.24.4-64.fc8/build M=/home/cocobear/minix modules电脑

make[1]:. Entering directory `/usr/src/kernels/2.6.24.4-64.fc.8-i686′<性病>

CC [M]. /home/coc.obear/minix/bitmap.o             汽车

CC [M] /hom.e/cocobear/minix/itree_v1..o服务器

CC [M] /home/cocobear/minix/itr..ee_v2.o          婚庆

C.C [M] /home/cocobear/m.inix/namei.o          婚庆

CC [M] /home/.cocobear/mini.x/inode.o外贸

CC [M]. /home/cocobear/.minix/file.o           鲜花

CC [M] /.home/cocobear/minix/dir.o.    健康

LD [M] /home/c.ocobear/minix/minix..o<性病>

Building modules,.. stage 2.电脑

MODPOST 1 mod.ules--- 印刷

CC /home/cocobear/m.inix/mini.x.mod.o.

L.D [M] /home/cocobear/minix/min.ix.ko           建材

make[1]: Leaving directo.ry. `/usr/src/kernels/2.6.24.4-64.fc8-i686′电影

编译.结束后会面当前目前下生成minix.ko文件,这就是我们需要的东西,使用insmod命令就可以安装这个minix文件系统模块了。当.然这里需要有root权限。我们来演示一下m.inix模块的加载:    美容

[cocobear@c.oco.bear minix]$ cat /proc/modules | grep minix虚拟主机

[coc.obe.ar@cocobear minix]$.

这里可以看到minix并没有被加.载,我们使用insmod mi.nix.ko命令:.

[cocobear.@cocobear .minix]$ sudo insmod minix.ko          婚庆

[cocobear@cocobear mini.x]$ cat /p.roc/modules | grep minix投资

minix 28676. 0 - Live 0xd0e7d00.0.

insmod后我们从上.面的信息可以看到minix模块已经被加载,如果不需要使用.这个模块我们同样可以很方便的把它卸载:--------------彩票

[cocobear@cocobear minix]$ sudo rmm.od .minix.ko             电子

[coc.obear@cocobear minix]$ cat /pro.c/modules | grep minix学习

[cocobear@cocob.ear m.inix]$    美容

到此我们顺利的完成了Linux.文件系统安装.卸载和编译。           鲜花

BTW:中间遇到了点问题写了Makefile后输入make提示.:“m.ake: Nothing to b.e done for `default‘。”,在网上找到了原因,在make命令前要使用tab,而不是空格,而我的刚好的空格,郁闷.,以前就似乎遇到过的。.

                浦华众诚培.训网.技术学院  转载.
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个