本文记录了debian-6环境下初次编译内核的过程。
一、编译环境准备
二、下载源码1、首先是binutils、gcc、ncurses库的安装,
#apt-get install gcc
#apt-get install binutils
#apt-get install libncurses*
三、配置&编译内核当然是从官网http://www.kernel.org/下载了,我用的版本是2.6.32.59,:)
四、验证1、建立编译工程
#PROJECT_ROOT=/home/kernel
#mkdir $PROJECT_ROOT
解压代码
#cd $PROJECT_ROOT && tar -xjvf linux-2.6.32.59.tar.bz2
#cd linux-2.6.32.59
2、配置
根据目标机的硬件情况,和自己的功能要求开始裁剪内核
#make clean && make menuconfig
3、编译
#make && make modules
编译成功之后,会在CPU架构子目录下生成内核镜像
1、安装内核
#make install && make install_modules
2、生成初始化文件系统
#mkinitramfs -o /boot/initrd.img-2.6.32.59 && update-initramfs -u -k 2.6.32.59 -t
3、生成grub启动项
#update-grub
经过重启,成功了!
五、附件
#!/bin/sh WORK_HOME=/home/stone/samba_home/linux-2.6.32.59 BOOT_DIRECTORY=/boot/ KERNEL_IMAGE=$WORK_HOME/arch/x86/boot/bzImage KERNEL_MAP=$WORK_HOME/System.map # 1. build our new kernel make dep make clean make -C $WORK_HOME && make modules # 2. install it make install && make modules_install mkinitramfs -o /boot/initrd.img-2.6.32.59 update-initramfs -u -k 2.6.32.59 -t update-grub # check whether we build successfully if [ -e $KERNEL_IMAGE -a -e $KERNEL_MAP ]; then echo $KERNEL_IMAGE echo $KERNEL_MAP #cp $KERNEL_IMAGE /boot/ && cp $KERNEL_MAP /boot else echo "building failed!" fi
PS:如果重启之后grub启动菜单有乱码,需要进入系统之后再以root用户更新grub,重启--大招:-)
#update-grub