ubuntu-16.04xilinxbitbakepetalinux

How Can I Solve "Failed To Source Bitbake" With Xilinx Petalinux SDK


I am running Ubuntu 16.04 with Xilinx Petalinux 2018.03 SDK. After a number of successful compilations I am now facing this error

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

How can I solved this issue?


Solution

  • First you need to investigate the error a little further, do this:

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

    It will return something similar to this below:

    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 the environment setup:

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

    followed by:

    devtool --help
    

    In my case I can see more about the actual error:

    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)**
    

    This is pointing to the /proc/sys/fs/inotify/max_user_instances that need to be increased. In my case I went from 128 to 256 by doing this:

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

    You need to become root with "su" and change the mac_user_instances.