当前位置:文档之家› UBoot操作和常用命令

UBoot操作和常用命令

• UBoot操作和常用命令
主要内容
• u-boot概念解释 • u-boot基础指令使用介绍 • u-boot环境变量 • u-boot NAND Flash操作命令及烧录Linux
内核和文件系统
BootLoader概念
• Boot Loader 就是在操作系统内核运行之前运行 的一段小程序。通过这段小程序,我们可以初始 化硬件设备、建立内存空间的映射图,从而将系 统的软硬件环境带到一个合适的状态,以便为最 终调用操作系统内核准备好正确的环境
– mkimage -n 'linux-2.6.33.7' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -d zImage uImage
烧录Linux内核
• 烧录Linux内核并实现自启动。
– 1)通过mkimage工具把Linux内核镜像文件转为UBoot格式通 过tftp协议烧写到开发板内存的的0x30008000位置
烧写UBoot
• UBoot编译完成后,会在源码目录下生成uboot.bin这个二进制文件。
• 利用JLink工具把u-boot.bin烧写到 NORFlash的0x00000000位置即可。
mkimage
• 在使用UBLeabharlann ot引导Linux内核时,必须对Linux内核 镜像文件做适当的修改让UBoot可以引导使用
# protocol. The tftp protocol is often used to boot diskless \
• 通常,Boot Loader 是严重地依赖于硬件而实现 的,特别是在嵌入式世界。因此,在嵌入式世界 里建立一个通用的Boot Loader 几乎是不可能的。 尽管如此,我们仍然可以对Boot Loader 归纳出 一些通用的概念来,以指导用户特定的Boot Loader 设计与实现。
UBoot来源
• U-Boot 是 Das U-Boot 的简称,其含义是 Universal Boot Loader,是遵循 GPL 条款的开 放源码项目。最早德国 DENX 软件工程中心的 Wolfgang Denk 基于 8xxROM 和 FADSROM 的源码创建了 PPCBoot 工程项目,此后不断 添加处理器的支持。而后,Sysgo Gmbh 把 PPCBoot 移 植到 ARM 平台上,创建了 ARMBoot 工程项目。最终, 以 PPCBoot 工程和 ARMBoot 工程为基础,创建了 UBoot 工程。
相应的修改后,把文件系统烧入相应位置
tftp的安装和配置
• redhat9下载tftp-server-0.32-4.i386.rpm软件包
– rpm -ivh tftp-server-0.32-4.i386.rpm安装
• Fedora9下可以使用yum在线安装tftp-server
– yum install tftp-server
• 而今,U-Boot 作为一个主流、通用的 BootLoader,成功 地被移植到包括 PowerPC、ARM、X86 、MIPS、NIOS、 XScale 等主流体系结构上的百种开发板,成为功能最多、 灵活 性最强,并且开发最积极的开源 BootLoader。目前。 U-Boot 仍然由 DENX 的 Wolfgang Denk 维护
mkimage使用
• Usage: mkimage -l image • -l ==> list image header information • mkimage [-x] -A arch -O os -T type -C comp -a addr -e ep -n name -d
data_file[:data_file...] image • -A ==> set architecture to 'arch' • -O ==> set operating system to 'os' • -T ==> set image type to 'type' • -C ==> set compression type 'comp' • -a ==> set load address to 'addr' (hex) • -e ==> set entry point to 'ep' (hex) • -n ==> set image name to 'name' • -d ==> use image data from 'datafile' • -x ==> set XIP (execute in place) • 制作uImage 内核镜像文件
• 新建tftp根目录并授予权限
– mkdir /var/tftproot – chmod -R 777 /var/tftproot
• tftp server 配置
– tftp server配置文件,/etc/xinetd.d/tftp
修改tftp配置文件
# default: off
# description: The tftp server serves files using the trivial file transfer \
mkimage程序来对linux内核文件增加UBoot头。
• uboot源代码的tools/目录下有mkimage工具,这 个工具可以用来制作不压缩或者压缩的多种可启 动映象文件。mkimage在制作映象文件的时候, 是在原来的可执行映象文件的前面加上一个0x40 字节的头,记录参数所指定的信息,这样uboot才 能识别这个映象是针对哪个CPU体系结构的,哪 个OS的,哪种类型,加载内存中的哪个位置, 入口点在内存的那个位置以及映象名是什么
– 2)PC的虚拟机Linux安装ftfp服务器端并配置测试连接成功 – 3)重启开发板ping通虚拟机linux – 4)配置传给linux的命令行参数 – 5)开发板UBoot通过tftp协议和Linux进行连接,把Linux内核读
入SDRAM后通过nand 命令写入nandflash的指定位置; – 6)根据Linux启动信息获得Linux内核默认的MTD分区并做出
相关主题