box64 icon indicating copy to clipboard operation
box64 copied to clipboard

Add support for 32-bit x86 apps on 64-bit only systems

Open aaronfranke opened this issue 4 years ago • 11 comments

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.

aaronfranke avatar Dec 18 '21 03:12 aaronfranke

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 avatar Dec 21 '21 20:12 jmeloranta

@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.

aaronfranke avatar Dec 21 '21 23:12 aaronfranke

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 avatar Dec 22 '21 03:12 artdeell

@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.

aaronfranke avatar Dec 22 '21 05:12 aaronfranke

You will need it still. Even if it's only for box86.

artdeell avatar Dec 22 '21 05:12 artdeell

@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.

jmeloranta avatar Dec 22 '21 20:12 jmeloranta

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.

Firlaev-Hans avatar Dec 27 '21 15:12 Firlaev-Hans

Is there any update on that idea? Would be nice to get x86 wine working on something like Asahi Linux (Apple M1)!

DarkShadow44 avatar Apr 18 '22 18:04 DarkShadow44

In the meantime you can try FEX-Emu.

Trass3r avatar Apr 18 '22 18:04 Trass3r

This will not be inside box64. That what box32, if it exist one day, would be.

ptitSeb avatar Apr 18 '22 18:04 ptitSeb

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?

brucehoult avatar Jun 02 '22 00:06 brucehoult

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?

emonget avatar Jan 29 '23 16:01 emonget

Any news on that box32 idea?

DarkShadow44 avatar Jun 04 '23 19:06 DarkShadow44