概述

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卡上, 在树莓派启动的时候会自动使用.

树莓派linux系统识别u盘启动,使用U-Boot让树莓派从U盘启动相关推荐

  1. 树莓派linux系统识别u盘启动,树莓派3 U盘启动方案

    官方的文章,方法很简单,不过对U盘有要求,需要兼容的. 只限树莓派3 原理是修改树莓派的/boot/config.txt文件,在后面追加一个program_usb_boot_mode标志位. 重启后, ...

  2. 树莓派linux系统识别u盘启动,树莓派Raspberry Pi实战之命令行下实现USB存储设备自动挂载...

    简单介绍实现命令行下USB存储设备自动挂载的方法,Linux gnome/kde窗口环境下有移动存储的管理程序,可以实现自动挂载移动存储设备,但是在命令行下 通常需要用mount命令手动挂载USB存储 ...

  3. usb启动计算机boss设置方法,教程方法;U盘装系统中bios设置USB启动图文教程电脑技巧-琪琪词资源网...

    琪琪词资源网-教程方法;U盘装系统中bios设置USB启动图文教程电脑技巧,以下是给大家带来的教程方法;U盘装系统中bios设置USB启动图文教程,大家可以了解一下哦! 总的来讲,设置电脑从U盘启动一 ...

  4. ufei pe安装linux,制作UEFI(64位)下的WinPE + Ubuntu + Acronis多启动U盘

    最近研究了一下如何制作一个多启动U盘,其中想包含的功能是WinPE(这里选择WEPE),Ubuntu 18.04,Acronis True Image 2018的ISO恢复盘.这里分享一下制作的经验和 ...

  5. linux制作deepin启动盘制作工具,深度启动盘制作工具(Deepin Boot Maker)下载_深度启动盘制作工具(Deepin Boot Maker)官方下载-太平洋下载中心...

    深度启动盘制作工具(Deepin Boot Maker)用于来帮助用户简单便捷的制作Deepin启动U盘.Deepin Boot Maker,深度启动盘制作工具用于来帮助用户简单便捷的制作Deepin ...

  6. linux启动盘制作hdd无法启动不了,我的U盘安装了pe重启后不认u盘,已在bois设置了第一启动为hdd为什么?求助!...

    我的U盘安装了pe重启后不认u盘,已在bois设置了第一启动为hdd为什么?求助!以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看 ...

  7. linux服务器u盘启动项检测不到,将U盘设置为第一启动项之后却检测不到U盘怎么办?...

    对于如何使用U盘装系统,想必看过小编之前介绍的朋友应该大致都清楚了吧?虽然说咱们使用U盘装系统的操作步骤还是比较简单的,但是却必须要满足一个条件,那便是将咱们的U盘设置为第一启动项,那么如何进行设置呢 ...

  8. u深度制作linux启动盘制作工具,U深度U盘启动盘制作工具怎么操作?U深度U盘启动盘制作工具使用...

    U深度u盘启动盘制作工具是一款强大的启动盘制作软件,对于新手用户来说,由于软件专业度很高,想一下就上手是比较困难的.所以这里给大家分享一篇官方使用教程 软件名称:U深度U盘启动盘制作工具 装机版 v5 ...

  9. 技嘉 linux设置u盘启动项,技嘉u盘启动,教您技嘉主板怎么设置u盘启动

    现在基本上都是人手一个U盘,精致小巧又便于携带,更重要的是小小的一个U盘可以装下很多的东西,作用很大,其中要提到的是U盘安装系统了,不过安装系统前,我们需要使用设置u盘启动,那么技嘉主板怎么设置u盘启 ...

最新文章

  1. 三分钟教你快速选择机器视觉传感器
  2. IBM: 拆分瘦身,还有机会吗?
  3. apache开启 gzip 压缩
  4. linux 用户态与内核态通信方式简介
  5. python打开谷歌浏览器 关键字_高效使用Chrome浏览器
  6. hdu4278 小想法
  7. c++STL容器的Vector
  8. C# == 和equals()区别
  9. 前端菜鸟笔记 Day-5 CSS 高级
  10. PowerBI 秒级实时大屏展示方案 全面助力双十一
  11. 牛客题霸 [买卖股票的最好时机] C++题解/答案
  12. 数字化方法基础(四)_矩阵操作
  13. java ftpclient quit_一步一步android(6):关于FtpClient类的学习
  14. 【光学】基于matlab涡旋光与球面波的干涉【含Matlab源码 597期】
  15. C语言知识层次结构图
  16. 《计算几何》学习笔记
  17. Golang学习笔记之GORM基础使用(一)
  18. 全球主要大数据公司盘点
  19. java option请求_Spring boot处理OPTIONS请求
  20. 参数反演 计算机,滑坡体土体的力学参数反演方法、装置及计算机设备与流程...

热门文章

  1. MogDB数据库安装部署之xlog目录设置
  2. 明天14点直播间见!5位业内大咖带您解锁数据库内核技术与行业应用
  3. 下载丨9月数据库技术通讯:Redo日志丢失,重建遭遇ORA-16433处理
  4. 送书丨《架构解密:从分布式到微服务》
  5. 分布式架构在农业银行的应用实践与展望
  6. SQL Server 2008处理隐式数据类型转换在执行计划中的增强
  7. 华为云数据库首席架构师:关于数据库他这样说……
  8. 还不会使用分布式锁?教你三种分布式锁实现的方式
  9. 【华为云技术分享】自动网络搜索(NAS)在语义分割上的应用(一)
  10. 关于token你需要知道的