Ubuntu11.04下编译kernel

  • 1. 下载并解压Linux内核源代码, 内核源码下载地址为www.kernel.org,查看当前内核版本命令为uname -r。下载后解压至目录/usr/src.
  • 2. 解压完成后在终端下进入/usr/src/linux-2.6.34.13目录(其中2.6.34.13为我使用的版本号)
  • 3. 输入命令make mrproper,此命令用于清除以前编译产生的.o等其它文件,若为第一次编译此步骤可省略.
  • 4. 运行make menuconfig报错,提示需要安装ncurses的库:
  •    apt-get install libncurses5-dev
  • 5. make menuconfig
  • 6. make 编译:
  • 1)在/usr/src/linux-2.6.34.13/arch/x86/boot/下生成bzImage, vmlinux.bin, setup.elf, setup.bin, tools/build。
    2)编译modules, MODPOST.
  • 7. make modules_install, make install 此时内核各模块便安装完成,grub启动项也会自动修改(?)
  • 8. mkinitramfs -o /boot/initrd.img-source_version -v source_version
  •       For my example, mkinitramfs -o /boot/initrd.img-2.6.34.13 -v 2.6.34.13
    执行此命令将生成刚刚编译内核的镜像。其中命令mkinitramfs可分拆为“make init ram FileSystem”理解,2.6.34.13为正在编译的内核版本,不可随意更改。但“initrd.img-2.6.34.13”为所生成的内核镜像文件名,可根据自己需要进行修改、区别。

  • 9. update-grub: 遍历/boot/目录下的文件,更新/boot/grub/grub.cfg
  • 10. reboot.


其他的打包:
echo $SHELL
/bin/tcsh

把kernel模块安装到/home/<myname>/linux目录下:
setenv INSTALL_MOD_PATH /home/<myname>/linux
make ARCH=powerpc CROSS_COMPILE=xxx  modules_install

把头文件安装到/home/<myname>/linux目录下:
setenv INSTALL_HDR_PATH /home/<myname>/linux/
make ARCH=powerpc CROSS_COMPILE=xxx headers_install_all

打印Linux kernel版本:
make ARCH=powerpc CROSS_COMPILE=xxx kernelrelease
output: 3.0.43

把kernel打包成tgz包:
make ARCH=powerpc CROSS_COMPILE=xxx O=/home/<myname>/linux targz-pkg

其他target参考:make help

你可能感兴趣的:(ubuntu)