在这里我写下我学习之旅,给以后留给参考
在arm-Linux移植先要完成一下基本流程:
1)配置交叉编译环境 arm-linux-gcc.4.3.2 (在我上传的资源中有)
2)获得Linux源码包linux-2.6.34.13.tar 并且对其中的几项参数的修改
Linux源码包下载地址2.6版本的ftp://ftp.kernel.org/pub/linux/kernel/v2.6/
1)好吧,我们现在就开始配置交叉编译环境
先将我提供的arm-linux-gcc源码包下载:
将这两个源码包拷贝到你的linux上, 然后进入相应目录,将usr.tar 和libc.tar 解压 具体命令如下:
tar zxvf usr.tar.gz -C /
tar zxvf libc.tar.gz -C /usr/local/arm/4.3.2/arm-none-linux-gnueabi/
-C 后面是解压指定的路径
这样我们就能在/usr/local/看到arm这个目录了
再修该 /etc目录下的profile文件, 向profile文件添加 pathmunge /usr/local/arm/4.3.2/bin 这句话 命令如下:
vim /etc/profile
在30行左右加入
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
pathmunge /usr/local/arm/4.3.2/bin
fi
保存推出 执行 source /etc/profile
到这里交叉编译环境配置完成
2)我用的是linux-2.6.34.13版本的内核(下载地址如上)。我将其解压在目录 /root/tar/ 下,命令如下:
tar jxvf linux-2.6.34.13.tar.bz2 -C /root/tar/
进入该目录 命令 cd /root/tar/linux-2.6.34.13/
先 make clean ,将不该有的东西去掉
在本版本中没有对gt2440的支持所以我们直接就用mini2440的配置好了(其实所有的2440开发板大部分都一样仅仅是一些接口的变化而已)
首先,我们要改分区表 命名:
vim arch/arm/mach-s3c2440/mach-mini2440.c
将函数:static struct mtd_partition mini2440_default_nand_part[] __initdata = {
[0] = {
.name = "u-boot",
.size = SZ_256K,
.offset = 0,
},
[1] = {
.name = "u-boot-env",
.size = SZ_128K,
.offset = SZ_256K,
},
[2] = {
.name = "kernel",
/* 5 megabytes, for a kernel with no modules
* or a uImage with a ramdisk attached */
.size = 0x00500000,
.offset = SZ_256K + SZ_128K,
},
[3] = {
. name = "root",
.offset = SZ_256K + SZ_128K + 0x00500000,
.size = MTDPART_SIZ_FULL,
},
};
该为:static struct mtd_partition mini2440_default_nand_part[] __initdata = {
[0] = {
.name = "uboot",
.offset = 0x00000000,
.size = 0x00080000,
},
[1] = {
.name = "kernel",
.offset = 0x00240000,
.size = 0x00400000,
},
[2] = {
.name = "yaffs2",
.offset = 0x00640000,
.size = 0x0F940000,
}
};
保存推出
在修该设备好。u-boot 在启动linux内核是会向linux传递参数的其中就包括设备好,gt2440的设备好是9999,修改如下:
vim arch/arm/tools/mach-types
在1990行左右将
mini2440 MACH_MINI2440 MINI2440 1999
改mini2440 MACH_MINI2440 MINI2440 9999
保存推出,再执行命令
make mini2440_defconfig ARCH=arm CROSS_COMPILE=arm-linux-
配置mini2440的文件
再执行命令
make zImage ARCH=arm CROSS_COMPILE=arm-linux-
这就开始编译内核了,在这期间需要20分钟左右
编译完成就会在目录 arch/arm/boot/ 下生成zImage文件 这个就是你要下载到gt2440上的但是不支持yaffs2
下篇 支持yaffs2