Open mio-19 opened 4 months ago
I want to see this actually working! Since ArchARM lacks lib32 repository, WoW64 will be probably the easiest way to get 32bit Windows applications running on it. (Unless WineHQ officially releases WoW64 enabled packages)
This might be a dumb experiment, but here's what I tried today to make WoW64 work: (This is NOT an attempt to install and/or run the wine package of x86_64 Arch Linux or any variant of it)
With the wine64
binary from the Debian package, when I try to run a Win32 executable, I realized Wine says it will try the experimental WoW64 mode, and then fails to load C:\windows\syswow64\ntdll.dll
. Indeed, C:\windows\syswow64
folder is empty in this case.
Whereas, when I deleted wine
binary on my desktop Arch Linux and tried to run a Win32 executable with wine64
binary, it was failing because it couldn't find the deleted binary.
Maybe the Debian package is actually able to do WoW64 but just does not create WoW64 support inside the wineprefixes?
So, I installed wine-wow64
on my desktop, installed the same version (9.6) of Debian Wine on the ARM64 system, and then copied over the folder C:\windows\syswow64
under the wineprefix. However, the recipient Wine system was still failing to find C:\windows\syswow64\ntdll.dll
.
I thought maybe other components inside the wineprefix could not handle the WoW64 part, so throwing in more DLLs might solve the problem. I considered copying over the system32 folder, then, went fsck it, to decide to copy over whole windows folder. So, I created a new wineprefix, deleted the windows folder, copied one over from the desktop.
That didn't solve the problem though. It seems like the components inside the wineprefix are not able to communicate with the wineserver or something, and Wine eventually fails with a message saying it couldn't run explorer. I guess there are some sort of mismatch because of all the critical DLLs being replaced. From this point, without proper knowledge of which DLLs are such critical ones, I wasn't able to proceed anymore.
OH SH!T IT WORKS?!
In addition to the syswow64
folder copied as mentioned above, I have copied over /usr/lib/wine/i386-windows
library folder. Since I have Wine installed in ~/.local/opt/wine-devel9.6
, I pasted it in ~/.local/opt/wine-devel9.6/lib64/wine/
.
EDIT: The i386-windows
folder seems to be available with the 32bit version of the Wine package. That is, it might be possible to set up WoW64 entirely with the WineHQ Debian packages, without having to have an installation of wine-wow64
or wine-staging-wow64
on your x64 machine.
That's great! There is some issue preventing any wine varient built by archhlinux toolchain to work.
It might be possible to build a wow64 version on debian and use it without hacking wine64 into wine-wow64
Wine with new WOW64 works fine with box64. You can find build in pi-apps or in Kron4ek CI.
Using a too modern glibc / or some option for to modern cpu might cause issue tho. I don't have acces to the arch built version of Wine, so cannot debug the issue on my side.
FWIW, Arch Linux's wine package can be downloaded here in the top right corner. The link is named "Download From Mirror"
I built the package from AUR on Archlinux x86_64 and installed on Archlinux arm aarch64 chroot on Android. https://aur.archlinux.org/packages/wine-staging-wow64?all_deps=1#pkgdeps