yocto devtool 使用

1、devtool add  命令

    devtool add 有3种用法:如下图

  改图表示,devtool 会提取源代码到 build/workspace目录,并自动创建一个菜谱文件

 

 2、先使用左边的图中方法

devtool add recipe fetchuri

 recipe:是会自动创建一个菜谱的名字

 fetchuri:是源代码的,git地址

   下面这个例子,使用我自己的一个hello_word测试代码的git厂库,我定义自动生成的菜谱名字为 hello-word-vi

devtool add  hello-world-v1  https://github.com/lshjn/hello_world-v1.git

  

 

 

 

3、上图最后显示,在 /build/workspace/recipes/目录里自动创建了一个hello-world-v1目录,在该目录下创建了一个hello-world-v1_git.bb文件,如下图

 

     提取的文件在: build/workspace/sources/hello-world-v1 目录里

4、查看菜谱的内容

 

 5、第二种方式 

devtool add recipe srctree fetchuri

 srctree:表示我们提取文件到自定义目录,前提存在这个目录且目录是非空的

 eg: 如下操作步骤

1、cd /home/lsh/yocto/poky
2、mkdir meta-hello-world-v1
3、devtool add  meta-hello-world-v1 ~/yocto/poky/meta-hello-world-v1/  http://liushuhe.familyds.com:30000/liushuhe/hello_world_v1.git

6、操作成功,会在 将源代码提取到/home/lsh/yocto/poky/meta-hello-world-v1/目录,并在/home/lsh/yocto/poky/build/workspace/recipes/meta-hello-world-v1/创建菜谱文件meta-hello-world-v1_git.bb

 

 7、第3种方法

  前提:是在第二种方法基础上工作的,必须要自己创建目录且提取文件成功后,才能用第三种方法

devtool add recipe srctree

  这个方法是给之前的提取的代码重新创建一个新菜谱

devtool add meta-hello-workd-v2 /home/lsh/yocto/poky/meta-hello-world-v1

 下图展示了创建成功后的截图

 8、下面展示一下,完整的使用devtool拉取代码,修改代码,提交更改的过程

注:这个修改代码是基于菜谱来修改的,所以必须先用devtool add将文件拉取下来,且不能放在/build/workspace/目录,devtool add 会自动创建一个菜谱文件

     1、进入工作目录

cd /home/lsh/yocto/poky
mkdir meta-helloworld

  2、配置环境

source oe-init-build-env

  3、devtoo提取代码

devtool add  meta-helloworld ~/yocto/poky/meta-helloworld/  http://liushuhe.familyds.com:30000/liushuhe/hello_world_v1.git

  

 

   4、上图显示,源码被提取到 /poky/meta-helloworld目录,自动创建的菜谱被放在了 build/workspace/recipes/meta-helloworld/目录,菜谱名为 meta-helloworld_git.bb

    修改菜谱,加上编译命令

    

  5、可以编译这个菜谱,这个命令会将编译输出移动到目标硬件,可能比较费时间,可以不做这个步骤

  devtool build meta-helloworld

  6、使用菜谱完成命令,这个命令在本地git厂库中创建提交任何补丁,将菜谱移动到永久存在的layer中,以便正常构建,而不是从workspace中构建

devtool finish meta-helloworld  meta-lsh

  7、注意上面的操作,必须要指定完成的菜谱提交到那个层 layer,我是提交到meta-lsh,如果没有这个层,就需要手动创建

创建自己的层
1、cd   /home/lsh/yocto/poky
2、bitbake-layers create-layer meta-lsh
3、cd   /home/lsh/yocto/poky/build
4、bitbake-layers add-layer ../meta-lsh

  8、菜谱完成命令成功后,如下图

  

 

   上图显示,菜谱被移动到 /yocto/poky/meta-lsh目录下

9、用 devtool modify 修改文件,这个指令会根据meta-helloworld菜谱里git将代码重新提取到、/poky/build/workspace/目录

devtool modify meta-helloworld

  

 

 10、上图显示,源码被提取到了 /build/workspace/source/meta-helloworld目录,并且又自动创建了一个菜谱 位于 /build/workspace/sources/meta-helloworld目录

  

 

   上图可以看到这个提取是新建一个git厂库,所有修改了得代码都需要在finish之前进行提交,例如这个更改

     

 

     git提交命令

1、git add  hello_world_v1.c
2、git commit

 11、执行 devtool   finish 命令。可以看出给我们自动添加了一个补丁文件

  

 

 12、现在回到 /poky/meta-lsh/repices-meta-helloworld/meta-helloworld/目录,可以看到有一个菜谱文件

  meta-helloworld_git.bb

  查看内容,发现被新加了一个补丁文件,补丁文件位于

  

 

  查看补丁文件内容

   

   

 

   从补丁文件可以看出来,我们做的修改

 

 

 

 

 

 

posted on 2020-06-30 17:42  紫枫术河  阅读(4111)  评论(0编辑  收藏  举报

导航