编译内核的一点点经验_第1页
编译内核的一点点经验_第2页
编译内核的一点点经验_第3页
编译内核的一点点经验_第4页
编译内核的一点点经验_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编译内核的一点点经验原作者:RICK最开始听说编译核心时都吓了一跳, 心想 LINUX 那么可怕, 一上来就是要自已编译核心 .后来自己试了一下, 其实也不复杂, 主要是找些文档来看就行了.1 .核心的源程序:我现在在用TLC, REDHAT 也用过 , SLACKWARE 也用过 . 无论哪一种, 都是把核心源程序放到/usr/src/linux 下 , 因为有些别的应用程序在编译时好像也会从这个路径来引用一些头文件之类. 一般来说这个linux 目录都只是个符号连接, 有一点点像 WIN 下的 Shortcut, 而实际上它对应的目录可能是/usr/src/linux-2.0.35之类 .

2、 RedHat 的缺省安装好像并不装源程序, 只有些头文件.以现在的2.2.5 核心为例, 我装的时候就是这样(其实什么版本都一样:)cd /usr/src rm linux# 这个 linux 只是个符号连接, 删掉它没事的. 可以 ls -l 看看 , 如果看到这个:# linux -> linux-XXXXX, 就表示它是个连接而已. 原来的源程序在箭头后的目录.tar zxvf XXXXXXX/linux-2.2.5.tar.gz# 这个包解开后, 新核心的源程序就放在了新建立的linux 目录下 , 这可是个货真价# 实的目录.mv linux linux-2.2.5ln -s

3、 linux-2.2.5 linux# 按照惯例, 还是把目录另命个名, 再重新做个linux 的符号连接好了 , 现在源程序放好了.2 .准备编译:现在要做一些准备工作. 对于新释放出来的核心源程序也没啥好做的, 就打一个:cd /usr/src/linux make menuconfig然后就会看到一个很友好的界面(在 LINUX 下 .已经是很友好的了), 大致上有点像 WIN 9X 安装时的选择安装项目. 这就是在配置核心, 选择哪些内容要, 哪些不要.慢慢道来:Code maturity 按回车进去后只有一项, 是问是否在后面的选项中列出开发中/或未完成的代码/驱动程序. 不管它 ,

4、 不选它就行了Processor type 选择 CPU 类型 , 进去后有四项:Processor family: 按回车 , 在里面选CPU 类型(我不懂为什么把PPro 和 6x86MX列在一起 );Math emulation: 协处理器仿真, 当然不选(你不会还在用没有FPU 的 386 吧 );MTRR: 搞不懂 :PP, 不管它 , 缺省是不选的;Symmetric: 如果你富到有两个或以上的CPU 并且装在同一块主板上, 就选 ;Loadable module support:对模块的支持. 模块可是好东西, 网卡声卡的驱动问题很多朋友都在问, 有模块其实很好办. 这里面有三项

5、:Enable loadable : 当然要选;Set version: 好像是为了使核心可以装入不同版本的模块, 可以不选它;Kernel module: 让核心在启动时有自己装入必需模块的能力, 选上吧 ;General setup:里面东西不少, 我的办法是一项也不改, 用缺省的;Plug and Play:著名的 Plug and "Pray", 嘿嘿 . 选上吧 ;Block devices:选择某些设备驱动, 按缺省的不变就可以了(如果你没有什么过于古旧的设备如IDE 卡的话 ), 不过我是把"CMD640" 及 "RZ1000&q

6、uot; 两项去掉, 因为我不认得它们, 它们也不认得我. 还有就是不妨把"Loopback device" 也加上 , 做成核心内包含或模块都可以.现场解释:在每一个选项前都有个括号, 但有的是中括号有的是尖括号. 用空格键选择时可以发现 , 中括号里要么是空, 要么是 "*", 而尖括号里可以是空, "*"和 "M". 这表示前者对应的项要么不要, 要么做在核心里; 后者则多一样选择, 可以做成模块.模块 : 我的直观理解是, 模块就是像*.SYS 那样的驱动程序, 可以在核心启动后加载 , 能有效减小核心尺寸

7、, 并有更多的灵活性. 关于灵活性, 后面再说.Networking options:主要是有关TCP/IP 的设置 . 一般机器用缺省的就行了, 别的如果要作防火墙啊路由什么的可以自己选, 我没选过, 不敢乱说:PP;SCSI support:我是没有SCSI 设备的 , 所以我一项也不选. 你有吗 ? 不妨把你要的都做成模块,这样内核会比较小. 像 16.8 就选了 "low-level drivers" 里的 "AIC7xxx", 因为有一个 SCSI 的 CDR 光驱 , 有时候可能会接上来用;Netword device support:这里就

8、是网卡的设置.进去以后第一项, Netword device support 选上先(没网卡? 也选 !)ARCnet support:小的不知此为何物, 不选它 ;Dummy net driver support:哑 (或空)网络驱动支持. 照缺省的, M.EQL :不懂 . 不选 .Ethernet (10 or 100Mbit):你是用网卡上网就把它选上吧.3COM cards:如果你用3COM 的卡 , 选上 . 下面会有多的选项, 选择你的卡那一项吧.AMD LANCE :Western Digital:Racal-Interlan:看起来都像是某种卡, 不管他 .Other ISA

9、 cards:其他的用ISA 网卡的玩家们(尤其是UMC 9008 这种 XX 卡 ), 选上 .别的卡我是没用过, NE2000 兼容的卡就选上NE2000/NE1000 support, 最好是选成M. 把网卡驱动做成模块会有利于你装网卡驱动的.如果已经选出了你用的卡, 下面的可以全部不管了. 统统可以不选. 如果不是的话,就照着列出来的项目选. 例如是拨号上网就要把PPP 选上 . 下面的这些没有一样我用过 , 不敢胡说:PP出来 , 然后是 Amateur Radio Support, 不选 ;然后是 ISDN. 你富到了用ISDN 上网 ?下面是 Old CD-ROM drivers

10、, 如果你还在用古老的非IDE 或 SCSI 接口的光驱,就进去自己选吧.Character devices:基本上可以全都不变. 如果用的是串口鼠标, "Mouse Support(not serial mouse)"就可以不选了. 有游戏手柄的可以在Joystick support 里选 . 一般的模拟手柄(不好下精确的定义, 总之你能用60 块钱以下买到的4 键 6 键 8 键之类都是模拟型的)就选第一项 "Classic PC ". 我用的 Creative Cobra 里面是没有的. 不过 , LINUX 下把手柄驱动起来好像也没什么意义.Fi

11、lesystems: 文件系统支持.Quota support:不用选了, 如果你的机器不是像16.8 这样做个人主页服务器的话. 如果你要实验如何限制用户使用的硬盘空间, 就选上 .Kernel automounter support 可以选上, 虽然我没发现选不选有什么区别.DOS FAT fs support 最好要选上, 如果要在LINUX 下读写 DOS 分区 . 下面有三个选项 , 把"MSDOS fs support" 与 "VFAT(Windows-95) fs support" 选上就可以了. VFAT即FAT32.ISO 9660 :

12、 ISO 9660 格式光盘(现在的软件光盘.X 版的光盘.都是这个格式)支持 , 当然选上.Microsoft Joliet: 选上以后没发现有什么用.以下的可以统统保持缺省. 如果装了NT 或 OS/2, 可以选上NTFS 及 OS/2 ,都是只读访问.Network File Systems 子项里缺省选上了NFS, 可以不要. SMB 可以选上, 用来访问局域网中的WINDOWS 共享目录. 如果要访问Netware 卷 , 就选上 "NCP ".出来以后是Console drivers, 可以不管它.然后是 Sound. 这一块东西很多, 实在没力气一一写下来.

13、不过有几个建议:1. 能用 OSS 驱动还是用OSS 驱动 , 又方便 , 支持的卡也多;2. 如果用 OSS 驱动 , 在 SOUND 里就不要选任何东西;3. OSS 不支持的卡(如 ALS007), 才在核心里想办法. 可以参考上面我POST 的"ALS007 发声经过".4. OSS 指 Open Sound System, 是 4 Front Tech 的商业产品, 在 16.8 上可以找得到 , 但有时间限制. 某高人作了工作将其注册, 大家自己下载了回去研究. 核心里的那个"OSS sound modules(NEW)" 只是 OSS 的一

14、部分. 我也用过这个来驱动 YAMAHA 719 卡 .Kernel hacking: 不管它啦好了 , 全部设完了, 选 EXIT 退出来 , 问是否保存修改时答YES.然后会有一些提示. 如果看到了有叫你"make dep", 就一定要打"make dep" 先 .完了后就打make bzImage. 如果提示信息中没有叫你"make dep", 只有叫你"make zImage", "make zdisk" 或 "make zlilo" 的 , 就直接打make bzI

15、mage 就行了 .一点说明: make dep 是作一些准备工作, make bzImage 则是开始编译生成核心.而make bzImage 与 make zImage 的区别在于, 作成 bzImage 的核心压缩率比zImage 高 , 核心就更小一些. make zdisk 与 make zlilo 是做别的用处的核心的.然后就等吧(有得你等的). 一般从 5 分钟到半个钟头不等, 看你的机器了. 第一次编译会比较慢. 以后再改了配置后make 就会快很多了.等这个完了后一定还要make modules 和 make modules_install.make bzImage 完 后 会 显 示 核 心 放 在 什 么 地 方 , 一 般 是 /usr/src/linux/arch/i386/boot/下 . 把 bzImage 拷到根下. 然后修改/etc/lilo.conf, 照着原来的image = XXXXX来加上image = /bzImageroot = /dev/hda1 ( 这里视你的LINUX 安装而

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论