devtool使用介绍(1)

article/2025/10/8 12:55:59

devtool使用介绍1

  • SDK中devtool的工作流程
    • 2.4.1 使用 devtool add添加应用程序

SDK中devtool的工作流程

可扩展SDK的核心要件是一个命令行工具,称为devtool。该工具提供了许多功能,可以帮助你在可扩展的SDK中构建,测试和打包软件,以及通过OpenEmbedded构建系统定制化构建该工具到镜像中。

注意
devtool的用途不限于可扩展的SDK。可以使用devtool帮助你轻松开发必须输出构建的任何项目 使用构建系统构建的图像的一部分。

该devtool命令行也同样被组织到Git中并包含了很多更小功能的子命令。你可以通过执行devtool --help查看所有命令。

注意
在Yocto项目参考手册中查看“ devtool快速阅览”能帮助你快速了解devtool。

存在如下三个devtool子命令,它们提供了开发的切入点:

  • devtool add :协助添加要构建的新软件。

  • devtool Modify :设置环境以便于开发者能够进行修改现有组件的来源。

  • devtool upgrade :更新现有recipe,以便于开发者可以将其构建为一组更新的源文件。

与构建系统一样,“recipes”代表devtool中的软件包。当你使用devtool add时,recipe会被自动创建。 使用devtool modify时,指定的现有recipe用于确定从何处获取源代码以及如何修补它。在这两种情况下都将建立了一个环境,以便于构建一个由你控制的,改变如你预期的recipe源码树。默认情况下,新的recipe和源代码都在SDK下的“workspace”目录。

本节的剩余部分介绍了 devtool add, devtool modify,以及 devtool upgrade工作流程。

2.4.1 使用 devtool add添加应用程序

devtool add命令根据现有源代码生成新recipe。该命令利用了许多devtool命令使用的The Workspace Layer Structure。 该命令足够灵活 允许你将源代码提取到工作区或单独的本地Git存储库,并使用不需要提取的现有代码。

根据你的特定情况,与devtool一起使用的参数和选项会形成不同的组合。下图显示了将与devtool add命令一起使用的常见开发流程:
在这里插入图片描述

  1. 生成新的recipe:流程的顶部显示了三种方案,你可以使用它们使用devtool add来基于现有源代码生成recipe。在共享开发环境中,其他开发人员通常要负责源代码的各个领域。作为开发人员,你可能有兴趣在Yocto Project中将源代码用作开发的一部分。你所需要做的就是访问代码,recipe以及在其中进行工作的受控区域。在该图中,将三种可能的情况提供给devtool add工作流程:
  • LEFT:图中的左侧场景代表一种常见情况,其中源代码在本地不存在,需要提取。 在这种情况下,源代码将提取到默认工作空间中-你不希望文件位于工作空间之外的某些特定位置。因此,你需要的所有内容都将位于工作空间中:
$ devtool add recipe fetchuri

使用此命令,devtool将上游源文件提取到sources文件夹内的本地Git存储库中。 然后,该命令在工作空间中创建一个名为recipe的recipe和一个相应的附加文件。 如果不提供recipe,该命令将尝试确定recipe名称。

  • Middle:图中的中间场景表示源代码在本地不存在的情况。在这种情况下,代码再次位于上游,并且需要提取到某个局部区域-这次是在默认工作空间之外。
注意
如果需要,devtool在提取过程中,总是在本地创建一个Git存储库。

此外,在这种情况下,第一个位置参数srctree标识devtool add命令将提取的代码定位在工作空间之外的位置。你需要指定一个空目录:

$ devtool add recipe srctree fetchuri

总而言之,源代码是从fetchuri中提取的,并被提取到srctree定义为本地Git存储库的位置。
在工作区中, devtool将创建一个名为recipe的recipe以及关联的附加文件。

  • Right::图中正确的情况表示srctree先前已在devtool工作空间之外准备的情况。
    以下命令提供了新的recipe名称,并标识了现有的源码树位置:
$ devtool add recipe srctree

该命令检查源代码,并为该代码创建一个名为recipe的recipe,并将该recipe放入工作区中。
由于提取的源代码已经存在,因此devtool不会尝试将源代码重新定位到工作空间中-仅将新recipe放置在工作空间中。
除了recipe文件夹之外,该命令还创建了一个关联的附加文件夹,并在其中放置了一个初始*.bbappend文件。

  1. 编辑Recipe:你可以使用devtool edit-recipe打开$ EDITOR环境变量定义的编辑器并修改文件:
$ devtool edit-recipe recipe

在编辑器中,你可以对recipe进行修改,这些修改将在以后构建时生效。

  1. 构建recipe或重建图像:下一步主要取决于对新代码的处理方式。
    如果最终需要将构建输出移至目标硬件,请使用以下devtool命令:
$ devtool build recipe

另一方面,如果你希望映像包含来自工作区的recipe软件包以立即部署到设备上(例如,出于测试目的),则可以使用devtool build-image命令:

$ devtool build-image image
  1. 部署构建输出:使用devtool build命令构建recipe时,你可能想查看生成的构建输出在目标硬件上是否按预期工作。
注意
此步骤假定你具有一个先前构建的映像,该映像已经在QEMU中运行或在实际硬件上运行。另外,假定为将映像部署到目标,映像中安装了SSH,并且如果映像在实际硬件上运行,那么你可以访问开发计算机或从开发计算机访问网络。

你可以使用devtool deploy-target命令将生成的输出部署到该目标硬件:$ devtool deploy-target recipe target目标是作为SSH服务器运行的实时目标计算机。
当然,你还可以使用devtool build-image命令将构建的映像部署到实际硬件。但是,devtool没有提供允许你将映像部署到实际硬件的特定命令。

  1. 使用recipe完成工作:devtool finish命令在本地Git存储库中创建与提交对应的所有补丁,将新recipe移动到更永久的层,然后重置recipe,以便正常构建recipe,而不是从工作区中构建recipe。
$ devtool finish recipe layer
注意
对补丁的任何更改都必须提交到源树中的Git存储库。

如前所述,devtool finish命令将最终recipe移至其永久层(没理解到,原文是:permanent layer)。
作为devtool finish命令的最后过程,将还原标准层和上游源的状态,以便你可以从这些区域而不是工作空间中构建recipe。

注意
如果你决定不想继续进行工作,则可以使用devtool reset命令将内容放回原处。如果确定使用此命令,请记得保留源码树。

http://chatgpt.dhexx.cn/article/R6f2xfdw.shtml

相关文章

vue-devtools-简介、下载、安装、配置、使用

一、简介 vue-devtools是一款基于chrome游览器的插件,可以用于调试vue应用,也可以用来辅助我们找到各页面对应的Vue.js文件路径,这将极大地提高我们的开发和调试效率。 二、下载 下载路径:https://github.com/vuejs/vue-devtoo…

DevTools使用

Chrome DevTools是内嵌在Chrome浏览器里的一组用于网页制作和调试的工具。使用DevTools,可以在平时中的开发调试中极大的提高效率。 使用快捷键ctrlshifti或者f12可以直接打开开发者工具。 在DevTools开发者工具一共有九个部分。 Element 在这张图中,右…

下载、编译、安装、使用 vue-devtools

不少人都想下载 vue-devtools插件,但又不会做,今天我做个比较详细的笔记 查看当前的devtools的版本可以去这个网站看右侧的个v几点几的,就是版本号 github/vuejs/devtools 目录 第一个方法:使用极简插件 第一步:查…

Vue调试工具vue-devtools的安装与使用

目录 前言 一、vue-devtools是什么? 二、vue-devtools安装 1.下载vue-devtools工具 2.安装vue-devtools工具 三、vue-devtools的使用 总结 前言 主要介绍vue-devtools的安装与使用。 一、vue-devtools是什么? vue-devtools是一款基于chrome游览器…

devTools最新安装方法

VUE DevTools 最新安装方法 啊头疼!最近学习vue,要用到devtools,网上搜索资料,发现都不行,然后就试了好久好久,终于,成功了,接下来划重点!仔细看!&#xff0…

Devtools的简单使用

一.Devtools作用 方便我们实时地观察自己写的数据和组件的状况等。 二.安装 极简插件_Chrome扩展插件商店_优质crx应用 <template><div class""></div> </template><script> export default {data() {return {name:芜湖, //单项数据…

devtools安装

文章目录 一、devtools安装二、参考、推荐、补充 一、devtools安装 vue官网上找到vue-devtools的GitHub项目 https://github.com/vuejs/devtools 我选择放在E盘中新建的devtools文件中&#xff0c;解压 进入解压好的devtools-main文件夹中 这里默认已经下载了node 然后在…

使用浏览器这么多年,你真的了解DevTools吗?

Devtools是Web测试时每天都要用的工具&#xff0c;它提供了很多调试功能&#xff0c;可以帮助我们更好的定位问题。而我们平时使用的功能只是它全部功能的子集&#xff0c;很多功能并没用到过。 作为高频使用的工具&#xff0c;还是有必要好好掌握的。测试时在日常工作中提BUG…

前端开发工具DevTools的详细知识点总结(一)

文章目录 打开DevTools元素面板Style面板Computed面板devtools取色器 控制台面板基本功能介绍控制台应用 网络面板功能区介绍分析请求 结语 打开DevTools devtools,即Chrome 开发者工具&#xff0c;Chrome 开发者工具是一套内置于Google Chrome中的Web开发和调试工具&#xff…

最新版的配置热加载工具DevTools

最新版的配置热加载工具 DevTools 在SpringBoot开发调试中&#xff0c;如果我每行代码的修改都需要重启再调试&#xff0c;可能比较费时间&#xff1b;SpringBoot团队针对此问题提供了spring-boot-devtools&#xff08;简称devtools&#xff09;插件&#xff0c;用此插件提升开…

(十七)Spring Boot devtools

1、devtools简介 Spring Boot 提供了一组开发工具 spring-boot-devtools 可以提高开发者的工作效率&#xff0c;开发者可以将该模块包含在任何项目中&#xff0c;spring-boot-devtools 最方便的地方莫过于热部署了。 2、devtools 实战 2.1 基本用法 要想在项目中加入 devtoo…

libev事件驱动网络库从安装到使用

上次说到的select/poll模型&#xff08;传送门&#xff09;的特征在于每一个执行周期都会探测一次或一组事件&#xff0c;一个特定的事件会触发某个特定的响应。我们可以将这种模型归类为“事件驱动模型”。 相比其他模型&#xff0c;使用 select() 的事件驱动模型只用单线程&…

Libev documentation

2019独角兽企业重金招聘Python工程师标准>>> NAME libev - a high performance full-featured event loop written in C SYNOPSIS #include <ev.h> EXAMPLE PROGRAM // a single header file is required #include <ev.h>#include <stdio.h> // f…

libev库使用教程

libev是用C语言编写的高性能、全功能事件循环库&#xff0c;支持select&#xff0c;poll模型&#xff0c;也支持linux特定的epoll模型&#xff0c;一个小巧、易用的库。 环境准备&#xff1a;ubuntu 一、libev库支持的功能 官方文档&#xff1a;http://pod.tst.eu/http://cvs…

偷懒的网络框架libevent、libev框架介绍

libevent、libev框架介绍 前言概述libevent编译安装libeventlibevent的封装层次 IO事件检测的封装与api介绍事件管理器event_base构建事件管理器event_base_new释放事件管理器event_base_freeevent_reinitevent_get_supported_methodsevent_base_get_method事件循环event_base_…

libev实现分析

libev实现分析 libev是一个事件驱动库&#xff0c;底层是基于select、epoll、kqueue等I/O复用接口。所谓事件驱动库&#xff0c;就是用户定义一个事件以及改事件发生时调用的函数&#xff0c;该库会监听该事件&#xff0c;并在事件发生时调用相应的函数。 libev提供了很多事件…

libev源码解读

1、源码&#xff1a; 源码参见官网或者我的github上 2、安装使用&#xff1a; 安装与基本使用参见我的另一篇博客&#xff1a;传送门 3、架构 Libev通过一个 struct ev_loop结结构表示一个事件驱动的框架。在这个框架里面通过ev_xxx结构&#xff0c;ev_init、ev_xxx_set、…

libev库

libev库 概念数据结构watch集合watch结构 全局触发事件集合数据结构事件触发之IO事件定时器原理ev_run函数 概念 libev是一个轻量级的事件通知库&#xff0c;具备支持多种事件通知能力。 数据结构 在熟悉代码之前先了解其相关数据结构往往更加方便后续代码的阅读。 在libev中…

libev 源码解析

一 libev简介 libev是一个轻量级的事件通知库&#xff0c;具备支持多种事件通知能力&#xff0c;通过对libev的源码的阅读&#xff0c;可以清楚了解事件通知实现内部机制。 二 核心数据结构 在libev中关键的数据结构是&#xff0c;loop结构体&#xff0c;该结构体定义的字段较…

android libev 编译,移植libev事件库到Android中

因为libev库是使用C语言写的&#xff0c;所以在Android项目中使用此库的方法是把libev编译成.so文件&#xff0c;在Android中使用jni方式来调用libev的.so文件。 我们大家都知道android的ndk开发可以编译c,c代码&#xff0c;不过需要自己写Android.mk文件。但是对于大多数开源项…