跳转至

编译环境配置

嵌入式产品开发流程中,通常有两个关键的步骤,编译源码与烧写固件。源码编译需要先准备 好编译环境,而固件烧写则需要厂家提供专用烧写工具。本文主要介绍如何搭建环境来实现Tina sdk的编译和打包。

一个典型的嵌入式开发环境包括本地开发主机和目标硬件板:

  • 本地开发主机作为编译服务器,需要提供linux操作环境,建立交叉编译环境,为软件开发提供 代码更新下载,代码交叉编译服务。

  • 本地开发主机通过串口或USB与目标硬件板连接,可将编译后的镜像文件烧写到目标硬件板, 并调试系统或应用程序。

编译环境要求

Tina Linux SDK是在 Ubuntu 开发测试的,因此我们推荐使用 Ubuntu 主机环境进行源码编译,非 Ubuntu 主机环境的用户,可以使用跨平台开源的虚拟机软件 Oracle VM VirtualBox 安装 Linux 虚拟机,搭建 Ubuntu 环境。

Ubuntu 14、16、18、20 等版本也可以支持,部分可能需要开发者另外配置一些包,也可以用真机实装的方法搭建编译环境。为帮助新手更快地搭建起开发环境,以下内容主要根据使用 Oracle VM VirtualBox 跑 Ubuntu 20.04 虚拟机的场景撰写。

这里说明下:并不强求必须在虚拟机中编译,也可以本机实体机安装 Ubuntu 系统进行编译、编译服务器编译、docker环境编译或者使用 WSL2 编译(WSL1不支持)。 同时也可以在其他 Linux 发行版、macOS、BSD系统内编译,例如 Debian、Manjaro等,但是这些平台并没有经过测试,编译时可能会出现各式各样的错误。

Oracle VM VirtualBox

Oracle VM VirtualBox 是一款功能强大的跨平台开源的虚拟机软件。网上有很多关于使用该软件来安装 Ubuntu20.04 虚拟机的教程和资料,这里就不一一赘述了,但会着重提及一些需要注意的事项。

下载安装

官网下载地址:https://www.virtualbox.org/

Oracle VM VirtualBox官网下载安装教程: https://blog.csdn.net/kaixuansui/article/details/89334859/

VirtualBox安装Ubuntu

注意:
(1)内存大小设置:建议大于2GB
(2)虚拟硬盘大小设置:建议至少设置50GB(SDK所需较大空间)
(3)安装好 Ubuntu 虚拟机环境后,建议不要在线升级Ubuntu版本

参考链接: Oracle VM VirtualBox 安装 Ubuntu 环境的教程
https://blog.csdn.net/weixin_42135087/article/details/108193641

增强功能

安装增强功能可以实现共享剪切板功能共享文件夹功能。共享粘贴板可在PC和虚拟机之间互相粘贴复制内容。文件夹共享可以在本地主机下创建一个文件夹,然后VirtualBOX将该文件夹映射到虚拟机下指定的文件夹中,这样我们就可以访问该文件夹下的子文件夹以及文件了。这两个功能都能极大地提高我们的开发效率

注意: 在共享文件夹的路径中如果是挂在的windows系统的文件夹,可能无法成功地下载Tina的SDK代码,注意SDK的下载目录不要设置在共享文件夹中。

安装增强功能的方法

方法一: 点击虚拟机界面上面菜单栏的【设备】--【安装增强功能】。然后可以看到在虚拟机的光驱中自动加载了增强iso的文件(VBoxGuestAdditions.iso),点击【Run】运行按钮。接着按虚拟机所指引步骤进行即可。

方法二: 在linux中挂载光驱。参考链接如下: https://jingyan.baidu.com/article/fdbd42779d9530b89e3f489c.html

实现共享文件夹的方法:

在VirtualBox中创建共享文件夹的参考链接如下: http://www.koudaipe.com/funny/1002.html

共享文件夹 共享文件夹后可能由于权限问题无法操作,需要做如下操作:

sudo usermod -aG vboxsf $(whoami)

*注:$(whoami) 替换成您Ubuntu的用户名

Ubuntu环境配置

编译Tina Linux SDK需要的Ubuntu包有:

gcc,binutils,bzip2,flex, python,perl,make,ia32-libs,find,grep,diff,unzip,gawk,getopt,subversion,libz-dev,libc headers

因为Ubuntu包的下载服务器在非中国大量地区,所有下载速度会很慢,甚至可能下载不了,所以建议下载前先将apt的下载源改为国内的地址,国内有多家组织提供开源镜像站,如清华、阿里等。

*由衷感谢这些组织为我们提供的便利!Respect!

修改方式:

Ubuntu下/etc/apt/sources.list 的内容全部替换成如下内容:(修改需sudo

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiverse    
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiverse    
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse    
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse    
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main restricted 
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse    
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiverse    
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiverse    

# 预发布软件源,不建议启用   
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse  
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse  

Ubuntu可直接执行以下两个命令安装:

命令一:    
sudo apt-get update

命令二:
sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip lib32z1 lib32z1-dev lib32stdc++6 libstdc++6 -y

对于Ubuntu 16.04以上版本,部分软件包已不再提供或者采用了其他的包,执行上述命令时, 安装失败的包可先忽略,进一步执行以下命令:

sudo apt-get install libc6:i386 libstdc++6:i386 lib32ncurses5 lib32z1

使用配置好的虚拟机

如果您无法独立配置好编译环境,我们为您准备了一个配置好的可以编译 Tina 的 Ubuntu 20.04 虚拟机,该虚拟机基于 Oracle VM VirtualBox 6.1.16 版本,配置单核4G内存,您可以根据您开发PC的性能修改虚拟机配置,建议您增大核心数以提到编译速度。

这个虚拟机是 开放虚拟机平台的OVA格式,支持导入 VirtualBox、VMWare 等虚拟机软件

在VirtualBox导入虚拟机后,您还需要配置您自己的.sshgit等信息。

虚拟机下载地址(大小:6GB):https://netstorage.allwinnertech.com:5001/sharing/Wm9YiHMvf

系统:Ubuntu 20.04,用户名:allwinner,密码:Pass123456

虚拟机包括了:

  • 编译 Tina Linux 所需的依赖
  • 交叉编译工具链
  • apt配置了清华源

虚拟机没有安装的内容,需要自行配置:

  • Tina Linux SDK
  • repo 脚本
  • NPU 工具链

您可以继续阅读之后的文档来配置相关 SDK

虚拟机安装说明

首先安装一个虚拟机软件,推荐 免费开源的 VirtualBox 虚拟机。当然也支持 VMWare WorkStation,ESXi 等虚拟机软件。这里以 VirtualBox 作为示例。

image-20220713153358551

下载虚拟机文件,一个 Ubuntu20.04.ova 文件,双击打开它。

image-20220713153229932

进入这个配置页面中,按图中所示配置虚拟机参数。

image-20220713153803299

点击导入,开始导入(虚拟机较大,可能比较慢)

image-20220713153859110

导入后启动即可

image-20220713172228755

虚拟机使用说明

虚拟机安装好了,不过还需要配置下增强功能,例如主机与虚拟机文件的复制、共享文件夹、共享粘贴板等等。

我们先启动虚拟机,输入密码 Pass123456 进入系统。

image-20220714152336448

设备 -> 安装增强功能 点击并安装增强功能。

image-20220714152622549

点击 Run

image-20220714152722117

输入密码 Pass123456

image-20220714152750883

安装完成了,按回车

image-20220714153054008

重启下虚拟机

image-20220714153151076

设置共享粘贴板为双向、拖放双向

image-20220714153833260

同时也可以设置一下共享文件夹

image-20220714154002672