在实验箱上的Linux根目录下,实验三linux内核移植.doc

实验三linux内核移植

实验内容三—Linux内核移植

一、实验目的

根据前两次实验的基础上做Linux内核移植实验,为以后移植应用程序做准备(P84)。

二、实验内容

在Linux下利用交叉编译工具配置编译zImage并烧写到arm开发箱中。

三、实验步骤

(1)实验准备

从网上下载Linux的最新版本,解压后可以看到它的全部源代码,我们这里以linux-2.6.24为例,实现Linux的内核移植。

mkdir -p /arm2410/kernel

cd /arm2410/kernel

#wget 10/crosstool/linux-2.6.24.tar.bz2

cp /mnt/hgfs/kernel/crosstool/linux-2.6.24.tar.bz2 .

tar -xjvf linux-2.6.24.tar.bz2

cd linux-2.6.24

(2)修改顶层Makefile

在顶层Makefile中先要定义交叉编译器,这里就使用我们第一次实验中构建的交叉编译器。查找ARCH,在193行左右修改确认ARCH和CROSS_COMPILE的值

ARCH ?=arm

CROSS_COMPILE ?= arm-linux-

如果学生机上没有交叉编译环境,先从教师机上下载交叉编译环境或者通过共享目录来解压已经做好的交叉编译环境。

#wget 10/u-boot/arm-linux-gcc.tar.bz2

#tar -xjvf arm-linux-gcc.tar.bz2 -C /

tar -xjvf /mnt/hgfs/kernel/u-boot/arm-linux-gcc.tar.bz2 -C / #通过共享目录

为了方便使用arm-linux-gcc,我们可以把它所在的目录添加到环境变量中

gedit /etc/profile

在export PATH前面插入

PATH=/arm2410/crosstool/gcc-4.1.1-glibc-2.3.2/arm-linux/bin/:$PATH

这样一句,以后启动就可以直接使用arm-linux-gcc了。

要使环境变量立马生效,可以使用下面的命令。

source /etc/profile

我们可以用arm-linux-gcc -v来查看交叉编译器版本,如果是4.1.1就是正确的。

(3)设置Nand Flash分区信息表

设置Nand Flash的分区信息表是为内核启动以后加载文件系统用的,可以将Nand Flash看成我们PC机的硬盘,对Nand Flash的分区看成是对硬盘的分区,硬盘可以分成C盘,D盘之类,而Nand Flash则可以分成很多块,每块有不同的名字、大小和用途。下面是对Super-ARM实验箱的Nand Flash进行分区的情况:

第0块命名为"uboot",它用来存放u-boot.bin映像,起始地址是Nand Flash的0x000000,最大0x30000个字节;第1块命名为"kernel",用来存放内核,起始地址是Nand Flash的0x30000,最大0x1D0000个字节;第2块命名为"rootfs",用来存放文件系统,起始地址是Nand Flash的0x200000,最大30M字节;第3块命名为"ext-fs1",留给用户存放其他文件,起始地址是Nand Flash的0x000000,最大32M字节;至于具体要怎么分,这样根据目标的Nand Flash来定,不能一概而论。分区的方法就是修改arch/arm/plat-s3c24xx目录下的common-smdk.c文件:

执行gedit arch/arm/plat-s3c24xx/common-smdk.c命令,找到:static struct mtd_partition smdk_default_nand_part[],在其中填入下面的内容(将原来的内容覆盖)[0] = {

.name= "uboot",

.size= 0x30000,

.offset= 0,

},

[1] = {

.name= "kernel",

.offset = 0x30000,

.size= 0x1D0000,

},

[2] = {

.name= "rootfs",

.offset = SZ_2M,

.size= SZ_1M*30,

},

[3] = {

.name= "ext-fs1",

.offset= SZ_32M,

.size= SZ_32M,

}

(4)添加devfs文件系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值