LINUX modules 模块安装 MINI-HOWTO

资讯 驱动中国 348 次阅读 0 条评论
分享 Q

内容



*本文件的目的
*警告
*先决要素
*针对模组重新编译核心
*针对模组设定Debian或RedHat
*针对模组设定Slackware
*针对模组设定其它发行套件
*版权和合法性

_________________________________________________________________



本文件的目的



我对Linux和模组[modules]的经验一直是,现有的文件不能提供令人满意的
解说,要如何成功地设定模组而装好Linux并能正常运作.本文件的解说步骤
已经成功地被使用了好几遍了,包括在我自己的系统以及通过Internet指导某
人去设法取得某些方法,能要求仅提供模组形式的驱动程式以便能运作.


我自己的系统是跑Linux的RedHat4.1发行套件,而且它是在我发展的这套
步骤下建立起来的.自从那次之後,我也已成功地把它安装在跑各样Slackware
发行套件的系统,及一种Debian发行套件的系统,而且所需要步骤会在这□
针对这三类(发行套件)正确地设定模组提出说明.


_________________________________________________________________



警告



我最近有用相同的步骤在RedHat4.2上,但在一样的系统上出现不一样的结果.
我到现在还未找出是那是什麽问题,所以不能做任何保证,这样用是否一定能在你
的系统上运作.


_________________________________________________________________



先决要素




*在使用本文件的步骤之前,读者'必须'已做了Linux安装工作,而且取
得成为root使用者身分的Linux提示符号下,因为大部分牵扯到的步骤
只能由这所说的使用者才能进行.


*目前存在的核心可以编译成使用模组或不使用模组,甚至能在开机过程秀出
错误讯息,假若发生上述情况,那是因为所设定的模组在那时(开机时)无法
取得的缘故.


*目前核心的原始树[sourcetree]假设是可找到其摆在/usr/src/linux
而且也假设该目录是本文件全部中,任何连续命令开始所在的目前目录.




_________________________________________________________________



编译加速



如果你的机器有16Megabytes或以上的RAM,那麽有个有用加速可以用,它
允许核心平行编译两个以上的模组.当核心在编译时,这将会增加机器负载,但
会减少编译时所花费的时间.

在你能使用这方法前,你需要检查你的机器上存有的RAM有多少,如果你这个
设得太高,编译实际上会慢下来.经验显示最佳值乃是根据下列公式与你系统
的RAM多少有关,至少对有32MegabytesRAM的系统是还蛮合理的,虽然它
对有大量RAM的系统是有点保守:

N=[RAMinMegabytes]/8+1

对那些讨厌数学的人要有点帮助,可看下面RAM常用的数量所相应的数值:

RAM大小值若使用16Megs是3,24Megs是4,32Megs是6,
40Megs是6,48Megs是7,56Megs是8,64Megs是9,
80Megs是11,96Megs是13,112Megs是15,128Megs是17,

当你已决定正确的值,编辑档案/usr/src/linux/Makefile而且找到这样一行:



MAKE=make




取代它以:



MAKE=make-jN


其中的N是上面决出的数值.


_________________________________________________________________



针对模组重新编译核心



除了设置[mounted]成root的档案系统(其大部分情况都是ext2的档案系统)
不能设成模组外,其他每个东西都能重新设定核心编成模组来使用.

然而,有某些项目在完全地架设成模组时会出现困难,所以我建议以下东西编入
核心会好些:



*Ethernet硬体驱动程式.


*SCSICD-ROM驱动程式.



相反地,有某些驱动程式组合只适合编成模组,特别是下面中有两个以上的组合:



*平行埠印表机AParallelPrinter,


*平行埠的设备,像是IOMEGAZipDrive或JazzDrive或背接式[BackPack]

CD-ROMdrive,以及



*PLIPDaemon.



你会需要决定哪些是你要编译到核心,又哪些要模组,但应将上面几点列入考虑.
以下面次序的指令来进行,在编译过程,真正的选择就决定了:



cd/usr/src/linux
makemenuconfig
makedepcleanmodulesmodules_installzImage




已经做完成了,而模组的相关性[dependencies]需要绘出[mappedout],这要
下个这样的命令:



depmod-a




最新的核心现在需要被插到开机链[bootchain]中,我假设读者为了(下面)这个
目的使用LILO,因为这是我碰过唯一的开机载入器[loader].

我建议不要从自动地就插入最新编译好的核心成为内定的Linux核心,因为
如果它失败,那麽要恢复架设好的Linux,又不做完全重新的安装是非常困难,
而重新安装并不建议.基於这理由,我在我的/etc/lilo.conf档案会加下列项
目:



image=/usr/src/linux/arch/i386/boot/zImage
label=new
alias=n
read-only
vga=ask
optional




这项目说有个可选择性的开机启动选项(如果我们所讨论中的image不存在,
那麽将会忽略),若可选择的,其开机开启/boot/newlinux,而且允许吾人在
它开机进入的显示模式下来选择.

假设上面在/etc/lilo.conf存在的项目,新版的核心已经正确的摆在编译终了
所在处,那麽可以用下列命令来安装:



lilo




已经做完了那些,读者需要接著进一步步骤,这与它们所被选择的发行套件有关,
如下:

*针对模组设定Debian或RedHat
*针对模组设定Slackware
*针对模组设定其它发行套件




_________________________________________________________________



针对模组设定Debian或RedHat



在这□所列步骤完成之前,"针对模组重新编译核心"所列步骤都假设
你已经完成了.

Debian和RedHat发行套件有一样的开机启动程序,所以也有一样的步骤来
设定他们的模组.


1.已经以root身分登入,使用你最喜爱的文字编辑器来开个新的档案叫做
_/etc/rc.d/init.d/modules.init_,并以下列内容加入到那□.


#Modulesinitialisation.
#
#Startupthemoduleauto-loadingdaemon.
/sbin/kerneld

#Mountallcurrentlyunmountedauto-mountedpartitions.
/sbin/mount-a


2.已经建立上述档案,当有以root身分登入,按照下列步骤:


cd/etc/rc.d
chmod755init.d/*
cdrc3.d
ln-s../init.d/modules.init05modules.init



这时系统可重新启动,而在这过程中,会被发现模组有彻底完成了.


_________________________________________________________________



针对模组设定Slackware



在这□所列步骤完成之前,"针对模组重新编译核心"所列步骤都假设
你已经完成了.


1.档案_/etc/rc.d/rc.M_需要编辑如下:


1.大约在18行,那有个段落内容如下:


#Screenblanksafter15minutesidletime.
/bin/setterm-blank15


紧接在这之後,插入下面这段,即两边正常的空白行隔开的内容:


#Loadthekernelmoduleauto-loader.
/sbin/kerneld


2.再往下约12行如下列:


#ifthereisno/etc/HOSTNAME,fallbackonthisdefault:


紧接在这之後,插入下面这段,即两边正常的空白行隔开的内容:


#Mountremainingunmountedauto-mountdrives.
/sbin/mount-a


当这些变更都已做好了,就储存这个档案.



对於Slackware没有需要再进一步的修改.


_________________________________________________________________



针对模组设定其它发行套件



在这□所列步骤完成之前,"针对模组重新编译核心"所列步骤都假设
你已经完成了.

对於其他发行套件明确的步骤还没很清楚,但大概是前面所提之一.为了决定是
哪一种,秀出_/etc/rc.d_目录的内容,如下:


cd/etc/rc.d
ls-l*.drc.*



由这个秀出结果,你可以选择以下三个选项之一:


1.如果这所列出来的包含一个目录名称叫_init.d_而且某些目录名称有跟
_rc?.d_吻合,其中的问号是要用一个数字的替代,而且_没有_包含档
案叫_rc.M_,那麽发行套件可以用上述所列用在Debian和RedHat发
行套件的步骤来设定模组.

2.如果这所列出来的没有包含一个目录名称叫_init.d_但包含一个档名叫
_rc.M_那麽该发行套件可以用上述所列用在Slackware发行套件的步骤
来设定模组.

3.如果上面两个选项都没吻合,那麽该发行套件的开机script并没有被本
HOWTO文件所涵盖到.在这情况,欢迎你连络本文件作者提供建言.




_________________________________________________________________



版权与其它合法性事项



本文件是被涵盖在GNUGeneralPublicLicence(GPL)的保护下,而在那□面
所有项目各限制都适用.

可以借由寄email到rhw@bigfoot.com连络到作者.
[附注]
本文件中译版的译者是J.S.Lin,r6921068@ms.cc.ntu.edu.tw
若你发现中译版有谬误或有更好的译法,欢迎来信指教.

LINUXmodules模块安装MINI-HOWTO 学习L
版权声明:本文由驱动中国整理发布,转载需注明出处与原文链接。如有疑问请联系 editor@qudong.com
本文价值 成为第一个评分的人
登录后为本文打分
网友评论0 条评论
正在回复 的评论取消
评论加载中…
🔐

登录后参与互动

评论、点赞均可赚积分
连续签到、邀请好友也有奖励 🎁

电脑端: 微信扫码登录 微信内: 一键登录

微信扫一扫

打开微信「扫一扫」,分享本文到朋友圈或好友