box64
box64 copied to clipboard
Error running Minecraft Launcher
Attempting to run the minecraft-launcher (available here https://www.minecraft.net/en-us/download/alternative) libgtk native library is available but there is an error
BOX64_LOG=2 box64 '/home/garrett/Downloads/minecraft-launcher/minecraft-launcher'
Debug level is 2
Box64 with Dynarec v0.1.3 56f6ad8 built on Jul 4 2021 14:09:22
Setting up canary (for Stack protector) at FS:0x28, value:721FE100
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 81 Env var
Looking for /home/garrett/Downloads/minecraft-launcher/minecraft-launcher
Read 31 Section header
Read 10 Program header
Loading Sections Table String (idx = 30)
Loading SymTab Strings (idx = 0)
Loading SymTab (idx = 0)
Loading Dynamic (idx = 24)
The DT_INIT is at address 0x406f60
The DT_FINI is at address 0x501ddc
The DT_INIT_ARRAY is at address 0x770c30
The DT_INIT_ARRAYSZ is 39
The DT_FINI_ARRAY is at address 0x770d68
The DT_FINI_ARRAYSZ is 1
The DT_VERNEED is at address 0x404f38
The DT_VERNEEDNUM is 7
RelA Table @0x405148 (0x378/0x18)
PLT Table @0x4054c0 (type=7 0x1aa0/0x18)
The GOT.PLT Table is at address 0x771000
The GOT Table is at address 0x770fe8..0x771000
The PLT Table is at address 0x406f80..0x408150
The .gnu.version is at address 0x404c9e
The .text is at address 0x408160, and is 1023097 big
Loading DynSym Strings (idx = 6)
Loading DynSym (idx = 5)
Adding "/home/garrett/Downloads/minecraft-launcher/minecraft-launcher" as #0 in elf collection
Elf Addr(v/p)=0x400000/0x400000 Memsize=0x377668 (align=0x200000)
Elf Stack Memsize=1048576 (align=16)
Elf TLS Memsize=64 (align=16)
Allocating 0x400000 memory @0x400000 for Elf "/home/garrett/Downloads/minecraft-launcher/minecraft-launcher"
Loading block #2 @0x400000 (0x1709bc/0x1709bc)
Loading block #3 @0x770c30 (0x19a0/0x6a38)
Loading TLS block #6 @0x64eee050 (0x0/0x40)
Calc stack size, based on 1 elf(s)
Stack is @0x7f964c0000 size=0x800000 align=0x10
Allocate a new X86_64 Emu, with EIP=(nil) and Stack=0x7f964c0000/0x800000
Setup X86_64 Emu
Prepending path "/home/garrett/Downloads/minecraft-launcher/" to BOX64_LD_LIBRARY_PATH
Trying to add "libdl.so.2" to maplib
Trying to load "libdl.so.2"
Simplified name is "libdl.so.2"
Using native(wrapped) libdl.so.2
Trying to add "libpthread.so.0" to maplib
Trying to load "libpthread.so.0"
Simplified name is "libpthread.so.0"
Using native(wrapped) libpthread.so.0
Trying to add "libgtk-3.so.0" to maplib
Trying to load "libgtk-3.so.0"
Simplified name is "libgtk-3.so.0"
Faillure to create lib => fail
Error loading needed lib libgtk-3.so.0
Error loading one of needed lib
Error: loading needed libs in elf /home/garrett/Downloads/minecraft-launcher/minecraft-launcher
Closing 2 libs from maplib 0x64edf090
Free libpthread.so.0
Free libdl.so.2
14807|Free a X86_64 Emu (0x64ee7240)
gtk (2 and 3) are not wrapped for now with box64. You need to use x86_64 version.
what is your suggested method for getting those libraries? add x86_64 as supported arch in apt and installing packages that include them?
Adding an arch in apt can bring qemu-user, which will interfear with box64. So not sure it's a good idea. If you have Steam installed, grabing the libs from "steam-runtime" works very well (but I'm not sure gtk3 is there). I don't really have easy solution.
I'll probably wrap gtk later, but I don't want to do that now, it's quite messy (many structures with callback, it's quite a hell to integrate with box86/box64).
Here is how I get x64 libs:
- search the library in pkgs.org (example search:
libgtk-3
for libgtk-3.so.0) - click on the amd64 deb, find the download link (for libgtk-3 it is http://ftp.br.debian.org/debian/pool/main/g/gtk+3.0/libgtk-3-0_3.24.24-4_amd64.deb)
- download it with
wget
orcurl
(using a browser doesn't work for me) - unpack the deb with
dpkg-deb -R <package.deb> <folder-to-unpack-to>
- the lib/libs will be in the
unpacked folder/usr/lib
Here is how I get x64 libs:
- search the library in pkgs.org (example search:
libgtk-3
for libgtk-3.so.0)- click on the amd64 deb, find the download link (for libgtk-3 it is http://ftp.br.debian.org/debian/pool/main/g/gtk+3.0/libgtk-3-0_3.24.24-4_amd64.deb)
- download it with
wget
orcurl
(using a browser doesn't work for me)- unpack the deb with
dpkg-deb -R <package.deb> <folder-to-unpack-to>
- the lib/libs will be in the
unpacked folder/usr/lib
thats very similar to what I just started doing.. except I was using ar xv
to extract the deb and then cp -a after untar the data file and manually copy over
after installing a lot of libraries using similar to itai-nelken's method I'm now stuck here:
box64 '/home/garrett/Downloads/minecraft-launcher/minecraft-launcher'
Box64 with Dynarec v0.1.3 56f6ad8 built on Jul 4 2021 14:09:22
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 81 Env var
Looking for /home/garrett/Downloads/minecraft-launcher/minecraft-launcher
Using native(wrapped) libdl.so.2
Using native(wrapped) libpthread.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libstdc++.so.6
Using native(wrapped) libm.so.6
Using emulated /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux-x86-64.so.2
Using native(wrapped) librt.so.1
Using emulated /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0
Using native(wrapped) libpangocairo-1.0.so.0
Using native(wrapped) libpango-1.0.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libffi.so.6
Using emulated /usr/lib/x86_64-linux-gnu/libpcre.so.3
Using native(wrapped) libX11.so.6
Using native(wrapped) libXi.so.6
Using native(wrapped) libXext.so.6
Using native(wrapped) libxcb.so.1
Using native(wrapped) libXau.so.6
Using native(wrapped) libXdmcp.so.6
Using native(wrapped) libXfixes.so.3
Using emulated /usr/lib/x86_64-linux-gnu/libcairo-gobject.so.2
Using native(wrapped) libcairo.so.2
Using emulated /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
Using native(wrapped) libatk-1.0.so.0
Using native(wrapped) libatk-bridge-2.0.so.0
Using native(wrapped) libSM.so.6
Using native(wrapped) libICE.so.6
Using emulated /usr/lib/x86_64-linux-gnu/libepoxy.so.0
Using native(wrapped) libpangoft2-1.0.so.0
Using native(wrapped) libfontconfig.so.1
Using native(wrapped) libfreetype.so.6
Using emulated /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
Using native(wrapped) libXinerama.so.1
Using native(wrapped) libXrandr.so.2
Using native(wrapped) libXrender.so.1
Using native(wrapped) libXcursor.so.1
Using native(wrapped) libXcomposite.so.1
Using native(wrapped) libXdamage.so.1
Using emulated /usr/lib/x86_64-linux-gnu/libxkbcommon.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libwayland-cursor.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libwayland-egl.so.1
Using emulated /usr/lib/x86_64-linux-gnu/libwayland-client.so.0
Using native(wrapped) libz.so.1
Using emulated /usr/lib/x86_64-linux-gnu/libselinux.so.1
Using native(wrapped) libresolv.so.2
Using emulated /usr/lib/x86_64-linux-gnu/libmount.so.1
Using emulated /usr/lib/x86_64-linux-gnu/libblkid.so.1
Using native(wrapped) libuuid.so.1
Error: Global Symbol cairo_region_destroy not found, cannot apply R_X86_64_GLOB_DAT @0x7f7a8e6f40 ((nil)) in /usr/lib/x86_64-linux-gnu/libcairo-gobject.so.2
Error: Global Symbol cairo_font_face_destroy not found, cannot apply R_X86_64_GLOB_DAT @0x7f7a8e6f78 ((nil)) in /usr/lib/x86_64-linux-gnu/libcairo-gobject.so.2
Error: Global Symbol cairo_scaled_font_reference not found, cannot apply R_X86_64_GLOB_DAT @0x7f7a8e6f80 ((nil)) in /usr/lib/x86_64-linux-gnu/libcairo-gobject.so.2
Error: Global Symbol cairo_scaled_font_destroy not found, cannot apply R_X86_64_GLOB_DAT @0x7f7a8e6f98 ((nil)) in /usr/lib/x86_64-linux-gnu/libcairo-gobject.so.2
Error: Global Symbol cairo_device_destroy not found, cannot apply R_X86_64_GLOB_DAT @0x7f7a8e6fb0 ((nil)) in /usr/lib/x86_64-linux-gnu/libcairo-gobject.so.2
Error: Global Symbol cairo_font_face_reference not found, cannot apply R_X86_64_GLOB_DAT @0x7f7a8e6fc0 ((nil)) in /usr/lib/x86_64-linux-gnu/libcairo-gobject.so.2
Error: Global Symbol cairo_region_reference not found, cannot apply R_X86_64_GLOB_DAT @0x7f7a8e6fd0 ((nil)) in /usr/lib/x86_64-linux-gnu/libcairo-gobject.so.2
Error: Global Symbol cairo_device_reference not found, cannot apply R_X86_64_GLOB_DAT @0x7f7a8e6fe0 ((nil)) in /usr/lib/x86_64-linux-gnu/libcairo-gobject.so.2
Error: Global Symbol atk_misc_instance not found, cannot apply R_X86_64_GLOB_DAT @0x7f7ce17df0 ((nil)) in /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
Error: Global Symbol cairo_region_destroy not found, cannot apply R_X86_64_GLOB_DAT @0x7f7ce17ea0 ((nil)) in /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
Using native(wrapped) libcurl.so.4
MessageBox(Minecraft Launcher): Unable to initialize the network library.
Stop waiting for remaining thread 32766
Aborted (core dumped)
Just an idea but could you try to use a prebuilt x64 Ubuntu and only retrieve the libs there ? In order to avoid manual placement and binfmt registering
@Azkali you are answering what question here?
@ptitSeb Gman's issue, and I am thinking that as a general idea it could be handy to provide a lib only folder fetched from a regular x86_64 distribution.
here is what I am theorycrafting.
I'd like to be able to actually add x86_64 as a supported architecture to my system through some sort of separate root directory hidden from the native system. The idea being that the main linux system would only have arm64 (and armhf if necessary) apt package support while the different root directly could be used for a separate apt package instance to install and manage the x86_64 packages. While we could add x86_64 to the main dpkg supported architectures, I think this might result in more problems that its worth (as indicated here https://github.com/ptitSeb/box64/issues/26#issuecomment-873664980)
The goal of this would be for users to install x86_64 packages simply through one command and be able to update them just like their native architecture packages through apt
You can add x86_64 as a multi arch. beware to NOT get qemu-user as a by-product as it will conflict.
Libs from /usr/lib/x86_64-linux-gnu
and /lib/x86_64-linux-gnu
will be automatically used by box64.
I assume that the same behavior is true for box86 ?
You can add x86_64 as a multi arch. beware to NOT get qemu-user as a by-product as it will conflict.
Libs from
/usr/lib/x86_64-linux-gnu
and/lib/x86_64-linux-gnu
will be automatically used by box64.
yes I know you can do this.. but debs don't just install files to /usr/lib/x86_64-linux-gnu.. .they can modify anything and thats my concern, a deb package modifying a shared folder that holds arm64 library files
take libgtk-3-0 package as an example: it installs files to /usr/lib/x86_64-linux-gnu/gtk-3.0 BUT also installs this file /etc/gtk-3.0/settings.ini which will either overwrite or conflict with the native arm64 gtk3 file. same goes for the docs /usr/share/doc/libgtk-3-0
maybe its not much of an issue and most of these files are the same between architectures BUT I don't think it has to be that way
with the Global Symbol cairo* now added, minecraft-launcher now crashes here:
Box64 with Dynarec v0.1.3 b39fbc0 built on Jul 10 2021 21:18:43
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 80 Env var
Looking for /home/garrett/Applications_x86_64/minecraft-launcher/minecraft-launcher
Using native(wrapped) libdl.so.2
Using native(wrapped) libpthread.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libstdc++.so.6
Using native(wrapped) libm.so.6
Using emulated /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux-x86-64.so.2
Using native(wrapped) librt.so.1
Using emulated /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0
Using native(wrapped) libpangocairo-1.0.so.0
Using native(wrapped) libpango-1.0.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libffi.so.6
Using native(wrapped) libpcre.so.3
Using native(wrapped) libX11.so.6
Using native(wrapped) libXi.so.6
Using native(wrapped) libXext.so.6
Using native(wrapped) libxcb.so.1
Using native(wrapped) libXau.so.6
Using native(wrapped) libXdmcp.so.6
Using native(wrapped) libXfixes.so.3
Using emulated /usr/lib/x86_64-linux-gnu/libcairo-gobject.so.2
Using native(wrapped) libcairo.so.2
Using emulated /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
Using native(wrapped) libatk-1.0.so.0
Using native(wrapped) libatk-bridge-2.0.so.0
Using native(wrapped) libSM.so.6
Using native(wrapped) libICE.so.6
Using emulated /usr/lib/x86_64-linux-gnu/libepoxy.so.0
Using native(wrapped) libpangoft2-1.0.so.0
Using native(wrapped) libfontconfig.so.1
Using native(wrapped) libfreetype.so.6
Using emulated /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
Using native(wrapped) libXinerama.so.1
Using native(wrapped) libXrandr.so.2
Using native(wrapped) libXrender.so.1
Using native(wrapped) libXcursor.so.1
Using native(wrapped) libXcomposite.so.1
Using native(wrapped) libXdamage.so.1
Using native(wrapped) libxkbcommon.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libwayland-cursor.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libwayland-egl.so.1
Using emulated /usr/lib/x86_64-linux-gnu/libwayland-client.so.0
Using native(wrapped) libz.so.1
Using emulated /usr/lib/x86_64-linux-gnu/libselinux.so.1
Using native(wrapped) libresolv.so.2
Using emulated /usr/lib/x86_64-linux-gnu/libmount.so.1
Using emulated /usr/lib/x86_64-linux-gnu/libblkid.so.1
Using native(wrapped) libuuid.so.1
Using native(wrapped) libcurl.so.4
MessageBox(Minecraft Launcher): Unable to initialize the network library.
Stop waiting for remaining thread 17493
Aborted (core dumped)
just wanted to update with the latest errors:
Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL PageSize:4096
Box64 with Dynarec v0.1.7 44a2034 built on Mar 23 2022 00:59:43
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 64 Env var
Looking for ./minecraft-launcher
Using native(wrapped) libdl.so.2
Using native(wrapped) libpthread.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
Using native(wrapped) libgobject-2.0.so.0
Using native(wrapped) libglib-2.0.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libstdc++.so.6
Using native(wrapped) libm.so.6
Using emulated /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux-x86-64.so.2
Using native(wrapped) librt.so.1
Using native(wrapped) libgmodule-2.0.so.0
Using native(wrapped) libpangocairo-1.0.so.0
Using native(wrapped) libpango-1.0.so.0
Using native(wrapped) libX11.so.6
Using native(wrapped) libXi.so.6
Using native(wrapped) libXext.so.6
Using native(wrapped) libxcb.so.1
Using native(wrapped) libXau.so.6
Using native(wrapped) libXdmcp.so.6
Using native(wrapped) libXfixes.so.3
Using emulated /usr/lib/x86_64-linux-gnu/libcairo-gobject.so.2
Using native(wrapped) libcairo.so.2
Using native(wrapped) libgdk_pixbuf-2.0.so.0
Using native(wrapped) libatk-1.0.so.0
Using native(wrapped) libatk-bridge-2.0.so.0
Using native(wrapped) libSM.so.6
Using native(wrapped) libICE.so.6
Using emulated /usr/lib/x86_64-linux-gnu/libepoxy.so.0
Using native(wrapped) libpangoft2-1.0.so.0
Using native(wrapped) libfontconfig.so.1
Using native(wrapped) libfreetype.so.6
Using native(wrapped) libgio-2.0.so.0
Using native(wrapped) libXinerama.so.1
Using native(wrapped) libXrandr.so.2
Using native(wrapped) libXrender.so.1
Using native(wrapped) libXcursor.so.1
Using native(wrapped) libXcomposite.so.1
Using native(wrapped) libXdamage.so.1
Using native(wrapped) libxkbcommon.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libwayland-cursor.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libwayland-egl.so.1
Using emulated /usr/lib/x86_64-linux-gnu/libwayland-client.so.0
Using emulated /usr/lib/x86_64-linux-gnu/libffi.so.6
Using native(wrapped) libcurl.so.4
https://launchermeta.mojang.com/v1/products/launcher/6f083b80d5e6fabbc4236f81d0d8f8a350c665a9/linux.json
Error: PltResolver: Symbol g_option_group_set_parse_hooks(ver 0: g_option_group_set_parse_hooks) not found, cannot apply R_X86_64_JUMP_SLOT 0x7f9e498468 (0x7f9dc20986) in /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
terminate called after throwing an instance of 'std::future_error'
what(): std::future_error: Promise already satisfied
Aborted (core dumped)
(btw this is just for fun, there are other better ways of running minecraft on arm64)