资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
英文专业资料翻译英文专业资料翻译英文专业资料翻译英文专业资料翻译 英文资料题目英文资料题目英文资料题目英文资料题目 Running Linux on ARM Development Platforms 英文资料来源英文资料来源英文资料来源英文资料来源 http:/www.arm.com 中文译文题目中文译文题目中文译文题目中文译文题目 在在在在 ARMARMARMARM 开发平台上运行开发平台上运行开发平台上运行开发平台上运行 LinuxLinuxLinuxLinux 专专专专 业业业业 自动化自动化自动化自动化 姓姓姓姓 名名名名 学学学学 号号号号 指导教师指导教师指导教师指导教师 二 OO 八年六月十六日 在在在在ARM开发平台上运行开发平台上运行开发平台上运行开发平台上运行Linux 2007年1月 摘要摘要摘要摘要 这篇文档介绍了怎样在基于ARM的开发平台上安装和运行Linux的步骤,包括 安装bootloader, 内核和文件系统镜像。 这篇文档并不打算成为关于开发与建立Linux 系统的完全手册,在开源社区里已经有大量可获得的关于这方面的信息, 开源论坛也 提供了许多有价值的信息。请参考ARM Linux 的维客网站(www.linux-arm.org)或 者www.arm.com/linux来获得更多信息。 索引索引索引索引 1.安装预先编译好的镜像 2.Boot Loader 3.Linux内核 4.文件系统 5.编译工具 5.1交叉编译 5.2二进制兼容性 6.uCLinux 7.附加注意事项 1.安装预先编译好的镜像安装预先编译好的镜像安装预先编译好的镜像安装预先编译好的镜像 镜像文件可以通过比如ARM RealView ICE这样的调试器安装到闪存上, 这种调 试器通过JTAG运行控制器与开发板相连。 .ARM RealViewr Integrator的开发板:使用ARM Flash Utility(由板子提供)来烧写镜像 (比如:AFU.axf),在调试器中运行工具: AFU program 1 u-boot c:/tmp/u-boot.bin Lowest available flash at location 0x24440000 block B30 Programming Block B30 . .ARM RealView Versatile(PB,AB)926EJ-S : 通 过 调 试 器 运 行 由 开 发 提 供 的 BootMonitor.axf程序来烧写镜像。 程序上有几个关于烧写ELF格式或者是二进制格式 的选项菜单。为了通过闪存运行程序你应该按照如下烧写ELF格式的镜像到闪存: FLASH write image c:/tmp/u-boot.axf NAME u-boot RealView Versatiles提供了一个叫做“Network Flash Utility(NFU)”的附加的闪存烧写 工具。这个工具能够通过以太网连接来烧写镜像到闪存。为了从一个IP已知(比如 192.168.0.1)的服务器下载并烧写一个U-Boot镜像文件到闪存,你可以使用如下命令 序列: manage dhcpc start manage map n: 192.168.0.1 flash write image n:/u-boot.axf 请参考你的RealView Versatile 系列光盘中提供的文档来获得更多的信息和精确的语法。 在烧写其他镜像文件(内核与cramfs文件系统)的时候可以使用类似的过程。 这些镜文 件应当按照二进制格式烧写而不是按照ELF格式烧写。 更多的信息请参考随开发板所提供的固件文档。 2.Boot Loader U-Boot 是 RealView Integrator 与 Versatile 版 本 的 启动 加 载器 。 可 以通 过 www.sourceforge.net/projects/u-boot/来获取源代码和文档。 U-boot预期是在ARM板子上内存的的0x0100000地址处开始运行。提供的镜像可以 通过一个调试器加载而从这个地址上运行。 .RealView Integrator:原始二进制文件(或者是ELF文件)可以在闪存的开始处被替换 并当作默认的镜像而被执行。 .RealView Versatile:你应当使用ELF文件直接从闪存运行,或者从内存加载和运行原 始的二进制文件。 为了编译U-Boot你需要从上述网站上下载源代码的发行版本。对RealView Integrator 与 Versatile 的支持已经加入了U-Boot CVS/GIT的软件仓库。在写这篇文档的时候 附加的补丁或许已经应用上了,如果有的话,这些补丁应当被列出在对外公布的邮 件列表上(源代码可以从http:/www.arm.Com/linux/linux_download.Html获得)。一旦 你已经解压源码,你需要设置并编译BootLoader。你可以从Makefile的上面部分来参 考所有的目标列表。为了设置与编译BootLoader你应当执行下列命令: .RealView Integrator/CP: make integratorcp_config make .RealView Versatile: make versatileab_cofig make 编译出的可执行文件(二进制或者是ELF格式)被放置在最顶层的目录。 为了编码传递 给Linux内核的默认的命令行参数和默认的BootLoader命令序列(比如 dhcp/boottp, flash等),使用了很多的宏定义。这其中的许多宏定义可以通过使用U-Boot的set命令 进行交互式的改变。 ARM RealView Versatile 开发板所用的参数可以通过各自的在include/configs目录下 的配置文件得到,这些配置文件都定义了像 CONFIG_COMMANDS,CONFIG_BOOTARGS 与 CONFIG_BOOTCOMMAND 这 样的宏。 Linux 内核通常从由宏CFG_LOAD_ADDR(0x7c0)指定的地址开始加载,然后从 0x8000处执行一个未被压缩的内核镜像。 当将一个原始的Linux内核二进制文件镜像 转化成一个被U-Boot加载的文件时,这些参数由U-Boot的mkimage工具指定。当编 译U-Boot时mkimage工具被内置在里面。 注意,当你通过以太网下载一个内核镜像的时候,你应当配置你的服务器能够识别 你的开发平台的网卡地址和镜像的下载位置。 从闪存的镜像中启动从闪存的镜像中启动从闪存的镜像中启动从闪存的镜像中启动 当把U-Boot启动文件加入Linux内核二进制镜像中去时, 请确认加载与执行的地 址都被设置为0x8000。启动命令应当是: -IntegratorCP #cp 0x 0x7fc0 0x IntegratorCP # bootm 你也可以使用U-Boot所带的“help“命令来查看每个命令的精确的语法。 命令行命令行命令行命令行 Linux内核的命令行可以在U-Boot的提示符下通过使用set命令来改变。 “printenv“命令可以用来列出当前的环境变量。当从一个BootLoader执行一个Linux 内核的时候,内核就会使用由指出的命令行来代替任何默认的内置的命令行。 镜像可以允许你保存环境变量到闪存中,这可以通过使用“saveenv“命令来实现。 从http:/www.arm.com/linux中获得的U-Boot镜像包含了已保存在闪存中的从闪存的 低部开始的按照的U-Boot,内核和文件系统的顺序保存在闪存中的命令行。 3.Linux内核内核内核内核 内核的源代码可以从www.kernel.Org网站上下载并获得,任何附加的补丁应当 按照如下添加在基本内核目录树上: $cd linux-2.6.19/ $patch -p l 对于每一个平台和预先编译的镜像都有配置文件。相关的配置文件应当复制到内核 文件并命名为.config,内核可以通过运行make xconfig或者等价的命令(比如 make menuconfig)来配置。以下命令序列可以用来编译构建内核: $make xconfig $make Image -在 arch/arm/boot/中产生原始的二进制镜像 一个包含与内核镜像相关且能够被调试器加载的调试信息的vmlinux文件会产生(假 设内核在编译的时候使用了-g选项) BootLoader同时也能检测到平台的ID,信息被保存在寄存器中。内核在启动并执行 以前需要平台的编号。当直接从一个调试器中启动一个内核的时候,寄存器中的值 需要有调试器设定。 4.文件系统文件系统文件系统文件系统 由本页提供的内建的文件系统可用在ARM RealView Integrator 与 Versatile 版本的平台上。使用一个脚本文件可以在运行的时候检测平台的类型,并且创建一 个指向适当的串口设备(/dev/tty.)的符号链接。 这些镜像包含了一个系统工具,命令和应用程序的子集。为了配置一个压缩的文件 镜像,Arm_Embedded_Linux_2.3.0.tar.gz文件需要解压。编译的指令由最顶层的 README文件 提供,此文件还列出了产生一个压缩文件系统镜像的各个步骤。用于编写此文件系 统(比如说cramfs文件系统)中应用的程序的源代码包的复件可以以代码的形式向 ARM网站索取(联系ARM技术支持)。 文件系统或者通过NFS被挂载或者放在闪存上,取决于平台的设置和在启动时传递 给内核的命令行参数。在任何情况下,文件系统的位置由内核的命令行参数以 “root=.“选项的形式具体指出,或者是root=/dev/mtdblocki 或者是 root=/dev/nfs,其 中i 由合适的分区数代替。 在RealView Versatile版本平台上,mtdpart选项需要被定义以便指出镜像存放在闪存 的哪个位置。这些已经在内核源代码目录下的 driver/mtd/目录下整理好了,并且在 配置文件中还有一个与RealView Versatile平台二进制镜像有关的配置文件。 5 编译工具 5.1交叉编译 ARM交叉编译工具链需要安装在宿主机上 以便用来编写Linux内核或者应用 程序。在默认情况下这篇文章假设是在一个基于Linux宿主机的开发平台上。 请注意下载下来的预先编译好的工具链需要假设你安装在系统上的Glibc的函数库 的版本=2.3。 以root用户来执行如下步骤来解压并且安装预先编译好的工具链到你的系统: $mkdir /usr/local/arm/gnu/release4.1.1 $cd /usr/local/arm/gnu/release4.1.1 $tar xvfz sourceyg+-4.1.1-arm-none-linux-gnueabi-i686-
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号