Как я могу решить проблему с исходным кодом Bitbake с помощью Xilinx Petalinux SDK

Я использую Ubuntu 16.04 с Xilinx Petalinux 2018.03 SDK. После ряда успешных компиляций я столкнулся с этой ошибкой

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

Как я могу решить эту проблему?


person MTI    schedule 18.01.2021    source источник


Ответы (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

Вам нужно стать пользователем root с помощью su и изменить файл mac_user_instances.

person MTI    schedule 18.01.2021

Еще одна причина появления ошибок ОШИБКА: не удалось получить исходный битбак, а также ОШИБКА: не удалось собрать проект — это возможное обновление Python на машине сборки. Для Petalinux SDK требуется python v2 (›= 2.7.3) для выпуска 2018.3.

Вы можете проверить в [ВАШ_ПРОЕКТ]/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
person MTI    schedule 28.07.2021