在基于arm的开发平台下,系统启动需要内核,BootLoader,根文件系统三大块,今天博主记录给ARM开发平台编译并烧写Uboot的步骤

PS:在本次过程开始前,务必安装对应版本的arm-linux-gcc交叉编译器~

获取Uboot源码

如若不是自己设计的开发板,一般厂家会提供配套的开发源码,可以针对SOC进行配置,这里博主用的是X6818开发平台,已经获取到厂商源码。

对Uboot进行编译

1.把对应的源码包解压到本地文件夹并进入

tar vxf u-boot-2014.07_v3_mipi.tar.bz2
cd u-boot-2014.07

2.还原到出厂状态

使用如下命令进行还原,防止源码在到手前有人对其进行过不需要的改动。

make distclean

手机bios镜像过大怎么导入文件_linux

3.选定开发平台版本

使用make *_config(*代表开发平台版本,不同厂商平台名字可能会略有不同),博主的是x6818平台,所以应该是:

make x6818_config

出现如下提示则说明选定成功

手机bios镜像过大怎么导入文件_ubuntu_02

4.开始编译

在对源码进行完必要的改动后,在源码根目录使用make命令,对源码进行编译。

手机bios镜像过大怎么导入文件_linux_03


在出现Generate destination file:ubootpak.bin字样时,则编译完成,可以再源码根目录中找到名为ubootpak.bin的uboot镜像文件。

手机bios镜像过大怎么导入文件_手机bios镜像过大怎么导入文件_04

Uboot镜像的烧写

启动开发板时按任意键进入BootLoader,输入fast或者fastboot进入fastboot模式,并用OTG线连接电脑与开发板。

手机bios镜像过大怎么导入文件_linux_05


使用platform-tools的fastboot工具对uboot镜像进行烧写

fastboot flash ubootpak ./ubootpak.bin

手机bios镜像过大怎么导入文件_开发平台_06


这样就是烧写完成,可以重启啦~

注意:要是烧写出现错误,uboot损坏咋办

这里博主在烧写uboot的时候用错了镜像,导致uboot损坏,后使用SD卡引导的方式使开发板又恢复了过来。
在桌面端linux中插入sd卡,然后cd到uboot源码根目录下,然后在镜像编译完成的情况下使用

sudo dd if=ubootpak.bin of=/dev/sdc bs=512 seek=1 conv=sync

把镜像释放到SD卡上。
PS:这里的/dev/sdc是博主的SD卡位置,在此操作时务必确认自己的SD卡位置,一般sda为主硬盘,sdb为第一个插入的外置存储设备,sdc为第三个,以此类推。
然后把SD卡插入开发板上SD0的位置,再次重启使用SD卡引导启动,若成功引导Uboot,则使用fastboot重新刷写uboot镜像即可。