bitbake的用法

bitbake fetcher支持多种协议来获取文件, 这些协议大多是从网络服务器获取文件。有时新的修改可能还没有提交到服务器,从本机获取文件可快速测试最新功能。

本地的代码可以是无版本信息的文件(夹),也可以是带版本控制信息的本地仓库。 这里简要介绍如何从本地git仓库更新代码,其他协议参考git的设置即可。

本地Git克隆仓库

bitbake中的 Git Fetcher 使用以下形式的变量指定git仓库的下载参数:

SRC_URI = "git://<host>/path/to/<repo>.git;protocol=<protocol>;branch=<branch>;user=<user>:<password>;destsuffix=<destdir>"
SRCREV = ${AUTOREV}

注意SRC_URI中的路径必须以“git://”开头,bitbake fetcher才会使用Git Fetcher来更新。

protocol: 指定了git fetcher使用的协议(git/file等等)。此处使用**file://**协议来克隆本地磁盘上的仓库。
branch: 分支名
user: 用户名/密码
destsuffix:目的文件夹名

SRCREV指定了获取源代码的版本号,“AUTOREV”表示获取当前分支最新的版本。

本地文件

本地git仓库中的代码,也可以打包成压缩包:

git archive --prefix=src_dir_name/ HEAD -o ../src_dir_name.tar.bz2

这样这个压缩包中就不包含版本控制信息,指定bitbake使用file://协议获取:

SRC_URI = "file:///local/source/path"

更新文件

修改完源代码的获取路径之后,使用bitbake命令重新编译/打包代码:

bitbake gst-fsl-plugin -c clean
bitbake gst-fsl-plugin -c compile -f
bitbake gst-fsl-plugin