linux源码编译小记

  • 首先进行修改内核的步骤:

1.修改相应的c源文件

2.修改相应的Kconfig

3.修改相应的makefile (如果添加了其他的源文件)

  • 然后开始内核的编译步骤:

注:如果不是初次编译,那么要在第5,6步之间运行下面的命令:

1
2
make dep   (检查编译过程中的依赖的文件和头文件的一致性)
make clean (清除旧的目标文件)
  1. 首先make menuconfig,进行相关的配置,会生成内核配置文件

  2. 然后运行make命令 (编译内核)

  3. 运行make modules (编译模块) //这一步在2.6以后的内核不需要了,make命令已经集成了对模块的编译,
    本人在2.6.30.10的编译中也确定了这一说法

  4. 运行make modules_install (安装编译好的模块)

  5. 运行 mkinitramfs -o /boot/initrd-2.6.30.img /lib/modules/2.6.30(生成内核镜像文件)

  6. 运行make install (安装内核)

  7. 接下来就是修改启动选项,将你所编译成功的内核加载到启动选项中:
    运行gedit /boot/grub/menu.lst

按照上面原来的内核的启动选项格式书写即可。

注意:

  1. 如果在第5步没有进行相关的其他配置(除了对自己编写模块的编译配置
    那么最终生成的initrd文件会很大,比如我编译2.6.30.10的内核后就有57M多,而ubuntu系统自带的仅有8M多。

  2. 不要把7,8,9,10的顺序颠倒,具体结果没试验。

  3. 第10步将复制内核到boot目录,生成system.map。

  4. 第11步中menu.lst的vmlinuz及initrd的具体名字要和运行9,10后在/boot生成相关的文件一致。

本文参考了http://blog.chinaunix.net/u2/73525/showart_2015506.html,在此感谢!