编译Linux 2.6内核for ARM step by step

资源
=====
===== ===== ===== ===== ===== ===== =====
OS
Ubuntu 7.04 (kernel version: 2.6.20-15)

ToolChain
ARM-GCC v3.4.1
http://www.handhelds.org

Linux kernel
linux-2.6.20.10.tar.bz2 & linux-2.6.20.tar.bz2
http://www.kernel.org

Linux kernel patch for OMAP
patch-2.6.20-omap1.bz2
http://www.muru.com

教程
OSK5912 Newbie Guide
http://oskfordummies.hp.infoseek.co.jp

步骤
1. 安装tool chain;
2. 根据《OSK5912 Newbie Guide》中的步骤编译内核linux-2.6.20.10:
  2.1. 当执行到“make menucongig”时候出错,出错提示如下:
-----------------------------------------------------------------------
shawn@shawn-laptop:/usr/src/linux-2.6.20.10$ make menuconfig
  HOSTCC  scripts/kconfig/lxdialog/checklist.o
在包含自 scripts/kconfig/lxdialog/checklist.c:24 的文件中:
scripts/kconfig/lxdialog/dialog.h:32:20: 错误: curses.h:No such file or directory
......
-----------------------------------------------------------------------

3. 根据《OSK5912 Newbie Guide》中的步骤编译内核linux-2.6.20:
  3.1. 执行到patch那一步时候就提示“不能把/tmp/*** patch到/documentomap/**”下面。怀疑是权限问题影响创建临时文件到/tmp下,但是sudo也不行;
  3.2. 第二天重试,这次直接在console中切换成root权限。step 3.1.通过,不知道原因;
  3.3. 执行“make omap_osk_5912_defconfig”,问题同step 2.

4. 问题可能出在没有安装ncurses-dev软件包,从而导致“make menuconfig”就不能使用。
  4.1. 使用命令“sudo apt-get install ncurses-dev”安装,提示“我选了 libncurses5-dev 而非 ncurses-dev”;
  4.2. 安装后“make menuconfig”正常;

5. 文档提示“make menuconfig”时候注意NFS相关选项要选中,查看一下,默认已经选中;

6. 执行“make”,开始等待;
  6.1. 特别看了下,默认编辑的FS包括autofs,autofs4,ext2,fat(M),jffs2,lockd(?),msdos(?)(M),nfs,nls(M),ramfs,sysfs,vfat(M);

7. 漫长的等待后,编译成功,生成二进制文件arch/arm/boot/compressed/vmlinux,另存为/home/shawn/doc/OMAP/vmlinux.20070429.

8. 下面的步骤需要编译uboot产生的工具mkimage,跳转到编译uboot;

9. 编译uboot之后,执行如下命令生成镜像文件uImage.cc,1.2MB大小;
@mkimage -A arm -O linux -T kernel -C gzip -a 0x10c08000 -e 0x10c08000 -n 'Linux Kernel Image' -d /usr/src/linux-2.6.20/linux.bin.gz /usr/src/linux-2.6.20/uImage.cc
  9.1. 有机会需要研究这些选项的使用方法,例如-n;
  9.2. 生成镜像文件时候给出提示信息如下:
--------------------------------------------------------------------------------
Image Name:   Linux Kernel Image
Created:      Sun Apr 29 22:41:33 2007
Image Type:   ARM Linux Kernel Image (gzip compressed)
Data Size:    1229135 Bytes = 1200.33 kB = 1.17 MB
Load Address: 0x10C08000
Entry Point:  0x10C08000
--------------------------------------------------------------------------------
  9.3. 另存为/home/shawn/doc/OMAP/uImage.cc.20070429.

你可能感兴趣的:(linux,image,ubuntu,文档,sun,patch)