linux-2.6.32.2内核在mini2440上移植(副本).docVIP

  • 1
  • 0
  • 约4.92万字
  • 约 58页
  • 2017-04-19 发布于北京
  • 举报

linux-2.6.32.2内核在mini2440上移植(副本).doc

移植环境(红色粗字体字为修改后内容,蓝色粗体字为特别注意内容) 3,编译编译环境:arm-linux-gcc v4.4.3,arm-none-linux-gnueabi-gcc v4.5.1。 4,开发板:mini2440,2M nor flash,256M nand flash。 5,u-boot版本:u-boot-2009.08 6,linux 版本:linux- 7,参考文章: 【1】嵌入式linux应用开发完全手册,韦东山,编著。 【2】 HYPERLINK /u3/101649/showart_2276906.html /u3/101649/showart_2276906.html ?【3】Mini2440 之Linux 移植开发实战指南 1.1,构建自主开发环境 我们在进行u-boot移植时,在 HYPERLINK /blog/static/54900194201141282946225/ \t _blank u-boot-2009.08在mini2440上的移植(六)增加引导内核功能提到过机器码(MACH_TYPE),在引导测试时,为了便于测试,使用的是友善官方移植好的linux内核。现在我们将从这里着手,逐步开始linux内核的移植。 【1】下载并解压内核源码 在命令行终端中可以通过下列方式下载,当然用其它下载工具下载 [root@localhost ~]# wget? HYPERLINK /pub/linux/kernel/v2.6/linux-.tar.gz /pub/linux/kernel/v2.6/linux-.tar.gz 然后解压: [root@localhost ~]# cd ./linux-test/ [root@localhost linux-test]# tar -zxf ../linux-.tar.gz [root@localhost linux-test]# ls linux-? linux-2.6.39? yaffs2? yaffs2.tar.gz [root@localhost linux-test]# cd linux- [root@localhost linux-]#? 【2】指定交叉编译变量 我们移植目的是让 Linux- 可以在mini2440 上运行。首先,我们要使得Linux- 的缺省目标平台成为ARM 的平台,修改总目录下的Makefile。 用gedit打开/Makefile,定位到183行,修改如下: # Alternatively CROSS_COMPILE can be set in the environment. # Default value for CROSS_COMPILE is not to prefix executables # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile export KBUILD_BUILDHOST := $(SUBARCH) ARCH???= arm CROSS_COMPILE??= arm-linux- # Architecture as present in compile.h 其中,ARCH 是指定目标平台为arm,CROSS_COMPILE 是指定交叉编译器,这里指定的是系统默认的交叉编译器,如要使用其它的,则要把编译器的全路径在这里写出。注意???在arm和arm-linux-后不要留空格,否则在编译时会出现错误。 接下来,要测试一下linux 的编译是否能正常通过。执行: [root@localhost linux-]# make s3c2410_defconfig 使用缺省内核配置文件,s3c2410_defconfig 是SMDK2440 的缺省配置文件 [root@localhost linux-]# make 编译时间较长... ... 。编译通过,在此我们先不必烧写到开发板验证它的正确性。 【3】建立自己的目标平台 (1)关于机器码 以 上编译是用的 Linux 内核本身支持的目标平台配置,它对应于SMDK2440。现在我们要参考SMDK2440 加入自已的开发板平台,我们使用的是mini2440,因此取名为MINI2440。需要说明的是,Linux- 本身已经包含了mini2440 的支持,这样就出现了重名。那怎么办呢?在此我们依然使用MINI2440 这个名称,只不过在后面的移植步骤中,把原始内核自带的mini2440 代码部分直接删除就可以了,以免和我们自己移植的混淆。 首 先,很关键的一点,内核在启动时,是通过bootloader 传入的机器码(MACH_TYPE)确定应启动哪种

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档