查看: 4318|回复: 2
收起左侧

[系统与软件] 树莓派U-Boot

2013-7-4 00:39:09 | 显示全部楼层 |阅读模式
概述
Das U-Boot, 通常叫做U-Boot, 嵌入式系统的常用bootloader. U-Boot允许使用SD卡上单个指定文件的内容作为额外的启动参数, 为树莓派增加不少灵活性.
本文将详细介绍如何让U-Boot运行在树莓派上, 以及通过SD卡或者从网络走TFTP服务器来启动镜像.
准备U-Boot镜像文件获得源码
现在U-Boot的主分支还不支持树莓派. 我们需要从GitHub上Gonzoua的分支获取代码. 请注意显示为默认的'master'分支是未修改的U-Boot代码 - 我们需要用'rpi'分支获取正确的代码.
你可以通过此链接下载源码的压缩包.
编译源码
首先, 我们需要导出交叉编译器的前缀来指定树莓派. 如果你的gcc库为arm-none-linux-gnueabi-gcc, 运行命令:
  1. CROSS_COMPILE=arm-none-linux-gnueabi-
  2. export CROSS_COMPILE
复制代码
然后在U-Boot源码目录中, 运行下列命令开始编译:
  1. make rpi_b
复制代码
整个编译过程应该花不了几分钟时间.
编译镜像文件
不知道如何编译内核的同学请移步内核编译. u-boot.bin文件应该用作输入文件.
在编译完成后, 把kernel.img文件移动到SD卡上. 最好把镜像文件名改成类似uboot.img, 和实际内核镜像区分开来. 在config.txt文件中加上:
  1. kernel=uboot.img
复制代码
测试镜像
树莓派将会使用新的U-Boot镜像启动. 在屏幕上应该会显示U-Boot加载, 如果你连上了串口还应该有其输出.
编译U-Boot镜像
请确认获取了内核的源码, 并且对内核编译过程比较熟悉. 有内核源码就可以编译U-Boot镜像了, 相比而言编译内核镜像还容易些. 首先, 我们要把U-Boot工具mkimage放到能被编译进程找到的地方, 把工具复制到交叉编译器的bin目录下. 然后在U-Boot源码目录执行命令把路径和前缀替换为实际交叉编译器的相应内容)
  1. cp tools/mkimage <your_cross_compiler_path>/bin/arm-none-linux-gnueabi-mkimage
复制代码
在内核源码目录, 开始编译U-Boot镜像:
  1. make uImage
复制代码
生成的启动镜像文件在arch/arm/boot/uImage.
U-Boot引导选项从SD卡启动
从SD卡启动时无需修改config.txt便可以使用多内核镜像. 把uImage文件放到SD卡上, 然后启动. 按任意键进入命令行, 输入以下命令:
  1. mmc rescan
  2. fatload mmc 0:1 ${loadaddr} <your_uImage_file>
  3. bootm
复制代码
通过网络走TFTP服务器启动
我们需要有一个配置好的TFTP服务器. 将uImage文件放到TFTP根目录中, 并确认有相应文件权限 (允许任何人进行读取 - 如果不确定, 执行一次chmod a+r uImage).
用DHCP启动前, 请先确认DHCP已经设置过next-server和filename参数. 接着启动树莓派, 按任意键进入命令行, 输入以下命令:
  1. usb start
  2. dhcp
  3. bootm
复制代码
用固定IP启动:
  1. usb start
  2. setenv serverip <tftp_server_ip>
  3. setenv ipaddr <a_spare_ip_address>
  4. tftpboot uImage
  5. bootm
复制代码
U-Boot脚本文件
上一节的内容可以写进一个文本文件, 然后编译到U-Boot脚本文件中, 以便在启动时自动执行. 用下面的命令来生成脚本:
  1. arm-none-linux-gnueabi-mkimage -A arm -O linux -T script -C none -d <your_script_text_file> boot.scr
复制代码
把boot.scr文件放在SD卡上, 在树莓派启动的时候会自动使用.

回复

使用道具 举报

2013-7-4 11:25:57 | 显示全部楼层
uboot玩MIPS路由的时候玩过。。
回复 支持 反对

使用道具 举报

2013-7-6 10:00:56 | 显示全部楼层
路过一下。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热点推荐

关注我们,了解更多

官方微信

服务时间:10:00-16:00

13714503811

公司地址:深圳市龙岗区南湾街道东门头路8号

Copyright © 2012-2020 Powered by 树莓派论坛 2019.4  粤ICP备15075382号-1
快速回复 返回列表 返回顶部