




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、为什么要编译内核; 有时我们为了实现某些功能,比如对iptables的防火墙有些需要内核支持;还有实现一些硬件的支持等,这时我们需要重编内核; 二、内核源码版本的选择; 如果发行版本提供内核源码,最好还是用发行版本提供的;比如Fedora 4.0 提供了很多版本的内核源码;我们安装好后,他自带的配置文件大多能满足我们的需要,对于新手来说,根据自带的内核的配置文件.config ,我们也能学到一点如何配置内核。也没有什么难的,熟能生巧罢了; 如果从 下载最新稳定版本的内核也是可以的; 三、内核源码安装或解压; 对于Fedora Core 4.0 来说,内核源码是放在 /usr/src/kernels 目录中;如果通过在线升级内核,也是放在这个目录中;如果您的系统中的 /usr/src/kernels/ 中没有内容,说明您没有安装内核的源码包 kernel-devel 软件包; 您可以通过软件包管理器来补装 ,请参考 Fedora / Redhat 软件包管理指南 如果您用Fedora Core 4.0 ,我建议您在保留老内核的基础上,在线下载最新版本的内核 kerenl-devel 和对应版本的 kernel 或者从 下载,有时可能新的kerenl 已经解决了您所面对的问题,这时就没有必要编译内核了; 如果您是通过在线安装的内核源码包 ,比如通过 apt+synaptic 或者yum 安装的,内核源码会被放到/usr/src/kernel 下的目录中,您要进入相对应的目录进行编译; 在线更新软件包,请参考 Fedora / Redhat 软件包管理指南,推荐 apt+synaptic 工具; 如果您是是下载kernel 和kernel-devel 的rpm 包,可以通过来安装; 代码: 1. rootlocalhost beinan# rpm -ivh kernel*.rpm复制代码如果您是从 下载的类似 linux-2.6.13.tar.bz2 或者 linux-2.6.13.tar.gz的,您要把下载下来的文件移到 /usr/src 目录中解压; 然后进入解压的目录中进行配置和编译; 代码: 1. rootlocalhost beinan# mv linux-2.6.13.tar.bz2 2. rootlocalhost beinan# cd /usr/src/3.4. rootlocalhost src# tar jxvf linux-.tar.bz2复制代码提示:本文以linux-为例,其实通过发行版的升级版的kernel-devel 和从 下载下来的差不多,大同小异;不同的是通过在线升级的rpm格式的内核源码包,有配置文件.config 可以参考;安装到的目的地是/usr/src/kernel 对FC 4.0来说;如果您要高编译和配置内核。四、内核的配置; 1、进入目录执行 make mrproper ,对于从 下载而来的tar.bz格式的源码包; 代码: 1. rootlocalhost src# cd linux-/ 2.3. rootlocalhost linux-# 4.5. rootlocalhost src# cd linux-/ 6.7. rootlocalhost linux-# make mrproper 8.9. rootlocalhost linux-# make menuconfig复制代码对于Fedora Core 4.0 ,如果您是通过在线安装的 kernel和kernel-devel 新版本的包,比如是2.6.12-1.1398_FC4-i686,你可以直进入 /usr/src/kernel/相应的目录中直接执行 make menuconfig ;利用发行版本提供的 .config 来配置,这样方便点。不要make mrproper ,否则.config 就没有了;这也是为什么要用发行版本提供的内核源码升级包的原因; 其它配置和安装大同小异;模仿总可以吧; 2.简要的配置内核; 进入配置内核的配置模式后,我们可能一无所知,看下面; 内核配置有两种方法,一种是直接置入内核 * ;另一种是编成模块 M ;两种方法各有优点;直接编入内核的,比如设备的启动,不再需要加载模块的这一过程了;而编译成模块,则需要加载设备的内核支持的模块;但直接把所有的东西都编入内核也不是可行的,内核体积会变大,系统负载也会过重。我们编内核时最好把极为重要的编入内核;其它的如果您不明白的,最好用默认。 1)移动键盘上下左右键,按Enter 进入一个目录。把指针移动到Exit就退出当前目录到上级目录; 2)针对自己机器存在的问题进行修改,比如大内存的支持; 选择自己机器的CPU; 移动键盘到 Processor type and features - ,然后按ENTER进入; 找到 Processor family (Pentium-Pro) - 按ENTER进入; 进入后我们发现有好多CPU的型号可选;一般的情况下要根据 bash-3.00# cat /proc/cpuinfo 输出的信息来选,比如我们的是Celeron (P4)一代的,应该选如下的,当然默认的 486也是可以正常运行的,既然我们重编一次内核,就得选中对应型号的,也许性能有所提高呢; 代码: 1. Processor family (Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon)复制代码对大内存支持;如果内存是1G或者1G以上,但小于4G的,就要选4G支持;如果超过4G的,要选64G的支持; 代码: 1. High Memory Support (4GB) -2. (X) 4GB3. ( ) 64GB复制代码还有比如声卡等硬件,需要我们一步一步的查看;如果有不明之处,就要按 shift+?的组合键来查看说明。一般的情况下,2.6.x的内核会根据机器的情况自动配出一个文件,只需要我们来查看一下,把重要的地方改改就行了; 再举个例子:比如我现在所用的声卡是intel ac97的,我应该怎么配置呢? 首先要知道自己的声卡的芯片组,我们要通过lspci -v 来查看; 代码: 1. rootlocalhost beinan#lspci -v复制代码只查看声卡的,应该用如下的方法: 代码: 1. rootlocalhost beinan# lspci -v |grep audio2. 00:1f.5 Multimedia audio controller: 3. Intel Corp. 82801DB (ICH4) AC97 Audio Controller (rev 03)复制代码通过上面的输出,我们知道这台机器用的是intel AC97声卡;所以我们要特别注意AC97的配置; 代码: 找到 Device Drivers - Sound - Sound card support 声卡的支持,这个是一定要选中的吧; Advanced Linux Sound Architecture 对声卡支持的ALSA驱动的支持; 下面有OSS驱动,只是一部份。如果想用OSS的驱动更全的,可以去买;其它的就看如下的选吧; 1. Sequencer support 2.3. Sequencer dummy client 4.5. OSS Mixer API 6.7. OSS PCM (digital audio) API* OSS Sequencer API 8.9. RTC Timer support* Verbose printk Debug复制代码大多是默认的就好,如果您不知道是做什么用的,或者怎么用; 然后我们再向下看有 代码: Generic devices - 进入里面 1. Dummy (/dev/null) soundcard 2.3. Virtual MIDI soundcard 4.5. MOTU MidiTimePiece AV multiport MIDI 6.7. UART16550 serial MIDI driver 8.9. Generic MPU-401 UART driver 10.11. ISA devices - 如果您用ISA声卡就在这里面选; 12.13. PCI devices - 如果您用PCI声卡,就在这里面选,集成声卡也在这里; 14.15. USB devices - 这是USB声卡内核支持选项;我有一个这样的声卡,但没有试过; 16.17. PCMCIA devices - 这是PCMCIA声卡的选项,我还没有看过这样的声卡呢;如果您有,就在这里面动动手吧。复制代码因为我用的是Intel 集成的声卡,所以要在PCI中选择,我们在 中可以看到有两个与INTEL有关的; 代码: Intel/SiS/nVidia/AMD/ALi AC97 Controller 这个才是Intel AC97声卡的; Intel/SiS/nVidia/AMD MC97 Modem (EXPERIMENTAL) 这个是机器集成的INTEL猫的蜂鸣器的;因为我发现如果把猫的蜂鸣器的驱动也选上,可能造成两个冲突。所以只能选上面的那个; 我们再回到 Open Sound System - 中看看,与我用的声卡是不是有关的? 代码: 1. Open Sound System (DEPRECATED) 2.3. Intel ICH (i8xx) audio support 4.5. OSS sound modules 6.7. Loopback MIDI device support 8.9. Microsoft Sound System support复制代码我们也可以看到Open Sound System中也有好多的声卡驱动,大家根据前面的lspci -v 来选择吧。 3)对于操作系统所采用的文件系统的支持要编入内核,最好不要编成模块;(重要) 比如我的Fedora core 4.0 所采用的文件系统用的是ext3 ,所以我要把它直接编入内核;好处是不受模块丢失或者损坏而不能启动系统;而有时您把系统所采用的文件系统编译成模块,出现VFS错误,也有这方面的事,可能是您没有把ext3加入到相应的加载模块的配置文件中,所以我们为了减少麻烦,把风险降到最低,还是要直接置入内模的好; 代码: 1. File systems -2. Ext3 journalling file system support3. * Ext3 extended attributes4. * Ext3 POSIX Access Control Lists5. * Ext3 Security Labels复制代码如果您还有其它的硬盘分区要读取,比如是reiserfs、ext2、fat、fat32、ntfs等,这样的可以编成模块来支持; 再举一例:如果您的的操作系统用的是reiserfs的文件系统,当然就要把reiserfs的直接编入内核,其它的可以编成模块来支持了; 4)对于硬盘及RAID的支持,要直接编入内核; 比如ATA、SATA、SCSI及RAID的支持直接内核支持;有时编完内核后,启动时不能识别硬盘和RAID,大多事情出在这里;Slackware中在这方面有的是模块支持,我们可以把它由模块M改成内核*来支持; 如果您不明白,就按默认进行;SATA的硬盘的支持除了选中SATA的支持、IDE设备的支持以外,还要选中SCSI的支持; 5)对于咱们所没有的设备,可以在内核中不选,熟能生巧罢了; 比如我没有ISDN设备 ,所以就把ISDN去掉; 代码: 1. ISDN subsystem -2. Linux telephony support复制代码如果您没有1394的设备 ,当然可以把1394的支持也去掉;等等。 如果您有USB的设备,要把USB方面好好看看;比如大家常用的移动硬盘;USB猫等,还有扫描仪等; 内核配置就说这么多吧,太多了,我也说不清楚,水平有限啊; 配置好后先要保存 1. Save Configuration to an Alternate File复制代码出来一个 1. Enter a filename to which this configuration ,should be saved as an alternate. Leave blank to abort. 2.3. .config复制代码按回车就行了,这样就保存住了; 然后退出 Exit ,这时也会出现保存 ; 如果你想把.config保存起来,可以再复制一份到安全一点的目录,以备后用;五、编译内核; 代码: 1. rootlocalhost linux-# make 2.3. rootlocalhost linux-# make modules_install复制代码这样就编译好了,并把模块也安装在了 /lib/modules目录中了,请看: 代码: 1. rootlocalhost linux-# ls /lib/modules/ 2.3. 2.6.11-1.1369_FC4 复制代码六、安装内核及配置grub或lilo ; 1、复制bzImage等相关文件,并创建initrd文件; 代码: 1. rootlocalhost linux-# cp arch/i386/boot/bzImage /boot/vmlinuz-2. rootlocalhost linux-# cp System.map /boot/System.map-3. rootlocalhost linux-# cd /boot4. rootlocalhost linux-# /sbin/mkinitrd initrd-.img 复制代码我们把 编译出来的bzImage,拷入到/boot目录,拷贝成 vmlinuz-; 并且用 mkinitrd 来创建imitrd-xxx.img 文件,其中xxx为内核的版本号,是通过 查看 /lib/modules来版本来对应的,我们是编译出来的是 ,所以就运行上面的命令创建,创建的出来的是initrd-.img ;不创建这个文件,有时是启动不起来的,比如提示VFS错误等; 2、查看系统引导管理器grub或者lilo的配置文件。 如果想要让新内核能让系统引导管理器grub和lilo的菜单上能看得到,必须改 grub.conf或者lilo.conf,但我们必须保留老内核的在grub和lilo的启动菜单,毕竟我们编内核不能百分百的成功,对不对?安全第一吧; 我只说grub的,我没有lilo,也不会用。所以咱们还是GRUB吧,FC 4 系统引导管理器是 GRUB,所以我们谈谈GRUB的设置; 查看 /etc/grub.conf; 比如我的grub.conf的内容是这样的; 代码: 1. # grub.conf generated by anaconda2. #3. # Note that you do not have to rerun grub after making changes to this file4. # NOTICE:You do not have a /boot partition.This means that5. # all kernel and initrd paths are relative to /, eg.6. # root (hd0,7)7. # kernel /boot/vmlinuz-version ro root=/dev/hda88. # initrd /boot/initrd-version.img9. #boot=/dev/hda10. default=011. timeout=512. #splashimage=(hd0,7)/boot/grub/splash.xpm.gz13. #hiddenmenu14. title Fedora Core (2.6.11-1.1369_FC4)15. root (hd0,7)16. kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ rhgb quiet17. initrd /boot/initrd-2.6.11-1.1369_FC4.img18. title WinXP19. rootnoverify (hd0,0)20. chainloader +1复制代码我们要把老内核的启动保留下来,以防不测,我们只加入新的内核的启动;所以我加上这样一段; 代码: 1. title Fedora Core ()2. root (hd0,7)3. kernel /boot/vmlinuz- ro root=LABEL=/ rhgb quiet4. initrd /boot/initrd-.img复制代码咱们再来看一下改过后的配置文件; 代码: 1. # grub.conf generated by anaconda2. #3. # Note that you do not have to rerun grub
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 股东干股协议
- 2025房屋中介服务合同模板范本
- 产品定制生产协议合同书
- 机关事务管理局财务核算中心招聘面试经典题及答案
- 企业商业保险投保协议
- 2025年甘肃省白银市国家公务员行政职业能力测验模拟题(附答案)
- 2025遗产赠与合同范本
- 非营利机构贷款协议
- 借款协议担保条款
- 业务流程自动化实施指南手册
- 盗墓笔记解析版
- 课件:校罗盘的程序课件讲解
- 珠海市政府投资项目建设监督管理中心招考合同制职员公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 电力现货实战型交易策略分析
- 儿童感觉统合能力发展评定量表
- 案卷评查培训课件模板
- 一二手联动培训课件
- 创业中的团队管理与组建
- 骨科膝骨关节炎一病一品优质护理汇报课件
- 15D502 等电位联结安装
- 两单两卡安全培训
评论
0/150
提交评论