Hardware acceleration on Kodi 19

Hi there. I hope this is the right place to post my doubts.

I have a RockPro64 that I want to use as both a small server and a Kodi box (no need of graphical environment). I’ve been using LibreELEC for a while but the thing is I’d like to manage a ‘real’ server instead of having to use docker containers to every service and application I need.

Yesterday I installed and tested Manjaro’s RockPro64 Minimal 21.02, which I found extremely fast and light. I installed Kodi 19 (the Matrix version, kodi-gbm) and although it’s working nicely I noticed that it apparently doesn’t have hardware acceleration. Is there anything more I’m supposed to install, or maybe any further configuration I must do in order to make acceleration work or isn’t this Kodi compilation optmized to the RP64? In that case is there maybe any alternative version I may use? I noticed for example that the aur has a couple of git versions. I also noticed that there’s a couple of missing add-ons and repositories (the ones that on other Kodi instalations generally appears as ‘disabled’ and that all the user has to do is enable them to use).

Another point is that I’d like to automatically start Kodi at boot time (and running as my user). The installed pkg doesn’t seem to have any systemd compliant init file and I don’t really know how to create them. Could any more experienced user point me in the right direction or maybe suggest me a working file I could use?

A appreciate any help.

Hello and welcome to the forum,

No it needs a ffmpeg with v4l2_request patch which I have been trying but couldn’t get much of a success.

I might give it another try but kwibo is not working it though and the source have not been updated since some time now.

I am not a kodi expert regarding auto start on boot. I just pkg it for arm so users can use it with. Sw acc for now.

Maybe @darksky can help you with kodi autostart on boot.

1 Like

I know how to write SystemD services but I don’t run kodi, so if you give me:

  • the output to id for the user you want to run it under
  • the fully qualified path name to the executable
  • optionally its dependencies (Video / audio, anything else?)

i can write that for you.

:+1:

So I imagine that you’re the developer responsible for the Kodi Arm packages? If so thank you very much for your effort! Much appreciated.

As for the hardware acceleration, that’s ok. It’s nice to know that it’ll be available eventually.

Would you consider to build the Kodi packages with support to MediaImport? If I understood it right it’s part of Kodi Matrix (although its repository is apparently disabled by default) and it has a very ellegant way of importing items to the Kodi media database from multiple simoutaneous sources as Emby/Jellyfin, Plex (and probably others in the future), which is essential to someone who has multiple share sources and want all of them to feel ‘native’ to Kodi.

Again, thanks for taking the time!

1 Like

The user id is 1000.
I believe what you mean is: /usr/lib/kodi-gbm
Not sure about these, but if you’re so kind as to create a file with the minimal basic ones I may use it as a basis and adapt to my real needs.

Thank you for taking interest in my problem.

I need the full output to id to make it easier for you if you don’t know anything about SystemD services.

:sob:

I found a systemd file that I believe will work to what I need. It seems to work nicely at boot time, and I also tried to restart and it seemed to have worked ok.

[Unit]
Description=Kodi Standalone (GBM) self-compiled
After=systemd-user-sessions.service network.target network-online.target sound.target upower.service mysqld.service
Requires=graphical.target
Wants=network.target network-online.target
Conflicts=getty@tty1.service

[Service]
User=alsc
Group=alsc
PAMName=login
TTYPath=/dev/tty1
Environment=WINDOWING=gbm
ExecStart=/usr/local/lib/kodi/kodi-gbm
Restart=on-abort
StandardInput=tty

[Install]
WantedBy=graphical.target
1 Like

Perfect! you found your own solution! Therefore, I’ve marked this answer as the solution to your question as it is by far the best answer you’ll get.

However, if you disagree with my choice, please feel free to take any other answer as the solution to your question or even remove the solution altogether: You are in control! (If you disagree with my choice, just send me a personal message and explain why I shouldn’t have done this or :heart: or :+1: if you agree)

:innocent:
P.S. In the future, please don’t forget to come back and click the 3 dots below the answer to mark a solution like this below the answer that helped you most:
Solution
so that the next person that has the exact same problem you just had will benefit from your post as well as your question will now be in the “solved” status.

1 Like

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.