首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>系统管理>内核技术>正文

Linux系统下以模块方式安装卸载文件系统

http://www.oklinux.cn  2008-05-04  赛迪网 Fmstfob  会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

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

为了保证与系统内核相匹配,首先得获得相应版本的minix源代码,首先通过uname -r查询本机的内核版本:

[cocobear@cocobear ~]$ uname -r

2.6.24.4-64.fc8

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

在开始写Makefile之前要确认系统已经安装了以下的包:

[cocobear@cocobear ~]$ rpm -qa | grep kernel
kernel-devel-2.6.24.4-64.fc8
kernel-headers-2.6.24.4-64.fc8
kernel-2.6.24.4-64.fc8

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

在源代码中已经有一个Makefile:

#
# Makefile for the Linux minix filesystem routines.
#
obj-$(CONFIG_MINIX_FS)  = minix.o
minix-objs := bitmap.o itree_v1.o itree_v2.o namei.o inode.o file.o dir.o

修改该文件为:

#
# Makefile for the Linux minix filesystem routines.
# make minix fs as kernel module
obj-m  = minix.o
minix-objs := bitmap.o itree_v1.o itree_v2.o namei.o inode.o file.o dir.o
KERNELDIR:=/lib/modules/$(shell uname -r)/build
PWD:=$(shell pwd)
default:
make -C $(KERNELDIR) M=$(PWD) modules
clean:
rm -rf *.o *.mod.c *.ko *.symvers

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

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

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

[cocobear@cocobear 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.fc8-i686′
CC [M] /home/cocobear/minix/bitmap.o
CC [M] /home/cocobear/minix/itree_v1.o
CC [M] /home/cocobear/minix/itree_v2.o
CC [M] /home/cocobear/minix/namei.o
CC [M] /home/cocobear/minix/inode.o
CC [M] /home/cocobear/minix/file.o
CC [M] /home/cocobear/minix/dir.o
LD [M] /home/cocobear/minix/minix.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/cocobear/minix/minix.mod.o
LD [M] /home/cocobear/minix/minix.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.24.4-64.fc8-i686′

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

[cocobear@cocobear minix]$ cat /proc/modules | grep minix

[cocobear@cocobear minix]$

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

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

[cocobear@cocobear minix]$ cat /proc/modules | grep minix

minix 28676 0 - Live 0xd0e7d000

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

共2页: 上一页 1 [2] 下一页

上一篇:教你如何在Linux系统下观看电视节目   下一篇:Slackware官方内核源码打造适合自己的内核

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Slackware官方内核源码打造适合自己的内核
·Linux系统下让PHP提高性能的工具APC
·Linux系统下C程序语言简易编程尝试
·Ubuntu Linux系统编译Linux fetion方法
·Linux系统多线程同步Mutex详细介绍
·使用Busybox做一个小巧的Linux系统
·Linux系统中静态库和动态库的生成和使用
·Linux limits.conf解释与应用
·未来趋势分析:Linux有可能成为java OS
·Linux系统平台下关于GCC编译及使用的方法
·Linux驱动Invalid module format错误解决
·关于Linux系统下GCC的使用方法说明
·老手经验谈:Linux驱动程序开发学习步骤
·Linux系统下的网络地址转换函数介绍
·Linux kernel2.6.25 CS8900网卡驱动移植
·Linux内存管理进程所涉及到的五个数据段
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·再来个源代码分析阅读器:LXR
·源代码阅读利器:Source Navigator
·Linux系统下的MySQL数据库开发技术
·Fedora在下一代用户群鼓励使用和参与开
·centos5.1下编译Linux内核
·Suse Linux系统下JAVA AWT界面乱码问题
·在Linux下发布程序需要注意版本的软件
·使用initrd文件系统 U-boot引导Linux方
·Linux系统下后台执行程序
·Linux如何在系统运行过程中修改内核参
·Linux系统进程的几个用户ID及其转换方
·Linux系统下安装phpmyadmin方法介绍
  阅读排行
· 深入理解LINUX内核中文版下载地址
·Linux操作系统源代码详细分析(一)
·Bochs 调试技术
· Linux下通用线程池的创建与使用(上)
·基于S3C44B0微处理器的uClinux内核引导
·软件产品发布流程
·Linux操作系统源代码详细分析(二)
·Linux操作系统的内核编译内幕详解
· Linux内核编程实战经验谈
·Linux系统线程同步:互斥量(mutex)
·Kernel command using Linux system ca
·linux 内核版本号
·推荐:Linux用户态与内核态的交互
·Linux 2.6内核的编译步骤及模块的动态
·解析Linux中的VFS文件系统机制
网摘收藏: