- 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