几点关于内核编译的常识

make modules 只是將 modules 產生在 /usr/src/linux-xxxx 底下。
make modules_install 才會 copy 到 /lib/modules/xxxx 那邊。

mkinitrd 的版本要跟着内核走。旧的要更新。
mkinitrd 是制作initrd.img的脚本。
initrd-version.img,类似ramdisk,把一段程式打包到img里,然后在内存里开辟一段区域,一般是2m,释放到那里运行,都是一些初始化的程式.
假如机器使用的是scsi设备,则一定要做这一步。
因为scsi设备的驱动一般不编译到内核中,而放到initrd.img中
(存疑,假如scsi driver都选成build in,能否不要?)

用法
mkinitrd /boot/initrd-2.6.9.img 2.6.9
参数2 2.6.9 代表的是在/lib/modules/xxxx的xxxx
会按照这个目录下的module的内容来生成initrd img

将kernel 和 initrd.img配置好,可用的new-kernel-install 脚本。
这个脚本现在已写道make install这个target 中了

用法
/sbin/new-kernel-pkg --mkinitrd --depmod --install

假如grub.conf 中的
新添内容
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
initrd /initrd-2.4.20-8.img
加载失败
可改为
kernel /vmlinuz-2.4.20-8 ro root=/dev/hdax hdc=ide-scsi
这种写法。hdax就是linux 的 / 安装位置,比如现在我的就是hda3

假如没有initrd.img
能够写
no initrd

下面是内核配置的内容,
首先这个是请教来的

最保险的办法应该是使用第一次安装时生成的 config .

将老的config copy到当前的/usr/src/linux.verson/

然后make oldconfig
这个用法应该是使用上次的config,在这儿就是刚copy过来的那个。


一个常用技巧,在xconfig或gconfig编辑器Options选单下提供了几种很有用的内核配置选项。
◆ Show all options选项。系统显示任何可用的内核配置选项,即使是某选项由于各种原因无法被选取(通常情况下是由于和之相关的选项未被选取)。这一选项能够帮助用户了解所需要的选项是否存在于内核资源中。
◆ Show debug info选项。系统显示和帮助窗口中所选选项相关的内核配置变量。这一选项能够帮助用户了解激活其他内核配置选项所需的前提选项。
◆ Show Name选项。系统显示和每个内核配置选项相关的内核配置变量的名称,能够帮助确定内核配置变量间的从属关系。