ОШИБКА Не удалось выполнить Ninja. Я пытался выполнить «/opt/фуксия/предварительно созданная/третья сторона/ниндзя/linux-arm64/ниндзя»

#linux #arm #arm64 #ninja #fuchsia

Вопрос:

Я хотел бы эмулировать ОС Google fuchsia на своем jetson nano (arm64) с помощью qemu и kvm. Это руководство, которое я читаю из :

https://fuchsia.dev/fuchsia-src/get-started/get_fuchsia_source

ниже вы можете увидеть полный журнал со всеми командами,которые я выдал,и ответами, которые я получил, до последней ошибки, которую я не могу исправить :

 /opt# python --version
Python 3.8.11

/opt# curl -sO https://storage.googleapis.com/fuchsia-ffx/ffx-linux-x64 amp;amp; chmod  x ffx-linux-x64 amp;amp; ./ffx-linux-x64 platform preflight
bash: ./ffx-linux-x64: cannot execute binary file: Exec format error

/opt# curl -s "https://fuchsia.googlesource.com/fuchsia/ /HEAD/scripts/bootstrap?format=TEXT" | base64 --decode | bash

WARNING: Jiri doesn't support timely updates for arch 'aarch64'. This or future binaries of Jiri might be out of date.
cipd bootstrapped to path:"/opt/fuchsia/.jiri_root/bin/cipd"
Please add /opt/fuchsia/.jiri_root/bin to your PATH

WARN: Please opt in or out of analytics collection. You will receive this warning until an option is selected.
To check what data we collect run: jiri init -show-analytics-data
To opt-in run: jiri init -analytics-opt=true "/opt/fuchsia"
To opt-out run: jiri init -analytics-opt=false "/opt/fuchsia"

Updating all projects
WARN: Some packages are skipped by cipd due to lack of access, you might want to run "/opt/fuchsia/.jiri_root/bin/cipd auth-login" and try again

Done creating a Platform Source Tree at "/opt/fuchsia".
Recommended: export PATH="/opt/fuchsia/.jiri_root/bin:$PATH"

/opt# nano ~/.bash_profile

export PATH=/opt/fuchsia/.jiri_root/bin:$PATH
source /opt/fuchsia/scripts/fx-env.sh

/opt# source ~/.bash_profile

/opt# jiri help
Command jiri is a multi-purpose tool for multi-repo development.

Usage:
   jiri [flags] <command>


/opt/fuchsia# fx help
 
usage: fx [--dir BUILD_DIR] [-d DEVICE_NAME] [-i] [-x] COMMAND [...]
Run Fuchsia development commands. Must be run from a directory
that is contained in a Platform Source Tree.


/opt/fuchsia# fx set core.qemu-arm64

WARNING: Please opt in or out of fx metrics collection.
You will receive this warning until an option is selected.
To check what data we collect, run `fx metrics`
To opt in or out, run `fx metrics <enable|disable>

/opt/fuchsia/tools/devshell/go: line 21: /opt/fuchsia/prebuilt/third_party/go/linux-arm64/bin/go: cannot execute binary file: Exec format error

/opt/fuchsia/tools/devshell/go: line 21: /opt/fuchsia/prebuilt/third_party/go/linux-arm64/bin/go: Success

ERROR: Failed to build fx set.
ERROR: Please file a bug using `fx report-bug set` with the full error copy-pasted.
ERROR: Rerun your command using the uncompiled version:
ERROR:   fx --enable=legacy_set set core.qemu-arm64


/opt/fuchsia# fx --enable=legacy_set set core.qemu-arm64

WARNING: Please opt in or out of fx metrics collection.
You will receive this warning until an option is selected.
To check what data we collect, run fx metrics
To opt in or out, run `fx metrics <enable|disable>
 

ОШИБКА Не удалось выполнить Ninja. Я пытался выполнить «/opt/фуксия/предварительно созданная/третья сторона/ниндзя/linux-arm64/ниндзя»

Ответ №1:

Я начну с указания на это из руководства по исходному коду:

В настоящее время средство подготовки к полету предоставляется только в виде предварительно установленной версии x64. В настоящее время не гарантируется, что Fuchsia будет успешно работать на других архитектурах хостов.

Таким образом, это официально не поддерживаемый путь, и могут быть острые углы. Каждый раз, когда вы видите Exec format error всплывающие сообщения в своих журналах, это связано с тем фактом, что готовая версия не работает на правильной архитектуре. Это может быть связано с тем, что arm64 предварительно собранного не существует или, возможно, он был неправильно извлечен.

Поскольку ffx platform preflight в настоящее arm64 время двоичные файлы не загружены (команда , которую вы скопировали, извлекла x64 двоичный файл). Однако этот шаг помогает только проверить предварительные условия…для завершения сборки это не требуется. Я подал файл fxbug.dev/80517, связанный с возможным добавлением поддержки для этого.

Последующие ошибки, возникающие из fuchsia/prebuilt -за проблем с linux-arm64 двоичными файлами, загруженными во время начальной загрузки. Я бы рекомендовал зарегистрировать проблему для этого в качестве запроса на функцию в общедоступном трекере проблем.