我正在设置我的 yocto 项目,为此我遵循了以下步骤:
下载 Poky 源代码(ubuntu:
/yocto/source
)
$ git clone git://git.yoctoproject.org/poky
查看最新的分支/版本(zeus)
$ git checkout zeus
第三步:准备构建环境(ubuntu:
/yocto/source/poky
)
$ source oe-init-build-env ../../build
上面的脚本将移动到构建文件夹中,并在conf文件夹内的conf文件夹(
local.conf
,bblayers.conf
)中创建两个文件
构建 Linux 发行版(unbuntu:
/yocto/build
)
$ bitbake core-image-minimal
检查
runqemu
(ubuntu:/yocto/source/poky/scripts
)
$ ls runqemu // and it is there
在 qemu 中运行生成的图像(ubuntu:
/yocto/build
)
$ runqemu qemux86-64 core-image-minimal
为 qemu 打开其他窗口,图像运行良好。
第一次使用后,当我关闭终端时,通过在
runqemu qemux86-64 core-image-minimal
中运行/yocto/build
再次使用它,会弹出错误
runqemu:找不到命令
如果我在 poky 目录中写入
bitbake
,则会弹出相同的错误
bitbake:找不到命令。
注意:我已经重复整个过程3次以检查安装是否不正确,但我已经完成了一切正常。
yocto 项目层次结构:
如果您关闭了狭小的环境终端,您总是会
MUST
重新source
环境。
poky 的
oe-init-build-env
为您设置所有命令,例如:
runqemu*
中存在的命令poky/scripts
。
该脚本还从
bitbake*
导出 poky/bitbake/bin
命令。
负责此操作的线路位于:
# Make sure our paths are at the beginning of $PATH
for newpath in "$BITBAKEDIR/bin" "$OEROOT/scripts"; do
# Remove any existences of $newpath from $PATH
PATH=$(echo $PATH | sed -re "s#(^|:)$newpath(:|$)#\2#g;s#^:##")
# Add $newpath to $PATH
PATH="$newpath:$PATH"
done
因此,如果您打开新终端,请始终:
source /yocto/source/poky/oe-init-build-env /yoctu/build
编辑
如果您已有构建文件夹,请确保为
oe-init-build-env
脚本提供该文件夹的正确路径。
如果您提供不存在文件夹的新路径,则脚本将为您创建另一个版本。
编辑2
根据你的路径来获取poky环境:
cd ~/Documents/yocto/source/poky
source oe-init-build-env build
^
|
(because build is in same folder as the script)
source /home/$USER/Documents/yocto/source/poky/oe-init-build-env /home/$USER/Documents/yocto/source/poky/build
规则
source <path/to/oe-init-build-env> <path/to/build/folder>
如果
<path/to/build/folder>
存在,poky 将获取现有的构建环境。
如果
<path/to/build/folder>
不存在,poky 将以相同的名称和路径创建新的构建。