概述

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, 运行命令:

CROSS_COMPILE=arm-none-linux-gnueabi-

export CROSS_COMPILE

然后在U-Boot源码目录中, 运行下列命令开始编译:

make rpi_b

整个编译过程应该花不了几分钟时间.

编译镜像文件

不知道如何编译内核的同学请移步内核编译. u-boot.bin文件应该用作输入文件.

在编译完成后, 把kernel.img文件移动到SD卡上. 最好把镜像文件名改成类似uboot.img, 和实际内核镜像区分开来. 在config.txt文件中加上:

kernel=uboot.img

测试镜像

树莓派将会使用新的U-Boot镜像启动. 在屏幕上应该会显示U-Boot加载, 如果你连上了串口还应该有其输出.

编译U-Boot镜像

请确认获取了内核的源码, 并且对内核编译过程比较熟悉. 有内核源码就可以编译U-Boot镜像了, 相比而言编译内核镜像还容易些. 首先, 我们要把U-Boot工具mkimage放到能被编译进程找到的地方, 把工具复制到交叉编译器的bin目录下. 然后在U-Boot源码目录执行命令:(把路径和前缀替换为实际交叉编译器的相应内容)

cp tools/mkimage /bin/arm-none-linux-gnueabi-mkimage

在内核源码目录, 开始编译U-Boot镜像:

make uImage

生成的启动镜像文件在arch/arm/boot/uImage.

U-Boot引导选项

从SD卡启动

从SD卡启动时无需修改config.txt便可以使用多内核镜像. 把uImage文件放到SD卡上, 然后启动. 按任意键进入命令行, 输入以下命令:

mmc rescan

fatload mmc 0:1 ${loadaddr}

bootm

通过网络走TFTP服务器启动

我们需要有一个配置好的TFTP服务器. 将uImage文件放到TFTP根目录中, 并确认有相应文件权限 (允许任何人进行读取 - 如果不确定, 执行一次chmod a+r uImage).

用DHCP启动前, 请先确认DHCP已经设置过next-server和filename参数. 接着启动树莓派, 按任意键进入命令行, 输入以下命令:

usb start

dhcp

bootm

用固定IP启动:

usb start

setenv serverip

setenv ipaddr

tftpboot uImage

bootm

U-Boot脚本文件

上一节的内容可以写进一个文本文件, 然后编译到U-Boot脚本文件中, 以便在启动时自动执行. 用下面的命令来生成脚本:

arm-none-linux-gnueabi-mkimage -A arm -O linux -T script -C none -d boot.scr

把boot.scr文件放在SD卡上, 在树莓派启动的时候会自动使用.

树莓派php中文乱码,[翻译完成] 树莓派U-Boot相关推荐

  1. 树莓派3B的WiFi中文乱码及搜索不到附近的WiFi_解决方案:

    树莓派3B的WiFi中文乱码及搜索不到附近的WiFi_解决方案: 参考文章: (1)树莓派3B的WiFi中文乱码及搜索不到附近的WiFi_解决方案: (2)https://www.cnblogs.co ...

  2. 解决树莓派程序中的中文乱码问题

      当我们在使用树莓派的时候,有时候需要将外部的程序放到树莓派中运行,而当我们的程序中含有中文是,一般在树莓派下会变成乱码,这时候我们要将树莓派中的乱码进行修改,但是相信大家会遇到一个问题: 就是明明 ...

  3. opensll、libcurl库安装的使用,树莓派CSI摄像头的配置,树莓派调用智能API平台实现人脸识别、树莓派配置中文环境

    接着上一节人工智能翔云平台介绍: 人工智能OCR识别: OCR 是英文Optical Character Recognition的缩写,意思是光学字符识别,也可简单地称为文字识别,是文字自动输入的一种 ...

  4. 树莓派怎么切换输入法_树莓派安装中文界面/输入法/远程桌面控制 实测笔记教学...

    之前逛某宝无意间发现世上最小的电脑(树莓派),由于本人比较喜欢电子产品尤其是电脑这,我就进去了,这一进不要紧MD我特么居然非得买.然后就买了 安装系统我就不说了(这个比较简单只需要 下载 解压 开机 ...

  5. minecraft pythonapl_翻译:树莓派版Minecraft入门大揭秘

    正版我的世界一是要收费,二是游戏性过强,编写Mod门槛高,树莓派版Minecraft免费,且能够很容易的与python交互,是非常好的学习工具,学生对Minecraft有非同一般的热情,结合pytho ...

  6. 树莓派支持uvi协议吗_树莓派开发笔记(十一):蓝牙的使用,BlueZ协议(双树莓探测rssi并通过蓝牙互传获取的rssi)...

    前话 接下来介绍树莓派蓝牙模块的开发,使用的协议为bluez. ssh远程登录到树莓派 Demo:蓝牙探测信号rssi强度,并发送给服务器 客户端bob,服务器alice,探测两方的rssi,并传送给 ...

  7. 树莓派练手小项目---基于树莓派构建天气查询系统,实现内容的网页自动化检索功能

    目录 一.写在前面 二.基于树莓派构建天气查询系统 三.基于树莓派实现网页内容的自动化检索 四.有关于树莓派的其他小提醒,小技巧 Author:qyan.li Date:2022.6.19 Topic ...

  8. JSP中文乱码问题解决

    2019独角兽企业重金招聘Python工程师标准>>> 大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着大家,现把JSP开发中遇到的中文乱码的问题及解决办法写出来供大 ...

  9. 【树莓派】【转载】基于树莓派,制作家庭媒体中心+下载机

    看到这样一篇文章,觉得蛮有意思,转载于此:http://www.boydwang.com/2013/12/build-your-raspberrypi-as-a-media-center/ 今天收到了 ...

最新文章

  1. 最短路径问题 java实现 源代码
  2. Svg.Js A标签,链接操作
  3. 32读取ltc的温度值_Arduino基础入门篇29—模拟温度传感器LM35
  4. C七:指向函数的指针 ------ 函数指针(function pointer)
  5. Hadoop1.x之hdfs集群搭建
  6. 百度模糊搜索怎么实现_百度搜索广告是什么?百度搜索竞价广告投放推广效果怎么样?...
  7. DCMTK:测试文件是否使用DICOM Part 10格式
  8. 第十节(补课):函数的扩展 — 箭头函数的this使用
  9. Qt工作笔记-QCustomPlot让曲线动起来
  10. 孪生网络图像相似度_孪生网络:使用双头神经网络进行元学习
  11. cocos2d-x学习记录3——CCTouch触摸响应
  12. SQL删除重复数据,保留ID最大的一条
  13. 如何进行大数据入门的学习
  14. 系统集成项目管理工程师知识点
  15. 港股历史行情数据 API 接口
  16. SQL 当天在当月、当季度、当年的时间进度
  17. brandon公司_开发人员聚焦:布兰登·里德(Brandon Reid)
  18. SiamRPN++简述
  19. ctfshow 做题 MISC入门 模块 21~30
  20. 制作谷歌浏览器 Google Chrome 免安装绿色版!

热门文章

  1. Eclipse导出Java文件为.exe可执行文件
  2. vivado2018.3添加IP库
  3. PHP/JS中获取当前页面的完整URL
  4. (三) 弦截法(试位法)求根
  5. IOS开发之获得当前的网速
  6. JQuery操作cookie插件
  7. EXT.NET高效开发(二)——封装函数
  8. Rabbit-音乐欣赏
  9. [转载] Python中字符串切片详解
  10. httpd配置ResponseHeader