Title: Use under box64 on WSL on arm64: works · Issue #26 · MicroPythonOS/MicroPythonOS · GitHub
Open Graph Title: Use under box64 on WSL on arm64: works · Issue #26 · MicroPythonOS/MicroPythonOS
X Title: Use under box64 on WSL on arm64: works · Issue #26 · MicroPythonOS/MicroPythonOS
Description: I wanted to give MicroPythonOS a go, but the machine I'm using is a Snapdragon arm64 Windows 11 machine. It worked, with some workarounds. There's mention in the documentation that it should work under WSL, and that "It would be great if...
Open Graph Description: I wanted to give MicroPythonOS a go, but the machine I'm using is a Snapdragon arm64 Windows 11 machine. It worked, with some workarounds. There's mention in the documentation that it should work u...
X Description: I wanted to give MicroPythonOS a go, but the machine I'm using is a Snapdragon arm64 Windows 11 machine. It worked, with some workarounds. There's mention in the documentation that it shoul...
Opengraph URL: https://github.com/MicroPythonOS/MicroPythonOS/issues/26
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Use under box64 on WSL on arm64: works","articleBody":"I wanted to give MicroPythonOS a go, but the machine I'm using is a Snapdragon arm64 Windows 11 machine. It worked, with some workarounds. There's mention in the documentation that it should work under WSL, and that \"It would be great if someone could give this a try and report back with the results in the chat or in a GitHub issue.\" This isn't precisely that, since I'm testing on arm64, but it's close so I thought I'd report.\n\nI tried to build it first, wanting to try it in native arm64. This failed with some errors between SDL and Pipewire:\n\n```\n[ 72%] Building C object CMakeFiles/SDL2-static.dir/src/audio/sndio/SDL_sndioaudio.c.o\n/home/user/MicroPythonOS/lvgl_micropython/lib/SDL/src/audio/pipewire/SDL_pipewire.c: In function ‘node_event_info’:\n/home/user/MicroPythonOS/lvgl_micropython/lib/SDL/src/audio/pipewire/SDL_pipewire.c:593:37: error: passing argument 1 of ‘pw_node_enum_params’ from incompatible pointer type [-Wincompatible-pointer-types]\n593 | pw_node_enum_params(node-\u003eproxy, 0, info-\u003eparams[i].id, 0, 0, NULL);\n| ~~~~^~~~~~~\n| |\n| struct pw_proxy *\nIn file included from /usr/include/pipewire-0.3/pipewire/pipewire.h:30,\nfrom /home/user/MicroPythonOS/lvgl_micropython/lib/SDL/src/audio/pipewire/SDL_pipewire.h:28,\nfrom /home/user/MicroPythonOS/lvgl_micropython/lib/SDL/src/audio/pipewire/SDL_pipewire.c:29:\n/usr/include/pipewire-0.3/pipewire/node.h:208:58: note: expected ‘struct pw_node *’ but argument is of type ‘struct pw_proxy *’\n208 | PW_API_NODE_IMPL int pw_node_enum_params(struct pw_node *object,\n| ~~~~~~~~~~~~~~~~^~~~~~\ngmake[2]: *** [CMakeFiles/SDL2-static.dir/build.make:2165: CMakeFiles/SDL2-static.dir/src/audio/pipewire/SDL_pipewire.c.o] Error 1\ngmake[2]: *** Waiting for unfinished jobs....\ngmake[1]: *** [CMakeFiles/Makefile2:159: CMakeFiles/SDL2-static.dir/all] Error 2\ngmake: *** [Makefile:136: all] Error 2\n```\n\nIt's late, so I didn't try to figure out why. This was on Debian 13, if it matters.\n\nSo the next thing to try was to download the release build for Linux amd64 and see if I could run it under emulation. Box64 got me nearly there, with only this error:\n\n```\n[BOX64] Error loading needed lib libffi.so.8\n```\n\nI gather it means Box64 doesn't know how to wrap that one, so it needs the native library. This can be accomplished on Debian arm64 in the following way:\n\nFirst, you need to download the Debian build of libffi8, for amd64:\n\n1. Add the `amd64` architecture (danger: don't try to install stuff, we don't want the OS to get confused.)\n - `sudo dpkg --add-architecture amd64`\n2. Get the repo metadata\n - `sudo apt update`\n4. Download the package\n - `apt download libffi8:amd64`\n5. Disable the architecture again, so you don't mess up your system with a lot of incompatible libraries\n - `sudo dpkg --remove-architecture amd64`\n - `sudo apt update`\n6. Extract the package\n - `mkdir extracted_libs`\n - `dpkg-deb -x libffi8_*.deb ./extracted_libs`\n7. Tell Box64 where to find the library\n - `export BOX64_LD_LIBRARY_PATH=$PWD/extracted_libs/usr/lib/x86_64-linux-gnu/`\n\nAt this point you can simply prefix the command to start the amd64 binary from releases with `box64 `\n\n```\ncd internal_filesystem/\nbox64 ../MicroPythonOS_amd64_linux_0.7.1.elf -X heapsize=32M -v -i -c \"$(cat boot_unix.py main.py)\"\n```\n\nI figure if I can make it work under WSL on Snapdragon, it should be easy to run under WSL on an amd64 machine. I hope this helps!","author":{"url":"https://github.com/ajorg","@type":"Person","name":"ajorg"},"datePublished":"2026-02-01T07:37:17.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/26/MicroPythonOS/issues/26"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:cd7f6b74-bcff-9095-4627-3e4051911211 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | D756:26A272:BC7DCF:10F09BD:6A4E479C |
| html-safe-nonce | 061b34ae8813892ef3cc97796e143ef25acf74bb62f994111e308e16049a7669 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJENzU2OjI2QTI3MjpCQzdEQ0Y6MTBGMDlCRDo2QTRFNDc5QyIsInZpc2l0b3JfaWQiOiI0OTE2NTQ4MjkyMTQ0MTU0NTI0IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 7d68467a03ed98261ee56b4d1d9031911e0090570a9515d97292ed2c679a2e93 |
| hovercard-subject-tag | issue:3881472380 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/MicroPythonOS/MicroPythonOS/26/issue_layout |
| twitter:image | https://opengraph.githubassets.com/aea103144cd1402db61d0bba9579c97a5bda39aba98818348a70abfd2561b8fb/MicroPythonOS/MicroPythonOS/issues/26 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/aea103144cd1402db61d0bba9579c97a5bda39aba98818348a70abfd2561b8fb/MicroPythonOS/MicroPythonOS/issues/26 |
| og:image:alt | I wanted to give MicroPythonOS a go, but the machine I'm using is a Snapdragon arm64 Windows 11 machine. It worked, with some workarounds. There's mention in the documentation that it should work u... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | ajorg |
| hostname | github.com |
| expected-hostname | github.com |
| None | 030096ee0db095447bfe77409d33bfac127ca7128299c58deef27c52eaa1b1f0 |
| turbo-cache-control | no-preview |
| go-import | github.com/MicroPythonOS/MicroPythonOS git https://github.com/MicroPythonOS/MicroPythonOS.git |
| octolytics-dimension-user_id | 213598128 |
| octolytics-dimension-user_login | MicroPythonOS |
| octolytics-dimension-repository_id | 975472483 |
| octolytics-dimension-repository_nwo | MicroPythonOS/MicroPythonOS |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 975472483 |
| octolytics-dimension-repository_network_root_nwo | MicroPythonOS/MicroPythonOS |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | e8506f6d0538364886e3f0153c154c410965e70d |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width