前言
最近在搭建NUC972的虚拟机编译环境时遇到了一些小问题,通过网络各种搜索关于uboot编译的说明没有太详细的说明,最后各种百度搜索解决了此问题,把具体步实现步骤分享一下。
1. uboot 简介
1.1. uboot是一个主要用于嵌入式系统的引导加载程序,可以支持多种不同的计算机结构,包括ARM、AVR32、MIPS、x86等。这也是一套在GNU通用公共许可证之下发布的自由软件。
1.2. uboot在嵌入是linux系统中起引导作用,类似于PC主机的Bios,可以在系统上电时加载一些基础配置驱动。
1.3. uboot的工作模式有启动加载模式和下载模式。启动加载模式是Bootloader的正常工作模式,嵌入式产品发布时,Bootloader必须工作在这种模式下,Bootloader将嵌入式操作系统从Flash中加载到SDRAM中运行,整个过程时自动的。下载模式就是Bootloader通过某些通信手段将内核映像或根文件系统映像等从PC机中下载到目标板的Flash中。
2. NUC972 uboot 编译环境搭建步骤
步骤1. 从新唐官网下载最新的VMware虚拟机环境
官方默认的系统是ubuntu 18.04.3 LTS
我是用的是win10系统+VMware Workstation 15 Player;
新唐VMware虚拟机环境下载链接:
下载虚拟机环境后,打开VMware选择加载文件,这之前需要将官方压缩包解压,首次用VMware打开并加载一次环境后,以后再打开VMware时就可以直接选择了。
官方系统默认的登录密码是:user
登录成功后,我们使用快捷键“Ctrl+Alt+T”打开终端,到此我们的使用环境准备好了。
步骤2. NUC970_BSP 开发工具包安装
我使用的bsp包是旧的nuc970bsp-release-20151111,里面有一个nuc970bsp.tar.gz文件,通过Vmware共享文件方式将其上传至虚拟机/home/user/SharFile/Downloads文件夹下进行解压锁,我们接着再上一步打开的终端里输入以下指令,如下图所示
//--------------------------------------------------------------------
cd /home/user/SharFile/Downloads //进入根目录
tar zxvf nuc970bsp.tar.gz; //解压缩文件到当前目录下
sudo ./install.sh //进入root权限,然后运行安装bsp
//--------------------------------------------------------------------
中间过程会提示编译器arm_linux_4.3已经存在,默认输入Y回车就行。
下一步就是bsp本体包安装路径确认,具体操作如下:
//--------------------------------------------------------------------
Please enter absolute path for installing(eg:/home/<user name>) :
/home/user/SharFile
//--------------------------------------------------------------------
我们通过终端在/home/user/SharFile列出子目录发现nuc970bsp文件夹,进入列出子目录发现开发包已经安装完成;
步骤3. 编译工具下载
//--------------------------------------------------------------------
//因为我用的虚拟机是64位的,而新唐的这个开发环境是在32位环境下运行的,要安装32位的库文件
sudo apt-get update
sudo apt-get install lib32z1
sudo apt-get install lib32stdc++6
sudo apt-get install lib32ncurses5-dev
//--------------------------------------------------------------------
步骤4. 使用系统自带的vim编辑器配置gcc环境变量
操作提示:vim的操作指令参考链接
//设置环境变量
sudo vim /etc/profile
//在打开文件的末尾添加如下指令
export CROSS_COMPILE=arm-linux-
export PATH=$PATH:/usr/local/arm_linux_4.3/usr/bin
//保存退出
source /etc/profile
步骤5. 编译uboot
首先进入到nuc970bsp/uboot文件夹下
输入以下指令
//设置环境变量
make O=/home/user/SharFile/nuc970bsp/build/nuc970_uboot/ distclean
make O=/home/user/SharFile/nuc970bsp/build/nuc970_uboot/ nuc970_config
make O=/home/user/SharFile/nuc970bsp/build/nuc970_uboot/ all
3. 总结
通过以上步骤我们实现了uboot的编译,最新的官方虚拟环境包内有最新bsp包,可以参考环境包内路径/home/user/NUC970_Buildroot-master/README.txt,里面描述的uboot的生成方式有所改变,希望有兴趣的小伙伴可以继续研究下去共同进步。