由于项目需要,选用了一款评估板,系统都是基于openembedded/yocto构建的,这个框架的确是很方便构建和维护嵌入式系统,但初次编译时,对开发环境的要求还是很高的,否则可能一天一夜都编译不完。
编译系统镜像
准备
$ mkdir ~/bin
$ export PATH=~/bin:$PATH
$ curl https://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
注:这里的google源可以换成国内的,比如清化源
$ sudo apt install git
$ git config --global user.name "gary"
$ git config --global user.email gary@test.com
以上这些,都是为了下载toradex官方源码所用,下载后直接使用openembdeded的bitbake编译即可,具体编译过程不介绍,这些在官方使用手册上都有详细介绍,不重复,下面总结下编译这样一套系统时需要注意的地方:
注意点
1、编译SDK时,默认QT库只有很少的基本的库,所以编译前需要先配置,另外需要额外添加的库也可在编译前配置好。
2、默认方式编译出来的kernel是基于toradex当前最新的branch,比如这次编译当前最新版本是5.7.0,而我下载使用的版本是5.6.0,所以编译时一定要指定版本,否则编译出来的可能与你当前量产发布的版本不一。
3、电脑是I76代CPU(与当前11代相差几个档次)、机械硬盘,内存是8G,另外是在Virtualbox下4G内存编译,100G硬盘,所以编译时间36小时左右,
当镜像与SDK都编译好后,100G硬盘已经耗尽。建议使用10代以上CPU,固态硬盘,16G以上内存的电脑做编译,另外官方也不建议使用虚拟机之类的做编译环境。
4、openenbeddedcore编译过一次后,后续再编译是方便的,只需要编译新添加的模块就可以,编译过的模块不会再重新编译