【问题标题】:How Can I Solve "Failed To Source Bitbake" With Xilinx Petalinux SDK如何使用 Xilinx Petalinux SDK 解决“无法获取 Bitbake 源”
【发布时间】:2021-07-30 06:45:33
【问题描述】:

我正在运行带有 Xilinx Petalinux 2018.03 SDK 的 Ubuntu 16.04。经过多次成功编译后,我现在面临此错误

$ petalinux-build
[INFO] building project
[INFO] sourcing bitbake
ERROR: Failed to source bitbake
ERROR: Failed to build project

我该如何解决这个问题?

【问题讨论】:

    标签: ubuntu-16.04 xilinx bitbake petalinux


    【解决方案1】:

    出现“错误:无法获取 bitbake”和“错误:无法构建项目”错误的另一个原因是可能在构建机器上升级了 Python。 Petalinux SDK 2018.3 版本需要 python v2 (>= 2.7.3)。

    您可以在 [YOUR_PROJECT]/build/build.log 下查看,您可能会在下面看到与此类似的日志:

    [INFO] building project
    [INFO] sourcing bitbake
    SDK environment now set up; additionally you may now run devtool to perform development tasks.
    Run devtool --help for further details.
    OpenEmbedded requires 'python' to be python v2 (>= 2.7.3), not python v3.
    Please set up python v2 as your default 'python' interpreter.
    ERROR: Failed to source bitbake
    ERROR: Failed to build project
    

    要解决此问题,请删除 /usr/bin 下的符号链接,并确保创建一个指向 Python 2.7 的新链接:

    sudo rm /usr/bin/python
    sudo ln -s /usr/bin/python2.7 /usr/bin/python
    

    【讨论】:

    【解决方案2】:

    首先,您需要进一步调查错误,执行以下操作:

    source /opt/pkg/petalinux/2018.3/settings.sh
    

    它将返回类似于下面的内容:

    PetaLinux environment set to '/opt/pkg/petalinux/2018.3'
    INFO: Checking free disk space
    INFO: Checking installed tools
    INFO: Checking installed development libraries
    INFO: Checking network and other services
    

    来源环境设置:

    source /opt/pkg/petalinux/2018.3/components/yocto/source/aarch64/environment-setup-aarch64-xilinx-linux
    

    接着是:

    devtool --help
    

    就我而言,我可以看到更多关于实际错误的信息:

    NOTE: Starting bitbake server...
    ERROR: Unable to start bitbake server
    ERROR: Last 10 lines of server log for this session (/opt/pkg/petalinux/2018.3/components/yocto/source/aarch64/bitbake-cookerdaemon.log):
    Traceback (most recent call last):
      File "/opt/pkg/petalinux/2018.3/components/yocto/source/aarch64/layers/core/bitbake/lib/bb/daemonize.py", line 77, in createDaemon
        function()
      File "/opt/pkg/petalinux/2018.3/components/yocto/source/aarch64/layers/core/bitbake/lib/bb/server/process.py", line 433, in _startServer
        self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset)
      File "/opt/pkg/petalinux/2018.3/components/yocto/source/aarch64/layers/core/bitbake/lib/bb/cooker.py", line 178, in __init__
        self.configwatcher = pyinotify.WatchManager()
      File "/opt/pkg/petalinux/2018.3/components/yocto/source/aarch64/layers/core/bitbake/lib/pyinotify.py", line 1764, in __init__
        raise OSError(err % self._inotify_wrapper.str_errno())
    OSError: Cannot initialize new instance of inotify, Errno=Too many open files (EMFILE)
    
    ERROR: Unable to start bitbake server
    ERROR: Last 10 lines of server log for this session (/opt/pkg/petalinux/2018.3/components/yocto/source/aarch64/bitbake-cookerdaemon.log):
    Traceback (most recent call last):
      File "/opt/pkg/petalinux/2018.3/components/yocto/source/aarch64/layers/core/bitbake/lib/bb/daemonize.py", line 77, in createDaemon
        function()
      File "/opt/pkg/petalinux/2018.3/components/yocto/source/aarch64/layers/core/bitbake/lib/bb/server/process.py", line 433, in _startServer
        self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset)
      File "/opt/pkg/petalinux/2018.3/components/yocto/source/aarch64/layers/core/bitbake/lib/bb/cooker.py", line 178, in __init__
        self.configwatcher = pyinotify.WatchManager()
      File "/opt/pkg/petalinux/2018.3/components/yocto/source/aarch64/layers/core/bitbake/lib/pyinotify.py", line 1764, in __init__
        raise OSError(err % self._inotify_wrapper.str_errno())
    OSError: Cannot initialize new instance of inotify, **Errno=Too many open files (EMFILE)**
    

    这是指向需要增加的/proc/sys/fs/inotify/max_user_instances。就我而言,我这样做是从 128 到 256:

    sudo su 
    echo 256 > /proc/sys/fs/inotify/max_user_instances
    

    您需要使用“su”成为 root 并更改 mac_user_instances。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-11
      • 1970-01-01
      • 2023-01-16
      • 1970-01-01
      • 2019-12-09
      • 2019-12-13
      • 2015-06-17
      相关资源
      最近更新 更多