020-29133788
    资 讯
    您的位置:首页 >> 资 讯 >> LINUX应用 >> Linux教程 >> 正文
    Kernel核心编译(2.4.XXX版以下适用)

    点击:   发布日期:2013-01-04

    本文来自 www.020fix.com

    编译核心的理由当然是加快系统速度跟最佳化系统

    编译核心以前最好先把自身的硬体设备做一个完善的列表
    至于其它档案格式、通信协定、核心附加的部份则应该选用modules的方式
    并且针对主要的部份做为kernel的一部份

    kernel可以从ftp.kernel.org去下载
    假设当您把下载回来的kernel放在/use/src之下,经过解压后会放至在linux-2.4.XXX中的路径中
    如果当出安装系统的时后有包含kernel那么您可以直接到/usr/src/linux操做

    接下来介绍编译的程序
    第一步设定kernel的组态
    在设定的画面中有重多的设定画面
    make config  -- 文字介面,如果您极度了解kernel的文字设定介面那您可以采用这样的方式
    make menuconfig -- 文字式选单,使用选单的方式可以让您很明瞭的选用您的组态,在这边强烈建义使用
    make xconfig -- xwindow图形选单,其方式如同于menuconfig的效果,只是您是用滑鼠去勾选即可,最重要的是它是在xwindow下运做

    第二步
    make dep -- 定义kernel所有的makefile,这个步骤属于必须的,否则您在编译kernel可能会出现不明问题

    第三步
    make clean -- 清除过去的编译,第一次编译时可以略过这步,当然它也可以在编译完成后使用,目的在于节省空间以及安全上的考量

    第四步
    make bzlilo  -- 正式编译kernel并将kernel安装至lilo之中,基本上这是一定有的
    make bzImage -- 编译kernel并产生kernel的image出来,假设您使用磁片来开机

    第五步
    make modules -- 编译模组,这也是一定要的,没模组您可能会过的很痛苦,当然您kernel必须要有此选项
    在选项中Loadable module support必须要将Enable loadable module support及Kernel module loader作勾选才有效喔

    至于Set version information on all module symbols则是要让module加上版本资讯,让他可以在各版核心挂载

    第六步
    make moeuls_install --安装模组

    其它还有很多make的内容这边就暂且放着吧..

    注意:您可能须要去修改Makefile的内容,如设定boot Kernel的位置
    可以在Makefile中找到这一行#export INSTALL_PATH=/boot
    只要将#字去掉就可以让kernel安装在/boot之下


    基本上很少人去关心kernel选单中的内容
    不过早期的Linux书籍有对这方面做详述,但已经不适合目前使用
    所以小弟就整理出比较常用的选项来做描述,以便大家在编译核心的时候
    知道要使用那些合是自身硬体设备的选项

    kernel 选单说明

    Code maturity level options
      +- Prompt for development and/or incomplete code/drivers   本项针对开发中的套件做支援,基本上可以不使用
    Loadable module support   支援模组载入
      +-Enable loadable module support 本项必选,让核心支援模组载入
      +-Set version information on all module symbols 本项嘛,在编译模组的时候加上版本的资讯,基本上这应该不太需要
      +-Kernle module loader 必选,让核心支援模组载入
    Proccess type and features  处理器(CPU)的型式与功能设定
      +-(       ) Proccess family 本项是用来选择cpu的种类,请选用自身cpu的类别
      +-Machine check exception
      +-Toshiba Laptop support 是给Toshiba笔记型电脑用
      +-Dell laptop support 这是给Dell的笔记型电脑用
      +-/dev/cpu/microcode - Intel IA32 CPU microcode support
      +-/dev/cpu/*/msr - Model-specific register support
      +-/dev/cpu/*/cpuid - CPU information support
      +-BIOS Enhanced Disk Drive calls determin boot disk
      +-High Memory Support 基本上就让他保持在off,当然啦您的记忆体有超过4GB的话就可以开启
      +-Math emulation  模拟浮点运算,基本上我都是让它关闭,也就是不选择啦
      +-MTRR(Memory Type Range Register) support
      +-Symmetric multi-processing support
      +-Local APIC support on uniproccessors
      +-Unsynced TSC support
    General setup  一般性设定
    Memory Techology Devices (MTD)
    Parallel port support   并列阜支援
    Plug and Play configuration 自动安插及用设定(PNP)
    Block devices 区块装置
    Multi-device support (RAID and LVM) 对阵列及LVM的支援
    Networking option 网路通信协定选项
    Telephony Support
    ATA/IDE/MFM/RLL support
    SCSI support SCSI介面的支援
    Fusion MPT device support
    IEEE 1394 (FireWire) support (EXPERIMENTAL)
    I2O device support
    Network device support 网路卡驱动程式
    Amateur Raido support
    IrDA (infrared) support 红外线通信支援
    ISDN subsystem
    Old CDROM drivers(not SCSI, not IDE)
    Input core support
    Character devices
    Multimedia devices
    File systems 对于档案系统的支援
      +-Quota support
      +-VFS v0 quota format support
      +-Kernel automounter support
      +-Kernel automounter version 4 (also support v3)
      +-Reiserfs support
      +-Enble reiserfs debug mode
      +-Stat in /proc/fs/reiserfs
      +-ADFS file system support
      +-Amiga FFS file system support
      +-Apple HFS file system support
      +-Apple HFS+ (Extended HFS) file system support

    Console drivers
    Sound
    USB support
    Bluetooth support
    kernel hacking
    Cryptographic options
    Library routines

    基本上核心适用且稳定就不用经常更换
    除了有bug 或刚好有装置不支援