Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Elementum on Nvidia Shield arm_64 - Deamon error 13 (Log attached) #237

Closed
Triton20 opened this issue Aug 15, 2018 · 21 comments
Closed

Elementum on Nvidia Shield arm_64 - Deamon error 13 (Log attached) #237

Triton20 opened this issue Aug 15, 2018 · 21 comments

Comments

@Triton20
Copy link

Hi Elgatito, thanks for a fantastic fork of Quasar. I am trying to get the Elementum addon to work on my Nvidia Shield, version is the latest 0.0.60 Android arm_64. I seem to be having an issue with getting the Daemon to initiate after installing a new build on Kodi 17.6. After install confirmation pops up I then get an error pop up stating 'OSError: [Errno 13] Permission denied' . I have tried fresh re-install deleting all know files associated with Elementum but still no luck. I have attached my latest log file which hopefully shows the problem, so hopefully you can help me get it running. I remember having an issue with getting this to work with Quasar a while back and I fixed it somehow but can't quite remember how??

Many thanks
Andy

Please see Log link below

kodi.log

@elgatito
Copy link
Owner

Looks like you binary could not be started.

/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/userdata/files/plugin.video.elementum/bin/android_arm64/elementum

You can try to change permissions. Strange you get it.

@Triton20
Copy link
Author

Hi, strange? My kodi and addon data is on an external 2tb HDD but I have defo had it working with Quasar for a long time. I dud have trouble getting it to work initially but I think I downgraded and it just started working. How do I change permissions?

Thanks
Andy

@elgatito
Copy link
Owner

How do I change permissions?

Google will help you. That is OS specific .

@Triton20
Copy link
Author

So when you mean change permissions, do you mean on my external storage so that it will accept then binary file?

Andy

@elgatito
Copy link
Owner

Binary file can't be started, that is it.
I don't know if there are no permissions to execute or it's some limitations to run. You have to try on your own.

@Triton20
Copy link
Author

Ok i'll see what I can do and let you know how I get on, maybe can help someone else with the same issue.

Thanks
Andy

@Triton20
Copy link
Author

Tried all sorts elgatito but still can't get it to work, I know it can definitely work when situated on an external HDD because I've had Quasar working for ages before I recently updated from Kodi 17.2 to 17.6, it's just undone whatever combination I had which made it work which I thought was just the older version of Quasar...0.9.42 which I reported here a while ago

scakemyer#776

Out of ideas now, tried clearing caches, re-installing, deleting all traces of Elementum etc.. but just getting an error OS error 02 now??

Will have to source a different add-on that supports and connects with external storage better.

Thanks
Andy

@elgatito
Copy link
Owner

Do you understand it's not about using some kind of storage in plugin.
Your plugin can't start! Binary that is used for plugin could not be executed.

You have 2 paths:

  1. /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.video.elementum/resources/bin/android_arm64/
  2. /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/userdata/files/plugin.video.elementum/bin/android_arm64/

Binary from path 1 is copied to path 2 and then executed. You can try to delete path 2, can try running binary from path 1 and path 2 (inside of those directories "elementum" file).

@Triton20
Copy link
Author

Hi elgatito, thanks for breaking this down a bit, as you can appreciate I am no coder or developer like yourself and appreciate you putting it into lay-mans terms for me :D

As I am using this on the Nvidia shield what app/program would you advise to open the binary files with ? as it is just shown as a ? in ES file Explorer.

Andy

@elgatito
Copy link
Owner

Use any file browser (like ES file explorer) to get to that directory and try to run the binary.

@Triton20
Copy link
Author

Ok so I have deleted the 'elementum' binary file from this path >

/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/userdata/files/plugin.video.elementum/bin/android_arm64/

Restarted Kodi (which took absolutely ages to load for some strange reason!) and I am still getting the 'Deamon error 13 Permission Denied'

Before i move onto the next step of executing the 'elementum' bin file or files, do I have to rename them to .bin or .apk to run/install them?

Andy

@elgatito
Copy link
Owner

Binary is not apk, it's a binary. You don't have to rename anything.
Here is the link: https://forum.kodi.tv/showthread.php?tid=306263
I guess its' the same issue that binaries can't be run from /storage/emulated/0.
We do try to find the /storage/emulated/legacy path on the device, but it does not help everyone.

Please, try to look over, if this path exists on your device: /data/user/0/org.xbmc.kodi/cache/apk/assets/addons/ , if not, try to find the nearest directory that exists.

@Triton20
Copy link
Author

Yes it looks like that is probably the issue as my Shield TV is not rooted it is not allowing permission to run the bin file.

I transfered my internal memory over onto my external HDD when I first got my Shield as it was the 16gb version and thought doing this onto a 2tb external HDD would save me running out of space.

I do not have the directory -

/data/user/0/org.xbmc.kodi/cache/apk/assets/addons/

My local directorys are Home, Device (which is completely empty as I migrated everything over to Internal storage (external HDD), Download and Internal Storage.

@Triton20
Copy link
Author

So it's because everything is being accessed from local storage instead of device, the strangest thing is that I have had it working before somehow!? 😅

@elgatito
Copy link
Owner

plugin.video.elementum-0.0.61.android_arm64.zip

Please, install from this zip, restart Kodi and paste the log file.
It is now in Elementum settings -> Advanced -> Logging -> Upload /debug/bundle to pastebin

@Triton20
Copy link
Author

Morning elgatito, whatever was in that zip file did the trick! Elementum Daemon has started now 👍 I have uploaded the log via elementum settings.

Thanks for your time in getting this to work, it is very much appreciated.

My old Quasar addon is still throwing out a cannot connect to Daemon error I assume it would be the same issue in the code?

Many thanks again elgatito! 😆

Andy

@elgatito
Copy link
Owner

Great news.
I will include that fix in the next version, so everybody would have it.

My old Quasar addon is still throwing out a cannot connect to Daemon error I assume it would be the same issue in the code?

Yes

@Triton20
Copy link
Author

Do you mind me asking how it was fixed? might help me understand coding a little bit better :)

@elgatito
Copy link
Owner

diff --git a/resources/site-packages/elementum/daemon.py b/resources/site-packages/elementum/daemon.py
index 717cb41..a073c01 100644
--- a/resources/site-packages/elementum/daemon.py
+++ b/resources/site-packages/elementum/daemon.py
@@ -57,9 +57,14 @@ def get_elementum_binary():
         binary_dir_legacy = binary_dir.replace("/storage/emulated/0", "/storage/emulated/legacy")
         if os.path.exists(binary_dir_legacy):
             binary_dir = binary_dir_legacy
-        log.info("Using changed binary folder for Android: %s" % binary_dir)
+            log.info("Using changed binary folder for Android: %s" % binary_dir)
+
         app_id = android_get_current_appid()
         xbmc_data_path = os.path.join("/data", "data", app_id)
+        if not os.path.exists(xbmc_data_path):
+            log.info("%s path does not exist, so using %s as xbmc_data_path" % (xbmc_data_path, xbmc.translatePath("special://xbmcbin/")))
+            xbmc_data_path = xbmc.translatePath("special://xbmcbin/")
+
         if not os.path.exists(xbmc_data_path):
             log.info("%s path does not exist, so using %s as xbmc_data_path" % (xbmc_data_path, xbmc.translatePath("special://masterprofile/")))
             xbmc_data_path = xbmc.translatePath("special://masterprofile/")

@usamartinez
Copy link

I have the same exact issue, Nvidia Shield Pro, elementum is asking me for a binarydiary, I have tried all the Android 0.61 builds.

@elgatito
Copy link
Owner

@usamartinez please, try 0.0.62.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants