-
Notifications
You must be signed in to change notification settings - Fork 76
Open
Description
This is an issue when running speculos on ARM64 architecture and enabling VNC.
Here is the analyse from Claude Sonnet:
The launcher binary runs INSIDE QEMU (line 224: qemu-arm-static), which is an ARM emulator. QEMU can emulate ARM binaries on any architecture, so:
launcher (and the emu library) → Compiled for ARM architecture (as seen in CMakeLists.txt with ARM toolchains) → Runs inside qemu-arm-static → Works on any host architecture (x86-64 or ARM64) because QEMU handles the translation
vnc_server → Compiled for the host architecture (x86-64 in the PyPI build) → Runs directly on the host as a native subprocess (line 42: [subprocess.Popen](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-browser/workbench/workbench.html)) → Must match the host architecture
That's why:
When you install the x86-64 PyPI wheel on an ARM64 system, the launcher works fine (QEMU handles it)
But vnc_server fails because it's trying to run an x86-64 binary directly on ARM64 hardware
The VNC server needs to be a native binary for the host architecture because it runs as a separate process that communicates with the Python code via pipes/sockets, while the launcher is meant to be ARM code that QEMU emulates.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels