之前用了很多次devtool,总是忘记用法,故此记录一下。
假设你有一个软件包名叫foo,并且已经下载编译过,需要修改它的源码并生成patch
- 生成修改工作区
devtool modify foo
modify命令会将foo的源码压缩包解压到build/workspace/sources/
下面,并将mate中对应软件包的patch打上(git方式) - 修改源码
用你习惯的方式修改build/workspace/sources/foo
下的源码 - 编译验证
devtool build foo
build命令只会编译build/workspace/sources/foo这个软件包,不会编译其他的,编译结果在build/tmp/work/{platform}/foo/{version}/build/
中 - 提交代码
验证通过就可以提交修改了,提交修改一般使用git就行了
cd build/workspace/sources/foo
git add .
git commit
git log可以查看历史记录,里面会有modify打入的patch记录,想要合并到某个之前的patch上也是可以的,只需要将你的记录合并到patch对应的commit上面即可。 - 提交yocto
上一步还没有真正提交到yocto中,提交到yocto有两种方法- 使用devtool
bitbake-layers show-layers
查看自己要提交的layer
devtool finish --force-patch-refresh foo layer_name
提交到layer - 手动提交
使用git生成patch放入mate下面对应软件包中
- 使用devtool
- 清理工作区
rm -rf build/workspace/sources/foo
- 出错复位
devtool reset foo