laihama https://bbs.21ic.com/?277955 [收藏] [复制] [RSS]

日志

AT91RM9200移植linux-2.4.27笔记 zz

已有 1240 次阅读2014-6-25 16:43 |系统分类:嵌入式系统

终于在我的9200开发板上移植了linux-2.4.27,方法记录如下:

1.在http://www.kernel.org/pub/linux/kernel/v2.4/下载官方原版内核linux-2.4.27.tar.bz2

   在http://www.arm.linux.org.uk/developer/v2.4/下载arm相应版本补丁patch-2.4.27-vrs1.gz

(用迅雷下载比较快)

2.将这两个压缩文件拷贝到/usr/src/arm下

   使用[root@localhost arm]# tar jxvf linux-2.4.27.tar.bz2  解压内核

   使用[root@localhost arm]# zcat patch-2.4.27-vrs1.gz |patch -p0解压并安装补丁

   (如果没有安装交叉编译工链,要解压tar -jxvf cross-2.95.3.tar.bz2到/usr/local/arm中)

3.修改Makefile文件

   ARCH := arm

   CROSS_COMPILE = arm-linux-

   (前提是已经将/usr/local/arm/2.95.3/bin交叉编译工具添加到PATH中,否则要写全路径

    CROSS_COMPIL  =  /usr/local/arm/2.95.3/bin/arm-linux-)

4.编译内核

   进入linux-2.4.27目录。

   [root@localhost linux-2.4.27]# make mrproper    清理源代码树

   [root@localhost linux-2.4.27]# make at91rm9200dk_config    配置开发板

   [root@localhost linux-2.4.27]# make menuconfig   菜单模式下裁减内核,根据需要选择

   [root@localhost linux-2.4.27]# make dep clean   建立依赖关系,并清理之前生成的不相关文件

5. 制作映象

   make Image 或者 make zImage。这要看你后面使用什么方式的内核映象。如果是make Image,则生成vmlinux,需要arm-linux-objcopy进行处理,生成uImage影响文件。如果是make zImage,则生成zImage,vmlinux,system.map。zImage用go启动;uImage用bootm启动

   我使用的是

  [root@localhost linux-2.4.27]# make Image  生成vmlinux和System.map

  [root@localhost linux-2.4.27]# arm-linux-objcopy -O binary -S vmlinux linux.bin   生成linux.bin

  [root@localhost linux-2.4.27]# gzip -v9 linux.bin      生成linux.bin.gz

  [root@localhost linux-2.4.27]# /home/guoshengwei/u-boot-1.1.1/tools/mkimage -n 'linux Kernel' -A arm -O linux -T Kernel -C gzip -a 0x20008000 -e 0x20008000 -d linux.bin.gz uImage      生成uImage

  上面mkimage工具在uboot中,要根据个人uboot所在目录修改;-T后面的参数是映象类型,Kernel表示内核,开始我写成ramdisk了,这是后面生成文件系统映象时用的,所以启动时老师提示 Image Type Wrong

   6. 烧写    启动开发办,进入uboot,使用tftp 21000000 uImage下载映象到RAM21000000处,再bootm 21000000就可以启动了。或者把内核烧写到flash中


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)