yocto 项目 runqemu:找不到命令

问题描述 投票:0回答:1

我正在设置我的 yocto 项目,为此我遵循了以下步骤:

  1. 下载 Poky 源代码(ubuntu:

    /yocto/source

    $ git clone git://git.yoctoproject.org/poky
    
  2. 查看最新的分支/版本(zeus)

    $ git checkout zeus
    
  3. 第三步:准备构建环境(ubuntu:

    /yocto/source/poky

    $ source oe-init-build-env ../../build
    

    上面的脚本将移动到构建文件夹中,并在conf文件夹内的conf文件夹(

    local.conf
    bblayers.conf
    )中创建两个文件

  4. 构建 Linux 发行版(unbuntu:

    /yocto/build

    $ bitbake core-image-minimal
    
  5. 检查

    runqemu
    (ubuntu:
    /yocto/source/poky/scripts

    $ ls runqemu   // and it is there
    
  6. 在 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 项目层次结构:

linux-kernel linux-device-driver embedded-linux yocto qemu
1个回答
3
投票

如果您关闭了狭小的环境终端,您总是会

MUST
重新
source
环境。

poky 的

oe-init-build-env
为您设置所有命令,例如:

runqemu*
中存在的命令
poky/scripts

该脚本还从

bitbake*
导出
poky/bitbake/bin
命令。

负责此操作的线路位于:

  • poky/scripts/oe-buildenv-internal(第 99 行):
# 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 将以相同的名称和路径创建新的构建。

© www.soinside.com 2019 - 2024. All rights reserved.