2134|3

330

帖子

5

TA的资源

纯净的硅(中级)

楼主
 

【米尔-TI AM62x开发板-试用评测】使用Yocto工具构建开发板完整镜像和SDK工具 [复制链接]

米尔官方为米尔-TI AM62x开发板提供了两种已经制作好的镜像:

 可以直接使用上述镜像进行烧录和使用。

 

因为后续要在这块开发板上,进行应用的开发,所以我选择了参考官方资料,进行完整系统的编译,以及SDK工具的构建,能够把步骤顺利的完成,在后续的开发过程中,进行应用的编译,一般就不会遇到什么大的问题了。

 

一、硬件环境准备

首先是开发板和SD卡,开发板已经有了,SD卡建议选择一块高速的SD卡,至少32G。

然后是编译环境用的系统硬件,一定要CPU主频高、核心多、内存大,因为编译系统,真的很耗时的。

官方推荐的硬件:Yocto 项目的构建对开发主机的要求比较高,要求处理器具有双核以上 CPU,8GB 以 上 内存,500GB 硬盘或更高配置。可以是安装 Linux 系统的主机,也可以是运行 Linux 系 统的虚拟机。

 

双核?8G?开什么玩笑,这跑的动嘛?

 

我所使用的硬件如下:

   

这款CPU是10核心,20线程的。内存嘛,配这个CPU内存当然不会少了。

另外,编译剩余的磁盘空间,建议最好准备150G备用。注意,是剩余磁盘空间。

 

二、系统环境准备

官方推荐的系统环境是 Ubuntu20.04 64bit ,我实际使用色环境是Ubunt 23.04 64bit,也成功完成了所需要的编译工作。

为了更好的使用apt下载安装软件包,可以参考: http://tuna.tsinghua.edu.cn/help/ubuntu/ 来进行apt源的设置,以便让下载速度嗖嗖嗖的快。

谁知完成后,使用下面的命令,安装软件包:

apt update
apt upgrade
apt install -y git build-essential \
diffstat texinfo gawk chrpath socat doxygen dos2unix python3 bison \
flex libssl-dev u-boot-tools mono-devel mono-complete curl lrzsz lzop \
python3-distutils pseudo python3-sphinx g++-multilib bc python3-pip \
libc6-dev-i386 jq git-lfs pigz zstd liblz4-tool cpio file autoconf automake \
xinetd tftpd-hpa nfs-kernel-server minicom libncurses5-dev dos2unix screen \
zstd lz4 python3-pyelftools python3-setuptools swig repo

git config --global user.name "你在github的用户名"
git config --global user.email "你在github的邮箱"
git config --list

上述工作做完,就准备好了系统环境了。

 

三、系统编译SDK准准备

首先,要从 http://down.myir-tech.com/MYD-YM62X/ 下载 03_Tools.zip,下载后解压备用。

我这边的操作步骤如下:

mkdir -p ~/Projects/myir
cd ~/Projects/myir

wget -c http://down.myir-tech.com/MYD-YM62X/03_Tools.zip
unzip 03_Tools.zip

然后,安装系统编译SDK:

cd ~/Projects/myir/03_Tools/Toolchain
chmod u+x arago-2023.04-toolchain-2023.04.sh
./arago-2023.04-toolchain-2023.04.sh

运行后,会提示安装到哪里,我选择安装到:/opt/

 

安装完成后,应用其对应的环境设置,并检查环境是否生效:

. /opt/arago-2023.04/environment-setup-aarch64-oe-linux

$CC -v

输出如下,表示系统编译SDK环境设置成功:

 

使用tree命令查看安装的目录结果如下 :

 

 

四、系统源码准备

首先,要从 http://down.myir-tech.com/MYD-YM62X/ 下载 04_Sources.zip,下载后解压备用。

我这边的操作步骤如下:

cd ~/Projects/myir

wget -c http://down.myir-tech.com/MYD-YM62X/04_Sources.zip
unzip 04_Sources.zip

然后解压对应的Yocto源码包:

mkdir ~/Projects/myir/myd-ym62x-yocto
cd ~/Projects/myir/myd-ym62x-yocto
unzip ../04_Sources/myd-ym62x-yocto.zip

# 查看目录结构
tree -L 2 ../myd-ym62x-yocto

解压后的文件结构如下:

 

其中,build和downloads,都是在编译过程中生成的。

 

另外,官方还提供了从github下载源码的方式,感兴趣的可以了解尝试。为了稳妥起见,我直接用官方提供的压缩包解压了使用。

 

五、系统镜像构建

通过前面的步骤,现在环境和源码都准备好了,可以开始正式编译系统了。

1. 环境配置:

首先进行环境配置:

cd ~/Projects/myir/myd-ym62x-yocto/oe-layersetup
./oe-layertool-setup.sh -f configs/processor-sdk/processor-sdk-09.00.00-myd-am62x-config.txt

配置完成后,会生成build目录,然后应用配置:

. conf/setenv

 

2. 下载工具源码包:

正式编译前,需要做一些修改:

cd build
vim conf/local.conf

修改其中的DL_DIR,具体为:~/Projects/myir/myd-ym62x-yocto/oe-layersetup/downloads

 

然后执行命令,下载需要的软件包:

bitbake myir-image-full --runall=fetch

执行后,会呼啦呼啦的下载软件包。

 

需要提醒的是,这个步骤,耗时比较长,比较长,比较长。也可以参考官方说明,从百度网盘下载。可是,百度网盘,垃圾,不用会员,比个龟都慢。还是老实用命令下载吧。

这个命令,运行完了,再次运行,连续三次,确保最后输出:

那就说明,都下载好了,可以继续进行了。

 

然而,实际情况,并没有这么顺利。我在执行这条命令的过程中,老是提示 quectel-cm 下载错误。

研究了一番,做了一点简单的处理,给解决了。

修改这个命令配置文件:

vim ~/Projects/myir/myd-ym62x-yocto/oe-layersetup/sources/meta-myir/meta-myir-bsp/recipes-connectivity/quectel-cm/quectel-cm.bb

具体修改:

#S_SRC ?= "git://github.com/MYIR-TI/quectel-cm.git;protocol=https"
S_SRC ?= "https://github.com/MYIR-TI/quectel-cm.git;branch=master"
SRC_URI[sha256sum] = "54ac7475b83c08fa4eafdfb3377381fd42e87dbcf32290fc1b11260af0f728a8"

然后再次执行:

bitbake myir-image-full --runall=fetch

执行成功后,再次执行两次,确保没有问题。

 

最后,再手工下载一下:

cd ~/Projects/myir/myd-ym62x-yocto/oe-layersetup/build/arago-tmp-default-glibc/work/aarch64-oe-linux/quectel-cm/1.0-r0
git clone https://github.com/kmilo17pet/quectel-cm.git git

 

3. 构建系统完整镜像包

现在,就可以用命令,进行系统构建了:

bitbake myir-image-full

执行后,会开始进行各项构建工作,输出如下:

 

 

特别提醒,这个过程,是耗时最长,CPU烧得最厉害的阶段了,大家看一看我这个i9-10900吧:

   

你可能需要10个小时,或者更长的时间,才会完成所有的编译工作。

 

另外,中途,你还得不时来看看,有没有遇到问题。因为,我这边,在编译过程中,真还就遇到问题了:

 

我也不清楚它这个的具体产生的原因,看起来不像是因为我的系统版本太高的缘故,是给json.c、json.h打patch打上去有问题。

既然是打patch有问题,那咱就手动打好了,具体操作如下:

vim ./arago-tmp-default-glibc/work/aarch64-oe-linux/systemd/1_250.5-r0.arago7/git/patches/0001-shared-json-allow-json_variant_dump-to-return-an-err.patch

然后参考下图,把红框的部分,给去掉,直接删掉好了:

 

然后修改json.c文件:

vim arago-tmp-default-glibc/work/aarch64-oe-linux/systemd/1_250.5-r0.arago7/git/src/shared/json.c

找到代码中对应的位置,修改为下面的样子:

 

然后,继续执行:

bitbake myir-image-full

直到漫长的等待过后,执行完成,再次执行,再次执行,结果如下:

 

并检查构建的结果:

 

现在,系统镜像构建完成了,myir-image-full-myd-am62x-20231218090554.rootfs.wic.xz 可以用于烧录到SD卡了。

 

4. 烧录镜像启动系统

我选择用balenaEtcher进行烧录,源直接选择sz文件,目标选择要烧录的SD卡,即可开始Flash:

 

烧录完成,把开发板断电,把拨码开关拨到SD卡位置:

 

 

再插上SD卡,上电,系统启动后,进入默认的图形界面,点击右上角的小图标,可以打开窗口运行命令:

 

看起来,负载可真高啊。

 

经过官方技术人的指导,才知道:6231是单核的性能是不够运行weston,我们默认应该有写判断如果是6231会自动开启lvgl的demo,您只要输入命令systemctl disable weston关掉weston就可以了。

 

六、构建开发用的SDK工具链

前面安装的SDK是系统编译用的,要为这个系统进行应用开发,则需要应用开发SDK工具链。

在完整镜像构建成功的前提下,应用开发SDK工具链的构建,就较为简单了,一条命令即可:

bitbake -c populate_sdk myir-image-full

构建成功后,再执行两遍,最终输出如下:

 

这个部分的构建,具体需要多久,我就没有统计了,反正比上面的系统构建时间要短就是了。

构建的结果如下:

 

生成的应用开发SDK工具链就可以用于安装了来为应用开发提供支持了,后续应用开发过程中,再做对应的分享。

 

七、总结

总的来说,米尔提供的这套Yocto构建系统的环境和源码,使用起来,还是比较顺利的,除了修改了两个小小的问题,以及需要较多系统资源和较长时间外,其他还没有遇到什么拦路虎。

另外,还在许还有bootloader和kernel等的编译,相信在此基础上,应该都不会有什么问题了。

在研究学习的过程中,遇到了问题及时提出来,米尔的技术人员大力帮助,帮忙解决。

我相信这将会是一场非常愉快的学习体验过程。

最新回复

看了一下用户指南中Yocto对电脑配置的要求,再看看电脑配置,默默收起了板卡   详情 回复 发表于 2024-4-26 09:18
点赞 关注
 

回复
举报

7096

帖子

11

TA的资源

版主

沙发
 

编译就是耗时间耗硬盘,想想就头大呀,帮主大佬这帖子写得也是太辛苦了!

点评

极其不好,能把人给编挂!!!  详情 回复 发表于 2023-12-21 13:41
 
 

回复

330

帖子

5

TA的资源

纯净的硅(中级)

板凳
 
lugl4313820 发表于 2023-12-20 15:33 编译就是耗时间耗硬盘,想想就头大呀,帮主大佬这帖子写得也是太辛苦了!

极其不好,能把人给编挂!!!

 
 
 

回复

1286

帖子

4

TA的资源

版主

4
 

看了一下用户指南中Yocto对电脑配置的要求,再看看电脑配置,默默收起了板卡

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表