Linux下使用交叉编译移植U

Linux主机OS:Ubuntu14.04 64位,运行在VMware Workstation 10虚拟机

树莓派版本:raspberry pi 2 B型.

树莓派OS: Debian Jessie  Raspbian Jessie

1树莓派的启动过程

树莓派1,2,3的启动过程大致相同,主要分为3个阶段:ROM上的GPU bootloader启动GPU,GPU启动CPU,CPU直接启动内核或通过u-boot启动内核.

由于树莓派涉及到GPU的东西不开源,移植u-boot到树莓派并不是真正意义上的bootloader,但是鉴于u-boot广泛的应用,还是很有学习的必要

树莓派启动过程:

HOW THE RASPBERRY PI BOOTS UP

树莓派3启动过程概述

RPi Software

2移植u-boot到Debian Jessie系统

最初想直接移植u-boot到Raspbian,尝试了多次都失败告终.google上u-boot启动raspberry pi大都是基于Debian Jessie,所以先照葫芦画瓢试一把.

移植u-boot到树莓派参考例程

(1)最全面的RPi u-boot例程RPi U-Boot

(2)基于RPi2的例程Booting a Raspberry Pi2, with u-boot and HYP enabled

(3)基于RPi2,提供现成文件的例程Raspberry Pi 2 – Debian Jessie and U-Boot

(4)基于mainline u-boot的例程How to compile mainline u-boot for Raspberry Pi ?

 

MicroSD卡烧写镜像:debian jessie下载地址

Ubuntu主机上u-boot使用Mainline版本,官网源码 亚马逊下载地址

Ubuntu主机上文件位置如下

家目录(/root)下u-boot-2016.09文件夹是解压后的u-boot

家目录(/root)下script_u-boot文件夹是自己写的环境配置,脚本

u-boot-2016.09文件夹如下,可以先读读README

Linux下使用交叉编译移植U

script_u-boot文件夹内如下图,从左到右是scr配置文件,环境配置文件,生成u-boot.bin文件,生成scr文件

env_gnueabihf_mkimage文件代码如下

 

#添加树莓派的交叉编译工具链路径(主机是64位)
export PATH
=$PATH:/root/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin #指定编译目标架构为arm,编译器为PATH路径中的交叉编译器

export ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

 

树莓派交叉编译工具链地址https://github.com/raspberrypi/tools

树莓派交叉编译可以参考Linux主机上实现树莓派的交叉编译及文件传输,远程登陆

在后续操作之前先source一下这个文件使配置生效,关闭终端或者重新登陆Ubuntu需要再次source

用echo查看变量,注意使用tab自动补全路径

Linux下使用交叉编译移植U

make_ubootbin文件代码如下

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/14933.html