ERROR Could not execute Ninja. I was trying to execute "/opt/fuchsia/prebuilt/third_party/ninja/linux-arm64/ninja"

517 Views Asked by At

I would like to emulate google fuchsia OS on my jetson nano (arm64) with qemu and kvm. This is guide that I'm reading from :

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

below u can see the full log,with all the commands that I have issued and the replies that I've got,until the last one that's the error that I'm not able to fix :

/opt# python --version
Python 3.8.11

/opt# curl -sO https://storage.googleapis.com/fuchsia-ffx/ffx-linux-x64 && chmod +x ffx-linux-x64 && ./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>

ERROR Could not execute Ninja. I was trying to execute "/opt/fuchsia/prebuilt/third_party/ninja/linux-arm64/ninja"

1

There are 1 best solutions below

0
devunwired On

I'll begin by pointing this out from the source code guide:

At this time the preflight tool is only provided as an x64 prebuilt. Fuchsia is currently not guaranteed to build successfully on other host architectures.

So this isn't an officially supported path, and there may be sharp edges. Any time you see Exec format error popping up in your logs it relates to the fact that a prebuilt isn't running on the correct architecture. This may be because the arm64 prebuilt doesn't exist or perhaps it was improperly fetched.

For ffx platform preflight, there are currently no arm64 binaries uploaded (the command you copied pulled the x64 binary). However, this step only helps validate prerequisites...it's not required to complete the build. I have filed fxbug.dev/80517 related to possibly adding support for this.

The subsequent errors coming from fuchsia/prebuilt relate to issues with the linux-arm64 binaries downloaded during bootstrap. I would recommend filing an issue for this as a feature request in the public issue tracker.