ZhymabekRoman / Exagear-For-Termux

Non official modified version of Exagear for Termux and proot based environemnts - Anlinux, AndroNix, UserLand and etc. No root access required
GNU General Public License v2.0
175 stars 15 forks source link

Not support x86_64? #19

Closed HowcanoeWang closed 1 year ago

HowcanoeWang commented 1 year ago

Tried downloading and unzipping both termux/proot-distro/releases/download/v2.2.0/debian-i686-pd-v2.2.0.tar.xz and termux/proot-distro/releases/download/v3.0.1/ubuntu-x86_64-pd-v3.0.1.tar.xz, and execute the ./start-exagear.sh. Will get the following error: execve() is guaranteed to fail with -8 ...

But it works well on the i686 Debian (32bit only?).

Will it be possible to install the 64bit Debian? It would be perfect to use the 8GB RAM on my tablets.

ZhymabekRoman commented 1 year ago

Thanks for your interest Exagear-For-Termux!

Unfortunately, support for x86_64 emulation is not expected, although it is supported by the new version of Exagear from Huawei. In a nutshell it is too tied to root rights, i.e. some emulation operations require full root access, which is not possible to emulate using proot and fakeroot.

Will get the following error: execve() is guaranteed to fail with -8 ...

Can you give full output of command termux-info?

HowcanoeWang commented 1 year ago

Here is the full log:

~/ExaGear $ ./start-exagear.sh login --old --shared-tmp
    ░█░█░█▀█░█▀▄░█▀█
    ░░▀█░█▀▀░█░█░█▀█
    ░░░▀░▀░░░▀▀░░▀░▀
ExaGear for Termux by Zhymabek_Roman
Version: 2.4
Copyright (c) 2013-2019 'Elbrus Technologies' LLC. All rights reserved.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

System memory configuration is determined as 3g

Writing resolv.conf file (NS 8.8.8.8/8.8.4.4)...

Folder 'storage' in guest system not found. Creating....

Folder 'dev' in guest system not found. Creating....

Your environment is defined as Termux (executed with --old flag)

[Starting x86 environment]

lkv_LoadApp: execve() is guaranteed to fail with -8 (ENOEXEC (Exec format error)) for /usr/bin/env.
ZhymabekRoman commented 1 year ago

It looks like you downloaded a non x86 system image into the exagear-fs folder. Once again, run the command termux-info and:

pkg install file -y
file /usr/bin/env

And send me all outputs

HowcanoeWang commented 1 year ago

Here is the full log:

~ $ cd ExaGear/

~/ExaGear $ ls
README.md  bin  debian-x86_64-pd-v2.2.0.tar.xz  exagear-fs  start-exagear.sh

~/ExaGear $ termux-info
Termux Variables:
TERMUX_APK_RELEASE=GITHUB
TERMUX_APP_PACKAGE_MANAGER=apt
TERMUX_APP_PID=19690
TERMUX_IS_DEBUGGABLE_BUILD=1
TERMUX_MAIN_PACKAGE_FORMAT=debian
TERMUX_VERSION=0.118.0
Packages CPU architecture:
aarch64
Subscribed repositories:
# sources.list
deb https://packages.termux.dev/apt/termux-main stable main
Updatable packages:
termux-tools/stable 1.31.0 all [upgradable from: 1.30.2]
termux-tools version:
1.30.2
Android version:
12
Kernel build information:
Linux localhost 5.10.81-android12-9-24790453-abX800OPU2AVI1 #1 SMP PREEMPT Mon Sep 5 11:41:14 UTC 2022 aarch64 Android
Device manufacturer:
samsung
Device model:
SM-X800

~/ExaGear $ pkg install file -y
No mirror or mirror group selected. You might want to select one by running 'termux-change-repo'
Checking availability of current mirror:
[*] https://packages.termux.dev/apt/termux-main: ok
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  file
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 349 kB of archives.
After this operation, 8217 kB of additional disk space will be used.
Get:1 https://packages.termux.dev/apt/termux-main stable/main aarch64 file aarch64 5.43 [349 kB]
Fetched 349 kB in 1s (250 kB/s)
Selecting previously unselected package file.
(Reading database ... 7609 files and directories currently installed.)
Preparing to unpack .../archives/file_5.43_aarch64.deb ...
Unpacking file (5.43) ...
Setting up file (5.43) ...

~/ExaGear $ file exagear-fs/usr/bin/env
exagear-fs/usr/bin/env: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=843786e92bed97c34073697c3fefd11d6af3c96f, for GNU/Linux 3.2.0, stripped
HowcanoeWang commented 1 year ago

Tried downloading and unzipping both termux/proot-distro/releases/download/v2.2.0/debian-i686-pd-v2.2.0.tar.xz and termux/proot-distro/releases/download/v3.0.1/ubuntu-x86_64-pd-v3.0.1.tar.xz, and execute the ./start-exagear.sh. Will get the following error: execve() is guaranteed to fail with -8 ...

But it works well on the i686 Debian (32bit only?).

Will it be possible to install the 64bit Debian? It would be perfect to use the 8GB RAM on my tablets.

Sorry, termux/proot-distro/releases/download/v2.2.0/debian-i686-pd-v2.2.0.tar.xz should be termux/proot-distro/releases/download/v2.2.0/debian-x86_64-pd-v2.2.0.tar.xz in this sentence.

it works well on the i686 Debian (32bit only?) -> termux/proot-distro/releases/download/v2.2.0/debian-i686-pd-v2.2.0.tar.xz works well.

ZhymabekRoman commented 1 year ago

You unpacked the x86_64 image into the exagear-fs folder, so the emulator refuses to start the system. Use only x86 rootfs images.