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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部