编译Linux系统内核的方法步骤

  
 
 1.须要先安装编译环境
    进入 root 账户:
    > su
    输入密码
    安装必要的工具:
    > apt-get install build-essential
    (安装 gcc, make 等)
    > apt-get install libncurses-dev
    (安装 make menuconfig 时必须的库文件)
    > apt-get install kernel-package, fakeroot
    (Debian 系统里生成 kernel-p_w_picpath 的一些配置文件和工具)
    > apt-get install initramfs-tools, module-init-tools
    2.安装 kernel-source:
    能够从 Ubuntu 的源安装,这样的好处是简单,并且安装的内核是Debian 化了的,缺点是内核不是最新的内核。
    > apt-get install linux-source
    也能够从 www.kernel.org 下载内核安装。kernel.org 的境象应该不少,选一个最快的来下载,由于要下载的文件很大。我这里介绍的是安装 2.6.24 的内核,加上了 ck 的补丁。
    下载 linux-2.6.24.tar.bz2 和 patch-2.6.24.bz2 ,而且把它们都存放在 /usr/src 目录下。
    > tar xvjf linux-2.6.24.tar.bz2
    > ln -s linux-2.6.24 linux
    (若是已经有了 linux 目录,则要先将其删除)
    > cd linux
    > bzcat ../patch-2.6.24.bz2 | patch -p1
    至此,内核源文件以及补丁就都安装好了。
    3.编译内核
    把源码包解压到 /usr/src/linux-2.6.24,而后在/usr/src/下建立一个名为linux的指向/usr/src/linux-2.6.24的连接(link)。
    在shell中输入
   
root@FE2000 :~# cd ..
   
root@FE2000:/ # cd /usr/src/linux
    root@FE2000:/usr/src/linux # make mrproper
    root@FE2000:/usr/src/linux # make menuconfig
    或者make gconfig
    此时qconf已经读取了默认配置,你也能够这样作:
    在qconf中点File->Load 去读取其余的设置文件。
    好比 /boot/config-2.6.18-23-686
    下面在qconf中配置.config文件。选“Y”(打勾)就是把它编译到内核中,选“M”(打点)把它编译成模块,供内核动态调用。选“N”就是不安装。也能够保持默认选项……
    下面只是简单提几项:
    General setup
    Optimize for size (Look out for broken compilers!) 发烧友能够选Y以得到更小的内核。
    Processor type and features
    Symmetric multi-processing support 若是你没有多线程处理器这个能够选N
    Processor family 根据你的CPU来选择。
    High Memory Support 1G以上内存的选“4GB”, 1G如下的,未来也不打算升级到1G的,选“off”.
    Bus options (PCI, PCMCIA, EISA, MCA, ISA)
    PCI support
    PCI Express support 老式机器没有PCI-E设备的能够选N
    ISA support 较新的新机器没有ISA设备,能够选N
    MCA support 通常选N
    NatSemi SCx200 support 通常选N
    PCI Hotplug Support
    Support for PCI Hotplug (EXPERIMENTAL) 若是没有PCI热插拔设备,选N
    Device Drivers
    Block devices
    Packet writing on CD/DVD media
    Enable write caching (EXPERIMENTAL) 若是你有刻录机,想启用写缓存功能,选Y
    ATA/ATAPI/MFM/RLL support
Include IDE/ATA-2 DISK support 若是你的/boot是放在IDE硬盘上,那么这里必定要选Y,选M都不行。不然启动时会出现“waiting for root file system”的提示而停滞不前。
    SCSI device support 若是有SATA硬盘,就选Y
    SCSI disk support 若是你的/boot放在SATA硬盘上,必定要选Y。
    Character devices
    I2C support 通常能够选Y或者M
    Graphics support 不建议把显卡驱动编译进内核。,选M,编译成模块方便往后升级驱动。
    Support for frame buffer devices
    VESA VGA graphics support 能够选Y
    Logo configuration
    Bootup logo 若是想看到Linux启动logo,选Y
    Sound
    Sound card support 选Y, 除非你没有声卡
    其余的驱动,酌情添加删除,根据机器配置删除不须要的驱动能够缩短编译时间。你能够在命令行下输如lspci或者dmesg查看硬件信息。
    File systems
    CD-ROM/DVD Filesystems
    ISO 9660 CDROM file system support 通常选Y
    DOS/FAT/NT Filesystems
    VFAT (Windows-95) fs support 有FAT32分区就选Y吧
    NTFS file system support 有NTFS分区就选Y吧
    NTFS write support 若是想对 NTFS分区进行写操做,选Y
    Native Language Support
    Simplified Chinese charset (CP936, GB2312) 选Y或者M使读取FAT分区不会遇到中文乱码现象
    设置完毕后,按一下保存按钮,不管原先载入的是哪一个配置文件,qconfig都将设置保存到 /usr/src/linux/.config 这个隐含文件。
    下面输入make开始编译,这一过程大约须要40-100分钟,具体的要看你的机器速度啦……
   
root@FE2000:/usr/src/linux # make
    安装内核
   
root@FE2000:/usr/src/linux # make install
    编译模块
   
root@FE2000:/usr/src/linux # make modules
    安装模块
   
root@FE2000:/usr/src/linux # make modules_install
    而后
   
root@FE2000:/usr/src/linux # cd /
   
root@FE2000:/usr/src/linux # /usr/sbin/mkinitramfs -o /boot/initrd.img-2.6.24 2.6.24
    若是有出错提示,多是由于 initramfs-tools 没有装,先把它装上吧。
    若是没有这一步骤,那么开机就会出现提示
    ……
    initrd /initrd.img-2.6.24
    Error 15: File not found
    4.修改内核启动选项
    最后打开 /boot/grub/menu.lst
    在 ## ## End Default Options ## 下面添加相似下面的两段
    title Ubuntu, kernel 2.6.24
    root (hd0,4)
    kernel /vmlinuz-2.6.24 root=/dev/hdd6
    initrd /initrd.img-2.6.24
    savedefault
    boot
    title Ubuntu, kernel 2.6.24 (recovery mode)    root (hd0,4)    kernel /vmlinuz-2.6.24 root=/dev/hdd6 ro single    initrd /initrd.img-2.6.24    boot    注意 root和kernel字段要模仿menu.lst下面已有的内容写。    下面是 (hd0,4),那么你也写(hd0,4),下面写root=/dev/hdd6,你也写root=/dev/hdd6,只是内核的版本号改成如今编译的版本号。    而后把下面重复的savedefault删除。    从新启动计算机,在GRUB中选择新内核启动。
相关文章
相关标签/搜索