|
终于在我的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中 |