ATmel AT9200 Linux内核编译指南(转)

   最近正在对ATmel AT9200 的K9s开发板进行熟悉,想移植Linux操作系统到开发板上。学习在linux下的编程技能。涉及到了u-Boot的移植以及编译以及Linux内核的编译。下面就对我近期的操作简要阐述如下:(由于刚刚接触Linux,有错误的地方希望大家指出)。
         1。到ftp站点下载交叉编译工具链:ftp.arm.linux.org.uk  上面有2.95.3版本 以及3.x版本。(注意 :Linux 2.4.xx及其以下的内核源码用2.95.3的交叉编译器来编译就可以了;而2.6.xx的内核源码一般要用到cross-3.x以上的版本来编译)
       2. 读取Readme文件,了解安装路径;一般是/usr/local/arm/
           命令如下:
           #mkdir /usr/local/arm
           #cd /usr/local/arm
           #tar jxvf cross-2.95.3.tar.bz2
           然后添加路径(设置环境变量):
           $cd
           $ls -a
           $vi .bash_profile

           # .bash_profile
           # Get the aliases and functions
           if [ -f ~/.bashrc ]; then
                  . ~/.bashrc
            fi
           # User specific environment and startup programs
            export TARGET=arm-linux
            export PRJROOT=/home/armlinux
            export PREFIX=${PRJROOT}/tools
            export TARGET_PREFIX=${PREFIX}/${TARGET}
            export            
   PATH=$PATH:$HOME/bin:$PREFIX/bin:/usr/local/arm/2.95.3/bin:/sbin:/usr/sbin:/usr/local/sbin
            unset USERNAME
       (环境变量的设置涉及到linux下用户的管理,以及shell的编程,由于刚刚接触,对其不甚了解,后面将继续介绍,大家可以参考一下shell的知识,环境变量的设置主要涉及到.bash_profile 和.bashrc两个文件。) 
        3.交叉编译的工具链建立后,我们就可以去下载linux的内核了。内核可以到www.kernel.org上下载。注意这样下载下来的是标准内核版本,而我们需要的是ARM平台的linux内核。这是通过安装armlinux的内核补丁来完成的。所以我们还必须到ftp.arm.linux.org.uk下载相关的内核补丁。注意版本的一致性! 针对9200,我下载的是2.4.27版本,补丁是patch-2.4.27-vrs1.bz2。 原来下载的2.4.18版本,但是该版本的arch/arm/def-config中没有at9200开发板的配置文件。所以采用27版本。
       将内核2.4.27版本在/usr/local/arm解压(tar jxvf linux-2.4.27.tar.bz2);
       将patch-2.4.27-vrs1.bz2进行解压(bunzip2 patch-2.4.27-vrs1.bz2),将解压出来的文件拷贝
到 2.4.27的解压目录内,用目录patch -p1 < patch-2.4.27-vrs1.bz2进行补丁安装;
       # make at91rm9200dk_config进行开发板的配置;
       #make menuconfig   对内核进行配置,在里面可以看到9200的选项,这就是上面一步添加的。
        #make clean dep  建立文件依赖关系
        make Image 或者 make zImage。这要看你后面使用什么方式的内核映象。如果是make  Image,则生成vmlinux,需要arm-linux-objcopy进行处理,生成uImage影响文件。如果是make zImage,则生成zImage,vmlinux,system.map。
zImage和uImage对应的u-boot处理的方式也不相同。
 
        上面就是我编译内核的过程,可能有很多错误,过程也不尽详细。后续对linux了解更深后,会继续对其修改以及增加内容。
        
posted @ 2007-05-21 11:02  曹立松  阅读(2271)  评论(3)    收藏  举报