内核管理概述 linuxsir_org.htm
来自「linuxSir 网站的精华文章」· HTM 代码 · 共 451 行 · 第 1/2 页
HTM
451 行
注:挂载一个模块;</CODE></DIV>
<P></P>
<P>举例:<BR>
<DIV class=codeblock><CODE>[root@localhost beinan]# modprobe ne2k-pci 注:挂载
ne2k-pci 模块;<BR>[root@localhost beinan]# modprobe vfat 注:挂载vfat
模块<BR>[root@localhost beinan]# modprobe ntfs 注:挂载ntfs
模块<BR>[root@localhost beinan]# lsmod 注:列出已挂载模块, 我们会看到ne2k-pci ,vfat
,ntfs的模块 ;</CODE></DIV>
<P></P>
<P><FONT color=red><B>注意:</B> </FONT>模块名是不能带有后缀的,我们通过modprobe -l
所看到的模块,都是带有.ko 或.o后缀;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost beinan]# modprobe -r 模块名
注:移除已加载的模块,和rmmod 功能相同;</CODE></DIV>
<P></P>
<P><FONT color=red><B>注意:</B> </FONT>模块名是不能带有后缀的,我们通过modprobe -l
所看到的模块,都是带有.ko 或.o后缀;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost beinan]# modprobe -r
模块名</CODE></DIV>
<P></P>
<P>举例:<BR>
<DIV class=codeblock><CODE>[root@localhost beinan]# modprobe -r
ne2k-pci</CODE></DIV>
<P></P>
<P>就说这么多吧,更为详细的还是用 man modprobe 来查看和尝试;</P>
<P><FONT size=3><B><BR>4、rmmod 移除已挂载模块;<BR></B></FONT></P>
<P>命令格式:<BR>
<DIV class=codeblock><CODE>rmmod 模块名</CODE></DIV>
<P></P>
<P><FONT color=red><B>注意:</B></FONT> 模块名是不能带有后缀的,我们通过modprobe -l
所看到的模块,都是带有.ko 或.o后缀;</P>
<P>举例:</P>
<P>
<DIV class=codeblock><CODE>[root@localhost beinan]# rmmod vfat
注:移除已挂载的模块vfat</CODE></DIV>
<P></P>
<P><FONT size=3><B><BR>5、depmod 创建模块依赖关系的列表<BR></B></FONT></P>
<P>这个模块管理工具是创建模块依赖关系的列表,有几个参数我们注意一下就行了,目前的的Linux
发行版所用的内核是2.6x版本,是自动解决依赖关系,所以这个命令知道就行了;模块之前也有依赖关系,比如我们想驱动USB
移动硬盘,目前有两种驱动,一种是udev ,在内核中有,但目前不太稳定;另一种办法是用usb-storage驱动,而usb-storage
依赖的模块是scsi 模块,所以我们要用usb-storage 的模块,也得把scsi 编译安装;</P>
<P>再举个例子:sata的硬盘,在Linux中的设备表示的是/dev/sd* ,比如 /dev/sda,/dev/sdb 等... 系统要驱动
sata硬盘,则需要把sata在内核中选中,或编译成模块,或内置于内核之中,在此同时,还需要在内核中选中ide ,scsi
的支持等;<BR>depmod 工具的洋文原意:depmod — program to generate modules.dep and map
files.(我译的:为modules.dep 文件或映射文件创建依赖关系)</P>
<P>
<DIV class=codeblock><CODE>[root@localhost beinan]# depmod -a
注:为所有列在/etc/modprobe.conf 或/etc/modules.conf
中的所有模块创建依赖关系,并且写入到modules.dep文件;<BR>[root@localhost beinan]# depmod -e
注:列出已挂载但不可用的模块;<BR>[root@localhost beinan]# depmod -n
注:列出所有模块的依赖关系,但仅仅是输出出来 (Write the dependency file on stdout
only)</CODE></DIV>
<P></P>
<P>注:modules.dep 位于 /lib/modules/内核版本 目录</P>
<P>比如 Fedora Core 4.0 中,系统默认的内核:<BR>
<DIV class=codeblock><CODE>[root@localhost beinan]# ls
/lib/modules/2.6.11-1.1369_FC4/modules.dep<BR>/lib/modules/2.6.11-1.1369_FC4/modules.dep</CODE></DIV>
<P></P>
<P><FONT size=3><B><BR>6、insmod 挂载模块;<BR></B></FONT></P>
<P>insmod 这个工具,和modprobe 有点类似,但功能上没有modprobe 强,modprobe
在挂载模块是不用指定模块文件的路径,也不用带文件的后缀.o 或.ko ;而insmod
需要的是模块的所在目录的绝对路径,并且一定要带有模块文件名后缀的(modulefile.o 或modulesfile.ko );</P>
<P>对于这个工具,我们只是介绍一下, 并不推荐使用。因为模块有依赖关系,对于新手来说,可能不知道这个模块依赖和哪个模块依赖;</P>
<P>举例:</P>
<P>
<DIV class=codeblock><CODE>[root@localhost beinan]# insmod
/lib/modules/2.6.11-1.1369_FC4/kernel/drivers/net/tg3.ko</CODE></DIV>
<P></P>
<P>我们要到 /lib/modules/内核版本 uname -r 的命令输出/kernel/drivers
中找相对应的模块才行,要有绝对路径,而且必须要用到文件名的全称,不能把文件名的后缀省略;</P>
<P><FONT size=4><B><BR>五、与内核模块加载相关的配置文件;<BR></B></FONT></P>
<P><FONT size=3><B><BR>1、模块的配置文件 modules.conf 或
modprobe.conf<BR></B></FONT></P>
<P>内核模块的开机自动挂载模块一般是位于一个配置文件,一般的Linux发行版本都有 /etc/modules.conf 或
/etc/modprobe.conf 。比如Fedora Core 4.0 内核模块开机自动加载文件是 /etc/modprobe.conf
;在这个文件中,一般是写入模块的加载命令或模块的别名的定义等;比如我们在modules.conf 中可能会发行类似的一行 ;<BR>
<DIV class=codeblock><CODE>alias eth0
8139too</CODE></DIV><BR>而8029的网卡应该是<BR>
<DIV class=codeblock><CODE>alias eth0 ne2k-pci</CODE></DIV>
<P></P>
<P>这样系统启动的时候,首先会modprobe 8139too ,然后再为8139too 指定别名为 eth0,然后我们在登录的时候,用
ifconfig 就会查看到网卡的IP 等情况,当然您得为网卡设置IP 才行;</P>
<P>一般的情况下,modproe.conf 或modules.conf的内容
是我们用相应的硬件配置工具而生成的;如果您的硬件驱动是没有被内核支持,您自己到硬件的厂商下载而来的驱动。一般的情况下都有安装和帮助文件。他们的驱动在配置时,他会写入硬件的支持到modules.conf
或modprobe.conf 文件中。</P>
<P>再比如我们的声卡在modules.conf 或modprobe.conf 中也有相应的内容,这是由alsaconf
配置工具生成的,明白了吧;同理网卡在modprobe.conf 或modules.conf中的内容也是由网卡的配置工具而来的。</P>
<P>有些硬件是以内核模块的方式驱动的,模块一旦加载上就能用,也没有什么配置工具,比如vfat 和ntfs
的支持;如果是硬件驱动不以模块的方式支持,而是直接编入内核,也不会用在modprobe.conf 或 modules.conf
中加入什么内容;</P>
<P>如果您有些模块不能开机加载,您想让一些模块加机自动加载,就可以把<B>modprobe 模块</B> 直接写入配置文件;</P>
<P><FONT size=3><B><BR>2、内核模块其它配置文件<BR></B></FONT></P>
<P>内核模块的其它配置文件还是需要了解的,比如<B> /lib/modules/内核版本</B>目录下的几个文件;了解一下就行;比如:</P>
<P>
<DIV class=codeblock><CODE>[root@localhost beinan]# uname
-r<BR>2.6.11-1.1369_FC4<BR>[root@localhost beinan]# ls
/lib/modules/2.6.11-1.1369_FC4/<BR>build misc modules.ccwmap
modules.ieee1394map modules.isapnpmap modules.symbols source<BR>kernel
modules.alias modules.dep modules.inputmap modules.pcimap
modules.usbmap</CODE></DIV>
<P></P>
<P><FONT size=4><B><BR>六、硬件驱动在系统中的目录;<BR></B></FONT></P>
<P><FONT size=3><B><BR>硬件驱动在内核中以模块支持的目录;<BR></B></FONT></P>
<P>硬件驱动是必须由内核支持的,无论是我们自己安装驱动,还是内核自带的驱动都是如此。<B>硬件驱动如果是以内核模块支持的</B>,驱动目录位于:
/lib/modules/内核版本/kernel/目录 或 /lib/modules/内核版本/kernel/drivers 目录中;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost beinan]# uname
-r<BR>2.6.11-1.1369_FC4<BR>[root@localhost beinan]# ls
/lib/modules/2.6.11-1.1369_FC4/kernel<BR>arch crypto drivers fs lib net
sound</CODE></DIV>
<P></P>
<P><FONT color=blue><B>注:</B></FONT>只有驱动在内核中以模块的方法支持,驱动才位于
/lib/modules/相应的目录;如果是直接置入内核的,不会出现在/lib/modules驱动相关的目录;</P>
<P><FONT size=3><B><BR>七、自己编译驱动的办法;<BR></B></FONT></P>
<P>如果是硬件厂商或者开源社区提供的驱动(没有集成在内核源码中的),编译驱动过程一般是./configure ;make;make install
,有时程序不提供./configure ,我们可以make或make install ,或者执行make;make install
;如果不能make install ,则需要我们自己复制.o或者.ko文件到 /lib/modules/内核版本/kernel/目录 或
/lib/modules/内核版本/kernel/drivers 目录中相应的驱动目录;</P>
<P>这个还是自己尝试吧,说也说不清楚,遇到问题后就知道怎么弄了;具体的还是驱动的REAME和INSTALL为准;</P>
<P>现在大多驱动都是在编译安装时,都自动复制.o或.ko 文件到内核模块目录,大多不用我们自己动手复制过去。如果您尝试编译安装声卡驱动
alsa-drivers 就会明白我所说的意思;</P>
<P><B><BR>如果是我们通过重编内核来解决驱动问题,可以查看/usr/src/目录中的内核源码目录中的 Documentation
的REAME ;所有的帮助文件都在那里;<BR></B></P>
<P><FONT size=4><B><BR>后记:<BR></B></FONT></P>
<P>内核编译对新手来说是有点困难,我写过类似的文档也有好多篇,但是不是新手弟兄从中能学到点什么,我不太知道;毕竟我写的文档在内核文件告诉一些基本的流程和注意的事项;内核的配置只有多实践才能学会,在配置内核时,要多看看帮助;</P>
<P>内核模块管理方面我在本文中已经写了一些,大体上就这些,如果想要知道更为详细的,只能是自己看man
和--help了,我写文档也无非是查看这些东西,然后实践再写给大家;我能写出来,我想您的能力并不一定比我差,应该超出我才对;</P>
<P><FONT size=4><B><BR>相关文档:<BR></B></FONT></P>
<P>1、<A href="http://www.linuxsir.org/main/?q=node/66">《编译内核操作流程
──为新手指南》</A><BR>2、<A
href="http://www.linuxsir.org/main/?q=node/88">《内核管理概述》</A><BR>3、<A
href="http://www.linuxsir.org/main/?q=node/67">《用ALSA驱动声卡流程详解》</A><BR>4、<A
href="http://www.linuxsir.org/main/?q=node/63"> 《Fedora / Redhat
软件包管理指南》</A><BR>5、<A href="http://kernel.org/"
target=_blank>内核主站:http://kernel.org</A></P></DIV>
<DIV class=links>By beinan at 2005/09/15 - 12:19 | <A
href="http://www.linuxsir.org/main/?q=taxonomy/term/1">Linux</A> | <A
href="http://www.linuxsir.org/main/?q=taxonomy/term/25">基础知识</A> | <A
title=共享你有关本文的思想和意见。
href="http://www.linuxsir.org/main/?q=comment/reply/88#comment">参与评论</A> |
5074 阅读</DIV></DIV><A id=comment></A>
<FORM action=?q=comment method=post>
<DIV><INPUT type=hidden value=88 name=edit[nid]> </DIV></FORM><!-- end content -->
<DIV id=footer>
<CENTER><A href="http://www.linuxsir.org/"><IMG
src="内核管理概述 LinuxSir_Org.files/logo.jpg"></A> <BR><A
href="http://www.miibeian.gov.cn/" target=_blank><FONT color=blue
size=3><B>闽ICP备06025536号</B></FONT></A><BR>
<SCRIPT language=JavaScript src=""></SCRIPT>
<BR><A href="http://www.linuxsir.org/main/?q=node/78"><FONT color=blue
size=3><B>© 2002-2006 LinuxSir.Org</B></FONT></A><BR></CENTER></DIV></TD>
<TD id=sidebar-right>
<DIV class="block block-block" id=block-block-2>
<H2 class=title>基础知识</H2>
<DIV class=content>
<UL>
<LI><A href="http://www.linuxsir.org/main/?q=taxonomy/term/23">安装配置</A>
<LI><A
href="http://www.linuxsir.org/main/?q=taxonomy/term/1/25/">基础入门</A>
<LI><A href="http://www.linuxsir.org/main/?q=taxonomy/term/22/">硬件解决</A>
<LI><A href="http://www.linuxsir.org/main/?q=taxonomy/term/21">软件管理</A>
<LI><A
href="http://www.linuxsir.org/main/?q=taxonomy/term/35/48/">重要资源</A>
</LI></UL></DIV></DIV>
<DIV class="block block-block" id=block-block-4>
<H2 class=title>软件应用</H2>
<DIV class=content>
<UL>
<LI><A href="http://www.linuxsir.org/main/?q=taxonomy/term/30">网络工具</A>
<LI><A href="http://www.linuxsir.org/main/?q=taxonomy/term/32">图形图像</A>
<LI><A href="http://www.linuxsir.org/main/?q=taxonomy/term/31">音乐视频</A>
<LI><A href="http://www.linuxsir.org/main/?q=taxonomy/term/49">字体中文</A>
<LI><A href="http://www.linuxsir.org/main/?q=taxonomy/term/33">软件其它</A>
</LI></UL></DIV></DIV>
<DIV class="block block-block" id=block-block-5>
<H2 class=title>网络服务器</H2>
<DIV class=content>
<UL>
<LI><A href="http://www.linuxsir.org/main/?q=taxonomy/term/27">文件服务器<A>
<LI><A
href="http://www.linuxsir.org/main/?q=taxonomy/term/28">Web服务器</A>
<LI><A href="http://www.linuxsir.org/main/?q=taxonomy/term/29">邮件服务器</A>
<LI><A href="http://www.linuxsir.org/main/?q=taxonomy/term/37">数据库应用</A>
<LI><A href="http://www.linuxsir.org/main/?q=taxonomy/term/50">服务器其它</A>
</LI></UL></DIV></DIV>
<DIV class="block block-comment" id=block-comment-0>
<H2 class=title>最新评论</H2>
<DIV class=content>
<DIV class=item-list>
<UL>
<LI><A href="http://www.linuxsir.org/main/?q=node/97#comment-930">我也是用
FC 6.</A><BR>2 hours 2 min 前
<LI><A
href="http://www.linuxsir.org/main/?q=node/235#comment-929">netstat</A><BR>1
day 19 hours 前
<LI><A
href="http://www.linuxsir.org/main/?q=node/8#comment-928">能详细点吗?</A><BR>2
days 9 hours 前
<LI><A
href="http://www.linuxsir.org/main/?q=node/255#comment-927"></A><BR>2
days 13 hours 前
<LI><A
href="http://www.linuxsir.org/main/?q=node/237#comment-926">DING</A><BR>2
days 18 hours 前
<LI><A
href="http://www.linuxsir.org/main/?q=node/237#comment-925">顶~</A><BR>2
days 18 hours 前
<LI><A
href="http://www.linuxsir.org/main/?q=node/237#comment-924">ding</A><BR>2
days 18 hours 前
<LI><A
href="http://www.linuxsir.org/main/?q=node/182#comment-923">以前见宝玉而不识!!</A><BR>4
days 12 hours 前
<LI><A
href="http://www.linuxsir.org/main/?q=node/56#comment-922">我是这样弄的</A><BR>5
days 1 hour 前
<LI><A
href="http://www.linuxsir.org/main/?q=node/158#comment-921">文章非常好,就是</A><BR>5
days 22 hours
前</LI></UL></DIV></DIV></DIV></TD></TR></TBODY></TABLE></BODY></HTML>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?