Add support for 32-bit x86 apps on 64-bit only systems
I have a device which only natively has one architecture: ARM64. According to the README, Box64 supports this system. However, there is a limitation that it only supports 64-bit x86 apps (aka x86_64 or amd64). For running 32-bit x86 apps we'd need Box86, however, that software has a limitation that it only supports hosts with 32-bit support and not 64-bit only.
I would like to install one piece of software that allows me to run 32-bit x86 and 64-bit x86_64 apps while having a host that supports ARM64 and does not have any 32-bit ARM support. I understand if this feature request can't be done soon as I'd imagine this is a complicated request to implement.
You can compile box86 on 64bit arm. I have it running on raspberry pi 4 (debian 64 bit). There is cmake flag that you need to give it to indicate compilation on 64 bit. See the docs.
@jmeloranta Are you sure? The Box86 README explicitly says this:
You NEED a 32-bit subsystem to run and build Box86. Box86 is useless on 64-bit only systems.
Most ARM64 CPUs also support ARMv7 instruction set for vackwards compartibility. Just like x86_64 on desktop supports x86. So you need to set up arm64/armhf multiarch in your OS.
ср, 22 дек. 2021 г., 02:44 Aaron Franke @.***>:
@jmeloranta https://github.com/jmeloranta Are you sure? The Box86 README explicitly says this:
You NEED a 32-bit subsystem to run and build Box86. Box86 is useless on 64-bit only systems.
— Reply to this email directly, view it on GitHub https://github.com/ptitSeb/box64/issues/196#issuecomment-999168886, or unsubscribe https://github.com/notifications/unsubscribe-auth/AK6SASUEUM7VN3DMYROZD3TUSEGN5ANCNFSM5KKFPBGQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>
@artdeell Yeah, that's what I'm asking for, to avoid that. I want software support for ARM64, x86_64, and x86 (32-bit), but not ARMv7 (32-bit), because I will never use that aside from needing it for Box86.
You will need it still. Even if it's only for box86.
@jmeloranta Are you sure? The Box86 README explicitly says this:
You NEED a 32-bit subsystem to run and build Box86. Box86 is useless on 64-bit only systems.
Yes: cmake .. -DRPI4ARM64=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo
You will, of course, need armhf libraries.
32 Bit x86 on a pure 64 Bit host (without multiarch or a chroot) would definitely be nice to have, mainly for:
- Pretty much ALL non-Debian/Ubuntu distros, because almost none of them support multiarch for ARM (Arch/Manjaro, Fedora etc.)
- NVIDIA Tegra based devices such as the Jetson Nano or Nintendo Switch, since the proprietary graphics drivers are 64 bit only and the virglrenderer workaround has a huge performance impact
- Apple Silicon and other ARM64 CPUs that do not support ARMv7 / 32 Bit to begin with
- Other architectures such as PPC64LE and RISC-V 64 where multiarch definitely isn't a thing, not even on Debian to my knowledge
ptitseb already said that he might create a "box32" for that purpose eventually. This probably isn't a super high priority for now compared to getting box64 (and box86) to a more mature level, but I hope that this will be tackled at some point in the not too distant future.
Is there any update on that idea? Would be nice to get x86 wine working on something like Asahi Linux (Apple M1)!
In the meantime you can try FEX-Emu.
This will not be inside box64. That what box32, if it exist one day, would be.
Most ARM64 CPUs also support ARMv7 instruction set for vackwards compartibility.
Fewer and fewer.
Apple's A11 and later SoCs (2017 iPhone 8 and on) don't. Many server CPUs such as ThunderX don't. The ARM X2 and A510 cores in the latest Android phones (Snapdragon 8 Gen 1) don't -- the middle-size A710 cores in those phones do support A32/T32, but for how much longer?
I've just managed to compile box86 on archlinuxarm aarch64 but it seems I need to run it in 32bits environment. I've seen some managing to get box86 running on the same hardware (RK3588) using other debian based dist and enabling multiarch. Anyway I can do this in archlinuxarm. Is there a workaround like using 32bits chroot, docker env?
Any news on that box32 idea?