1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
Box64 segfaults with Arch Linux Wine package, while it does run Debian Wine package
Setup:
- Acer Chromebook Spin 513, CP513-1H-S60F (with Snapdragon 7c SoC)
- Crostini
- Arch Linux ARM
- [box64-git from AUR](https://aur.archlinux.org/packages/box64-git)
Referring to the [manual](https://github.com/ptitSeb/box64/blob/main/docs/X64WINE.md), I have managed to run `wine64` on this system, by manually extracting the contents of the two needed packages into a folder. It was working well in a random folder under the home folder, and also after moving the folder under `~/.local/opt`.
The kernel provided by ChromeOS seems to disallow binfmt, so the experience is not 100% seamless, but it is still manageable. I think mixing 32-bit Wine in is nearly impossible, but for 64-bit applications, I could first run x64 Bash with Box64, and then run whatever application I want with `wine64`. So it goes something like this:
```
$ box64 bash_x64
# box64 is at /usr/sbin/box64, bash_x64 is at ~/.local/bin/bash_x64 (which is from tests/bash of this repo)
$ uname -m
x86_64 # Now we know we've activated Box64
$ wine64 ~/path/to/win64/app.exe
# wine64 is at ~/.local/opt/wine9.5_devel_deb/bin/wine64, symlinked to ~/.local/bin/wine64
```
Now, I found it tedious to locate the .deb packages, download, extract, and move the folder, every time Wine updates. So, for the next step, I tried to use the official Arch package. However, regardless of where I install the package, it would always end up giving a segmentation fault. I tried extracting the package under the home folder, and then I also tried installing it system-wide using `pacman`. It always gives this output:
```
$ wine64
Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS SHA1 SHA2 PageSize:4096 Running on Kryo-4XX-Silver Kryo-4XX-Gold with 8 Cores
Will use Hardware counter measured at 19.2 MHz emulating 614 MHz
Params database has 61 entries
Box64 with Dynarec v0.2.7 68d710cd built on Mar 30 2024 05:45:30
BOX64: Wine64 detected, WINEPRELOADRESERVE=""
BOX64: Didn't detect 48bits of address space, considering it's 39bits
Counted 49 Env var
BOX64 LIB PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/:/lib/x86_64-linux-gnu/:/usr/lib/x86_64-linux-gnu/
BOX64 BIN PATH: ./:bin/:/home/username/.local/bin/:/home/username/.local/bin/:/home/username/.nix-profile/bin/:/nix/var/nix/profiles/default/bin/:/usr/local/sbin/:/usr/local/bin/:/usr/local/games/:/usr/sbin/:/usr/bin/:/usr/games/:/sbin/:/bin/:/usr/lib/jvm/default/bin/:/usr/bin/site_perl/:/usr/bin/vendor_perl/:/usr/bin/core_perl/:/usr/lib/rustup/bin/
Looking for /usr/sbin/wine64
Apply RC params for wine64
Applying BOX64_MAXCPU=64
Rename process to "wine64"
Using native(wrapped) libdl.so.2
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux-x86-64.so.2
Using native(wrapped) libpthread.so.0
Using native(wrapped) libutil.so.1
Using native(wrapped) libresolv.so.2
Using native(wrapped) librt.so.1
Using native(wrapped) libbsd.so.0
FillBlock triggered a segfault at 0x1350 from 0x3504aa14
FillBlock at 0x1350 triggered a segfault, canceling
12364|SIGSEGV @0x35008778 (???(/usr/sbin/wine64+0x808778)) (x64pc=0x1350/???:"???", rsp=0x7f88a0f5a8, stack=0x7f88210000:0x7f88a10000 own=(nil) fp=0x7f88a0f5b0), for accessing 0x1350 (code=1/prot=87), db=(nil)((nil):(nil)/(nil):(nil)/???:clean, hash:0/0) handler=(nil)
RSP-0x20:0x0000000000000000 RSP-0x18:0x0000000000000000 RSP-0x10:0x0000000000000000 RSP-0x08:0x0000000000000000
RSP+0x00:0x0000000000010080 RSP+0x08:0x0000000000000000 RSP+0x10:0x0000000100001285 RSP+0x18:0x0000007f88a0f5c8
RAX:0x0000000000000000 RCX:0x0000000000000000 RDX:0x0000007f88a0f5e0 RBX:0x0000000000000000
RSP:0x0000007f88a0f5a8 RBP:0x0000007f88a0f5b0 RSI:0x0000007f88a0f5d0 RDI:0x0000000000000001
R8:0x0000000000000000 R9:0x0000000000010080 R10:0x0000000000000000 R11:0x0000000000000000
R12:0x0000000000000000 R13:0x0000000000000000 R14:0x0000000000000000 R15:0x0000000000000000
ES:0x002b CS:0x0033 SS:0x002b DS:0x002b FS:0x0043 GS:0x0053
Segmentation fault (core dumped)
```
When installing wine via pacman, I could confirm I have all the dependencies except for lib32 ones and optional ones.
Thanks for reading. (and also for the cool project)
|