#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
двоичными файлами, загруженными во время начальной загрузки. Я бы рекомендовал зарегистрировать проблему для этого в качестве запроса на функцию в общедоступном трекере проблем.