linux实验三内核,实验三linux内核移植.docx

实验内容H—Linux内核移植

一、实验目的

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

二、实验内容

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

三、实验步骤

(1)实验准备

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

mkdir ?p /arm2410/kemel

cd /arm2410/kemel

#wgetftp://192.16&4.210/crosstool/linux?2.6.24.tar.bz2

cp /mnt/hgfs/ker nel/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? xjvfarm-linux-gcc.tar.bz2 ?C /

tar -xjvf /mnt/hgfs/kemel/u-boot/arm-linux-gcc.tar.bz2 -C/# 通过共亨 口 录

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

gedit /etc/profile

在export PATH前面插入

PATH=/arm2410/crosstool/gcc-4.1. l-glibc-2.3.2/arm-linux/bin/:$PATH

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

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

source /etc/profile

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

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

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

第0块命名为“uboot”,它用来存放u-boot.bin映像,起始地址是Nand Flash的 0x000000,最大 0x30000 个字节;

第1块命名为“kernel",用來存放内核,起始地址是Nand Flash的0x30000,最大 0X1D0000个字节;

第2块命名为lootfs”,用来存放根文件系统,起始地址是Nand Hash的 0x200000,最大 30M 字节;

笫3块命名为”ext?fsl“,留给用户存放其他文件系统,起始地址是Nand Flash 的0x2000000,最大32M字节;

至于具体要怎么分,这样根据你的目标机的Nand Flash來定,不能一概而论。分区的 方法就是修改 arch/arm/plat-s3c24xx 口 录卜?的 common-smdk.c 文件:

执彳了 gcdit arch/ann/plat-s3c24xx/common-smdk.c 命令,找到:static struct mtd_partition smdk_dcfault_nand_part[],在其中填入下面的内容(将原来的内容覆盖)

[0] = {

.name = "uboot°, .size = 0x30()()0, .offset = 0,

},

[11 = {

.name = "kernel", .offset = 0x30000, .size = Ox 1D0000,

},

[2]={ .name = "rootfs", .offset = SZ_2M, .size = SZ_lM*30,

},

[3] = {

.name = "ext-fsl", .offset = SZ_32M, .size = SZ_32M,

添加devfs文件系统支持

为了我们的内核支持devfs,以及在启动时能自动挂载/dev。编辑fs/Kconfig:在907

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值