i96751414 / plugin.video.torrest

Torrest plugin for Kodi
MIT License
27 stars 6 forks source link

LibreELEC 10: machine type wrongly managed by Torrest #16

Closed lopezvg closed 3 years ago

lopezvg commented 3 years ago

With the LibreELEC version 10 oficial, platform.machine() is reporting Arm64 processors a aarch64, even if the OS is 32 bit. The result is that both the Torrest installer and Deamon choose a wrong binary version: linux_x86:

CRITICAL:root:Resolving platform - system=linux, version=5.10.52, arch=x86, machine=aarch64

If have temporary patched for Alfa users the Torrest "os_platform.py" module as follows (lines 52-54): if "armv7" in machine or ('aarch' in machine and arch == Arch.x86): arch = Arch.armv7 elif "arm" in machine or 'aarch' in machine:

While this solves the problems por existing users, those who make a clean installation will get the linux_x86 binary, so this patch will not help.

lopezvg commented 3 years ago

Same problem happens on CoreELEC (official): 19.2-Matrix_rc3 aarch64 32-bit

i96751414 commented 3 years ago

Hi. Thank you for reporting. I didn't quite understand. A 32bit OS shouldn't always report 32 bits?

lopezvg commented 3 years ago

Most of the modern ARM processor are 64-bits and are named aarch64. However, some of the OS (TV-box Androids, CoreELEC, LibreELEC, ...) installed on those processors are 32-bits. For the purpose of selecting the correct binary you should select linux_armv7, however you are selecting llinux_x86, both on Torrest and on the Repo por Torrest installation.

In CoreELEC and LibreELEC you are receiving for "platform.machine()" the following response:

I personally find machine=aarch64 more correct for 64-bits processor, even if the OS is 32-bits.

In summary, previously with machine=armv7l + arch=x86 you were selecting the binary linux_armv7 (right). Now, with machine=aarch64+ arch=x86 you are selecting the binary linux_x86 (wrong).

As I've said, I've patched temporally for Alfa-Torrest users your module os_platform.py (lines 52-54):

if "armv7" in machine or ('aarch' in machine and arch == Arch.x86): 
    arch = Arch.armv7 
elif "arm" in machine or 'aarch' in machine:

I have not looked to the repo side, but it is obvious it has the same problem

Please, supply rapidly a fix for both Tottrest and the repo, since all users moving to the latest CoreELEC and LibreELEC are facing this problem

i96751414 commented 3 years ago

Oh I see. Thanks for the explanation. I will try to provide a permanent fix soon.

i96751414 commented 3 years ago

Hi. Can you please test the commit 86d733c?

lopezvg commented 3 years ago

Tested on LibreELEC 10 and it works

lopezvg commented 2 years ago

This problem is still causing many wrong installations for new users. Please realease full repository and addon versions. Thanks

i96751414 commented 2 years ago

Will do. Cheers.