plugin.video.quasar
plugin.video.quasar copied to clipboard
Good ol' binary not found on Raspberry Pi3 armv7
When starting Kodi, the Quasar plugin crashes by saying "Unable to find quasar binary". Now this sort of thing has been reported before, and people seem to solve this issue by just installing the right version of Quasar.
So for my example case of Raspberry Pi 3
that would be linux_armv7 package
. Easy. Problem is even after deleting every quasar related plugin and reinstalling the armv7 package, I still got the same error when booting.
Did some poking around and I found a couple of things:
- The binary
.kodi/addons/plugin.video.quasar/resources/bin/linux_armv7/quasar
was in it's right place as expected - The quasar logs in kodi were referring to the host system as
arm
and therefore they were looking forlinux_arm
binaries, Whereas I would expect "linux_armv7"
So after digging around between the issues opened on the repo I came across this one #331 which seem to be dealing with a similar problem. In the commits on the issue I saw that support for armv7
was added, so all should work. I tried a uname -a
and this is what I got:
4.9.29-13-osmc #1 SMP PREEMPT Thu Dec 21 17:18:07 UTC 2017 armv7l GNU/Linux
Wtf is armv7l
? Surely enough the python script also returned armv7l
which threw off this, which was expecting armv7
.
Now I understand that l is some kind of flag, so armv7
is still applicable. Once I added ret["arch"] = "armv7"
before the function return in .kodi/addons/plugin.video.quasar/resources/site-packages/quasar/osarch.py
everything started working again!
I guess some tweak is needed in osarch.py so that armv7l
(or armv7 followed by any other flag for that matter) would also map to armv7
This happened using:
plugin.video.quasar-0.9.78.linux_armv7
Kodi 17.6 running on OSMC (4.9.29-13-osmc
)
HW: Raspberry Pi 3
Having the exact same issue with the same HW and SW. Your quick fix helped!
Exactly the same problem for me with exactly the same configuration.
The same happened to me.
I installed the linux_arm
release and it's working, at least for now.
Exactly same here. Fix worked.
Nice catch, thank you. Just in case somebody does not understand. The change works on line 31 of the file.
^^ not really. To be sure, one should put it right before return, because it might be overwritten by following statements/or not even hit if put before. Example here osarch.py. To keep correct indent of the statement is important (4 spaces).
Mmmm this works for me too, but now I have another issue and I open a thread here https://github.com/scakemyer/plugin.video.quasar/issues/920
Is anyone of you guys also having that problem?
Thanks guys, worked for me. As always after a Osmc update, something stops working... frustrating.....
Interestingly platform.machine() returns different values when run inside Kodi and different when run for python 2.7:
In Kodi 17.6, when debugging Quasar script:
osmc@osmc:~$ telnet localhost 4444
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
> /home/osmc/.kodi/addons/plugin.video.quasar/resources/site-packages/quasar/osarch.py(7)get_platform()
-> build = xbmc.getInfoLabel("System.BuildVersion")
(Pdb) platform.machine()
'arm'
(Pdb) print(platform.python_version())
2.7.13
(Pdb) print platform.__file__
/usr/lib/python2.7/platform.py
Directly from python 2.7:
osmc@osmc:~$ python2.7
Python 2.7.13 (default, Nov 24 2017, 17:33:09)
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform
>>> platform.machine()
'armv7l'
>>> print(platform.python_version())
2.7.13
>>> print platform.__file__
/usr/lib/python2.7/platform.pyc
There's a difference in the __file__
value returned and the machine() output.
Any ideas?
It seems this is not Quasar fault, but rather the OS?
EDIT:
I debugged further and the difference starts in the os.uname() call. In kodi addon it returns arm
, in python it returns armv7l
. No idea why.
@GoodMorgenFreeman @maciex Thanks for sharing this info. I checked further, Look like issue with OS. In unix forum it is suggested that if you run this on 64 bit processor it will give armv8
https://unix.stackexchange.com/questions/136407/is-my-linux-arm-32-or-64-bit?answertab=votes#tab-top