emmoblin.github.com
分类: LINUX
2008-11-17 12:28:42
Contents
/sbin/lspci 可以获得usb,网卡,显卡等信息。
cat /proc/cpuinfo 获得cpu信息。
在Makefile中最开始的几行:
VERSION = 2 PATCHLEVEL = 4 SUBLEVEL = 22 EXTRAVERSION = -1
|
在安装内核的时候,所有模块会被按照如下形式cp到/lib/modules下,
/lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL-$EXTRAVERSION.
所以为了避免覆盖掉以前的系统模块,要修改EXTRAVERSION为一个有意义的唯一标示。
$ cd linux $ cp .config config.save |
make mrproper --> 回到初始裝態 (移除 *.o , 清除".config") |
make menuconfig |
自然是执行make menuconfig,如果有图形环境推荐使用make xconfig。
具体配置过程根据需要配置,对于每个选项的意义可以参考:
<
配置完成后,如果是2.4内核需要使用make dep生成依赖信息,在2.6内核不需要dep。在编译的时候自动会执行dep。
然后执行:
$make clean |
$make bzImage |
编译后镜像在arch/i386/boot目录下
$ make modules $ sudo make modules_install |
模块会被cp到/lib/modules/KERNEL_VERSION.
系统启动需要加载根文件系统,但是要加载跟文件系统在没有驱动之前是不能加载的,而驱动程序又在操作系统内。为解决这个问题就要使用initrd。Ramdisk镜像可以加载文件系统中的驱动。制作ramdisk
$ mkinitrd /boot/initrd-2.6.0.img 2.6.0 |
$ cp arch/i386/boot/bzImage /boot/bzImage-KERNEL_VERSION $ cp System.map /boot/System.map-KERNEL_VERSION $ ln -s /boot/System.map-KERNEL_VERSION /boot/System.map |
把编译生成的bzImage和System.map复制到/boot目录下,
bzImage可以改成vmlinuz也可以不改名。
在menu.list中添加
title Test Kernel (2.6.0) root (hd0,1) kernel /boot/bzImage-2.6.0 ro root=LABEL=/
initrd /boot/initrd-2.6.0.img |
编译2.6内核不需要这么多步骤,2.6内核作了优化,只需要执行
make
make install
make 时系统会自动完成make
dep 和 make bzImage 所做的工作。
sudo mkinitrd /boot/initrd.img-2.6.15.1 2.6.15.1也不用,
make install会自动作的,并且在grub中加入新内核的启动项。