Bui~ 的新篇章将带大家使用一些好用的开发工具,给牛马们省点力,犁更多的田,拉更多的车提高效率早点下班。
Yocto是一个用于整合资源编译嵌入式Linux系统的项目,像高通的linux(如QCS6490,QCS610等)或是synaptic的astra平台(如SL1680,SL1640等)的linux都是用了yocto去编译,网上也有很多相关的学习资料,这里不再赘述。这个项目使用bitbake作为编译工具,需要学习相关的语法知识。目前,Yocto和bitbake官方都没有提供图形界面软件或开发平台软件,所有操作都需要通过命令行来执行。因此,在阅读Yocto工程代码时,查找相关内容的定义和记住一些指令会比较耗时耗力。
VSCode有一个Yocto插件可以很好地解决上述问题。
首先,需要在VSCode中安装这个插件(我的工程在其他电脑上,所以安装时也需要安装到远程电脑):
安装完插件后,需要设置Yocto的目录以及bitbake相关配置,主要有以下几个参数(以Synaptics的Astra SDK为例,其中${workspaceFolder}指的是VSCode当前打开的文件夹路径) :
- Bitbake: Command Wrapper
当使用bitbake指令时,需要用一些前置指令,可以放在这里,例如进入docker环境的指令。
例:docker run --rm -it -v ${workspaceFolder}/sdk:${workspaceFolder}/sdk ghcr.io/synaptics-astra/crops:1.0.0 --workdir=${workspaceFolder}/sdk /bin/bash -c
- Bitbake: Path To Bitbake Folder
这里需要填写yocto项目中bitbak的工具路径
例:${workspaceFolder}/sdk/poky/bitbake
- Bitbake: Path To Env Script
在编译Yocto项目时一般需要设置环境变量,这里填写脚本路径,在启动项目时会自动运行脚本设置好环境变量。
例:meta-synaptics/setup/setup-environment build-sl1640
还有其他设置,可以根据大家的需求进行配置。
完成设置后,VSCode会立即解析Yocto工程,这时下方的终端会出现扫描recipe的日志,解析完后下方状态栏会显示发现的recipe数量。
在VSCode的侧栏中点击Yocto图标,就能看到两个空的工作区域。 如果你想查看或修改某个recipe的相关内容,可以将这个recipe添加到第一个区域,它会将这个recipe的bb文件和bbappend文件找出来。
在这里,可以像阅读代码一样操作,方便找到变量的定义或引用,函数或被继承包的定义位置,语法会用不同颜色标注,方便查看。同时,部分bitbake操作可以通过图形界面操作,不需要记住指令。
熟悉Yocto的同学应该知道,Yocto为了简洁文件架构,不会展示大部分源码文件。如果你想查看或修改某个组件的源码,需要用到另一个工具——devtool。Devtool可以帮助你修改代码,并创建相应的补丁或layer文件并自动添加回Yocto工程中。我们只需要在相应的recipe中选择修改选项.
在第二个工作区域就会出现对应的代码工程,修改完成后,按照需求将修改点整合到Yocto中。
通过这个软件查看和修改Yocto项目可以事半功倍,还不需要记住那些繁琐的指令。 ๑乛◡乛๑
以上是本期博文的全部内容,如有疑问就别在博文下方评论留言了,有什么疑问或想了解的当面和我说(如果你知道我是谁的话ヽ( ̄▽ ̄)و),我会尽量安排上(o´ω`o)و。谢谢大家浏览,我们下期再见。
简单是长期努力的结果,而不是起点
—— 不是我说的
FAQ 1:什么是recipe?
A1:Recipe是Yocto中用于描述如何构建软件包的文件。
FAQ 2:如何查看Yocto工程的解析日志?
A2:在VSCode中设置好Yocto插件后,终端会显示解析日志。
FAQ 3:Yocto项目的官方文档在哪里?
A3:Yocto项目的官方文档可以在其官方网站上找到。
FAQ 4:什么是layer文件?
A4:Layer文件是Yocto项目中的一个层次结构,用于组织和管理不同的构建组件。
FAQ 5:如何在Yocto项目中创建补丁?
A5:使用devtool可以创建补丁并自动添加到Yocto项目中。