HOW-TO talk:Install Kodi on Fedora 26 using RPMFusion packages

From Official Kodi Wiki
Jump to: navigation, search

To Klojum (talk) - Thank you very much for the "kodi.service" changes re: gettys and plymouth. I did some testing with these changes, and with them I noticed I no longer get a tty login prompt when I do a "systemctl stop kodi". So for now I'm undo'ing your changes, but I will continue to look into this until I figure out what's wrong with the login prompt. Once I've sorted that out I will reinstate your changes accordingly. Thanks again for your contribution!

Wirerydr (talk) 12:30, 6 December 2016 (EST)

1 Guide rewrite

I am going to be revising a few sections soon.

  1. Firewall: You can leave it enabled and just open the following ports: TCP: 1151, 8080, and UDP: 1900, 9777
  2. Pulseaudio: Kodi is fully functional with pulseaudio installed and enabled.
  3. Systemd service: If you have GDM installed (and autologin enabled) you do not need any of the service script or other changes so it makes this guide much more simple. As the old saying goes: Keep It Simple Stupid.
Mooninite (talk) 09:05, 8 April 2015 (EDT)

  1. Thanks for the firewall-related tips. I believe the port-list that should be opened will depend on individual circumstances. For example on my standalone setup the kodi.bin process is listening on ports TCP (8080, 1147) and UDP (9777, 1900). Were I to utilize miniDLNA I would have to add TCP port 8200. Airplay can potentially require TCP (80, 443, 554, 3689, 5297, 5289) and UDP (554, 5289, 5353). Given that this is a standalone environment and making custom adjustments to the firewall as services are enabled/disabled is an advanced topic, it seems much simpler to leave the firewall disabled - with the caveats already mentioned in the wiki.
  2. Pulseaudio still has some deficiencies, such has lacking support for TrueHD or DTS-MA, preventing use of Dolby Pro Logic II, etc. Refer to PulseAudio for some further explanation. Actually, the only real advantage Pulseaudio offers is non-exclusive use of the audio subsystem, in cases where you'd like (for example) desktop sounds or other apps to co-exist with Kodi. Since this guide is strongly focused on creating a standalone Kodi environment, Pulseaudio makes little sense to utilize. Given its deficiencies and lack of countervailing advantages, there's no reason to utilize PulseAudio.
  3. Why would you want GDM to be installed? It's just an unnecessary layer of functionality that introduces complexity but offers little/no benefit. At the very least you'd then have to set up GDM-based auto-login, which is not only extra complexity but a potential security risk. The spirit of this guide is to create a standalone, lightweight installation of Kodi with minimal additional requirements. You are exactly right re: KISS, and introducing a dependency on an unnecessary software layer would seem to contravene this.

You made some earlier edits that removed the section on disabling SELinux. Kodi may have evolved to the point where it can properly function in an SELinux-Enforcing environment, but it used to have issues. I will test in an enforcing environment and update the wiki accordingly. However until I've tested it I will revert your changes to restore the SELinux section.

Thanks again for the tips!

Wirerydr (talk) 12:03, 24 April 2015 (EDT)

Hope you don't mind that I added a section for CEC, it was a feature I needed and I thought it may be useful until libcec>=3.0.0 is put into the fedora repos and the rpm in rpmfusion is rebuilt.

Slashnull (talk) 13:46, 15 January 2016 (EDT)

Don't mind at all Slashnull - TYVM for the contribution, and also for maintaining the existing look-and-feel. I may reorder things a bit to avoid CEC users from doing a double install of the generic and then CEC-enabled RPMs, but that's trivial.

Cheers... Wirerydr (talk) 00:20, 18 January 2016 (EST)

Hi Spazticclown - thanks for the video-group contribution. In my experience this is not actually necessary in order to run Kodi as described in this HowTo - not on any version of Fedora from F19 through to the current F23, anyway. I believe as long as the user is in group 'wheel' (which it is as a result of step 3.3), that is sufficient. Just to be sure I took a look at my main kodi box running in my livingroom, and confirmed that user Kodi is not present in group 'video' (gid 39). As such I have reverted back to before your change, but I did want to thank you again for your contribution.

Cheers... Wirerydr (talk) 23:51, 7 February 2016 (EST)

It seems to me that there are two different objectives, here. As you say, this is guide, at the moment, is about setting up a minimal dedicated Kodi machine. However, some people are going to want a machine that can also be used as a more-or-less vanilla Fedora Workstation. In this situation, you’d likely want to keep firewalld, PulseAudio and GDM, and I think it’s worth mentioning this in the guide if possible. I’d welcome Mooninite’s method being written up as a separate section of the guide.

Mavit (talk) 09:37, 3 May 2018 (UTC)

2 SELinux support, clean shutdown

I've been tweaking the startup on my Fedora/Kodi setup, and I have a simpler setup that:

  • Supports shutdown/reboot etc w/o PolicyKit tweaks
  • Allows for adding xrandr tweaks for "Broadcast RGB" etc
  • Doesn't leave stray dbus processes
  • Has X options for running w/o mouse and giving Kodi control of the screensaver
  • Supported SELinux enforcing out of the box w/o any policy hacks
  • Supports clean shutdown of Kodi on system shutdown/reboot

I've added this to the bottom of the page at HOW-TO:Install_Kodi_on_Fedora_26_using_RPMFusion_packages#ALTERNATIVE_Login_based_startup

Sshambar (talk) 06:00, 23 May 2018 (UTC)

3 firewalld knows about Kodi, now

Kodi 18 will include service definitions for firewalld, which will allow the instructions for opening the firewall to be simplified slightly.

Mavit (talk) 09:47, 3 May 2018 (UTC)

I haven't had the chance to test them yet, Mavit, but I like pretty-much all of the Alternative Startup aspects that you have added - thank you very much for investing in this Wiki. I'm especially interested to hear that Kodi v18 ships with Firewalld definitions - I've never been totally comfortable with disabling the firewall even on minimalistic installations. At this moment I do not see Kodi v18 (alpha) in the RPMFusion repositories. However as it happens I have a setup which utilizes Kodi built directly from the Master branch of the Kodi GitHub repo. So I will test your alternative setup with Kodi 18, and prepare some Wiki changes to be rolled in whenever Kodi v18 gets released and appears in RPMFusion.

I personally lean towards the approach of presenting two separate guides: This (minimalistic) approach, and a separate guide explaining how to install/configure Kodi on a more regularized workstation-based installation of Fedora. That 2nd guide would presumably be much more straightforward in that most of the audio/visual things would have already been prepared for the user's specific environment at installation time. Crosslinks to each other could be added near the beginning of each guide enabling choice, and also to HOW-TO:Install Kodi for Linux#Fedora for the sake of completeness.

However, someone else (other than me) will have to step forward to create and maintain that 2nd guide, as I do not have any non-minimalistic Fedora installations with which to develop this guide.

Wirerydr (talk) 04:53, 17 May 2018 (UTC)

4 Adding Notes for CentOS

This is my first serious post on a wiki - so, if I get it wrong, just let me know what to do, nicely - happy to take down what I put up and put it somewhere else, or nowhere at all!

About 1/2 year ago I asked for write permission to suggest some notes for a CentOS set up for a few of reasons - amongst them, I use Fedora as my production OS, but I wanted this Kodi machine to also run as a server with some other stuff under VMs and I didn't want to be re-installing every year... It didn't work last time, so it's taken me a little while to get back on the horse - it hasn't worked this time either - but, this time I made detailed notes against the Wiki's numbering as I went.

So, following are my notes against the numbered steps of the How-To, I wonder if someone could help nut out why Kodi's not coming up as expected? On boot, Kodi is dead, but the service starts OK, but on starting the Kodi service there's no corresponding X started on the built in monitor.

It does occur to me that I've violated the *Notice* at the top of the page with this post - let me know.

OS              GNU/Linux
Kernel          v 3.10.0-862.11.6.el7.x86_64
Distrobution    CentOS 7
Kodi            v17.4 from Nux Kodi repo
Computer        HP Compaq tc4400 Tablet PC with 
CPU             Intel(R) Core(TM)2 CPU T7600 @ 2.33GHz
Memory          2 x 2048 MB DDR2 SODIMM (4GB)
Graphics        Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller [8086:27a2]

    1. Download
    2. Written to usb stick with Fedora Media Writer gui app

    3. SOFTWARE SELECTION > Minimal Install (only option on the Left Pane; no options available on the Right Pane)
    4. INSTALLATION DESTINATION > ‘I will configure partitioning.’ (my intention is to run some VMs in addition to Kodi as the base install, so - while I’ve followed through to #7 - instructions at #8 might be more appropriate at some point)
/usr/local              1024 MiB
/var/lib/libvirt        49.04 GiB
/boot                   500 MiB
/var                    5120 MiBCell text
/                       15 GiB
swap                    4096 MiB
Set wireless network connection
Set hostname to frontserver.lan

    6. Done

    7. Done

    8. Done

    9. For ‘firewallctl’ read ‘firewall-cmd’, ‘firewallctl’ is depreciated (
Zones ‘FedoraServer’ ‘FedoraWorkstation’ don’t exist in CentOS (unsurprisingly) and the default zone is ‘public’, inspecting my own Fedora 28 system I see zones ‘FedoraServer’ and ‘public’ seem identical excepting that the service ‘mdns’ is swapped for ‘cockpit’, so installing cockpit and adding the the service ‘cockpit’ to zone ‘public’: ‘sudo yum install cockpit’, ‘sudo firewall-cmd --add-service=cockpit’ and ‘mdns’ to zone ‘public’ (because it’s not included in ‘public’ on CentOS): ‘sudo firewall-cmd --add-service=mdns; and finally:

sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="" port port="8080" protocol="tcp" accept'

    10. Done

    11. There is no Kodi in RPMFusion for CentOS (or RHEL for that matter).  Helpfully, there is the Nux repo at Coreix with Kodi.  So:
cd /etc/pki/rpm-gpg/
sudo wget
And in /etc/yum.repos.d put:

name=Nux.Ro RPMs for Kodi

name=Nux.Ro RPMs for Kodi PVR addons 
    12. Install EPEL:
rpm -Uvh

    13. N/A

    14. ‘base-x’ isn’t a package group on CentOS.  So, instead, on my Fedora machine:
dnf group info "base-x"
Last metadata expiration check: 0:36:41 ago on Sat 22 Sep 2018 15:43:01 BST.

Group: base-x
 Description: Local display server
 Mandatory Packages:
 Optional Packages:
And, on my CentOS machine:
yum install glx-utils mesa-dri-drivers plymouth-system-theme xorg-x11-drv-armsoc xorg-x11-drv-ati xorg-x11-drv-evdev xorg-x11-drv-fbdev xorg-x11-drv-intel xorg-x11-drv-libinput xorg-x11-drv-nouveau xorg-x11-drv-omap xorg-x11-drv-openchrome xorg-x11-drv-qxl xorg-x11-drv-vesa xorg-x11-drv-vmware xorg-x11-drv-wacom xorg-x11-server-Xorg xorg-x11-utils xorg-x11-xauth xorg-x11-xinit xorg-x11-drv-geode
Of those, 3 packages didn’t exist:
No package xorg-x11-drv-armsoc available.
No package xorg-x11-drv-omap available.
No package xorg-x11-drv-geode available.
And, of those, only xorg-x11-drv-geode produced any info from Fedora 28 and as I don’t have AMD video hardware, I figure I don’t need to worry about that.  The install from the above produced:
  glx-utils.x86_64 0:8.2.0-3.el7                                      	mesa-dri-drivers.x86_64 0:17.2.3-8.20171019.el7     	 
  plymouth-system-theme.x86_64 0:0.8.9-0.31.20140113.el7.centos       	xorg-x11-drv-ati.x86_64 0:7.10.0-1.el7              	 
  xorg-x11-drv-evdev.x86_64 0:2.10.5-2.1.el7                          	xorg-x11-drv-fbdev.x86_64 0:0.4.3-25.el7            	 
  xorg-x11-drv-intel.x86_64 0:2.99.917-27.20160929.el7                	xorg-x11-drv-libinput.x86_64 0:0.25.0-2.el7         	 
  xorg-x11-drv-nouveau.x86_64 1:1.0.13-3.el7                          	xorg-x11-drv-openchrome.x86_64 0:0.5.0-3.el7        	 
  xorg-x11-drv-qxl.x86_64 0:0.1.5-3.el7                               	xorg-x11-drv-vesa.x86_64 0:2.3.2-25.1.el7           	 
  xorg-x11-drv-vmware.x86_64 0:13.2.1-1.el7                           	xorg-x11-drv-wacom.x86_64 0:0.34.2-5.el7            	 
  xorg-x11-server-Xorg.x86_64 0:1.19.5-5.el7                          	xorg-x11-utils.x86_64 0:7.5-22.el7                  	 
  xorg-x11-xauth.x86_64 1:1.0.9-1.el7                                 	xorg-x11-xinit.x86_64 0:1.3.4-2.el7                 	 

Dependency Installed:
  cairo.x86_64 0:1.14.8-2.el7                                 	fontconfig.x86_64 0:2.10.95-11.el7                           	 
  fontpackages-filesystem.noarch 0:1.44-8.el7                 	graphite2.x86_64 0:1.3.10-1.el7_3                            	 
  harfbuzz.x86_64 0:1.3.2-1.el7                               	libICE.x86_64 0:1.0.9-9.el7                                  	 
  libSM.x86_64 0:1.2.2-2.el7                                  	libX11.x86_64 0:1.6.5-1.el7                                  	 
  libX11-common.noarch 0:1.6.5-1.el7                          	libXau.x86_64 0:1.0.8-2.1.el7                                	 
  libXcursor.x86_64 0:1.1.14-8.el7                            	libXdamage.x86_64 0:1.1.4-4.1.el7                            	 
  libXdmcp.x86_64 0:1.1.2-6.el7                               	libXext.x86_64 0:1.3.3-3.el7                                 	 
  libXfixes.x86_64 0:5.0.3-1.el7                              	libXfont2.x86_64 0:2.0.1-2.el7                               	 
  libXft.x86_64 0:2.3.2-2.el7                                 	libXi.x86_64 0:1.7.9-1.el7                                   	 
  libXinerama.x86_64 0:1.1.3-2.1.el7                          	libXmu.x86_64 0:1.1.2-2.el7                                  	 
  libXrandr.x86_64 0:1.5.1-2.el7                              	libXrender.x86_64 0:0.9.10-1.el7                             	 
  libXt.x86_64 0:1.1.5-3.el7                                  	libXtst.x86_64 0:1.2.3-1.el7                                 	 
  libXv.x86_64 0:1.0.11-1.el7                                 	libXvMC.x86_64 0:1.0.10-1.el7                                	 
  libXxf86dga.x86_64 0:1.1.4-2.1.el7                          	libXxf86misc.x86_64 0:1.0.3-7.1.el7                          	 
  libXxf86vm.x86_64 0:1.1.4-1.el7                             	libdmx.x86_64 0:1.1.3-3.el7                                  	 
  libepoxy.x86_64 0:1.3.1-2.el7_5                             	libevdev.x86_64 0:1.5.6-1.el7                                	 
  libfontenc.x86_64 0:1.1.3-3.el7                             	libgudev1.x86_64 0:219-57.el7_5.1                            	 
  libinput.x86_64 0:1.8.4-2.el7                               	libpng.x86_64 2:1.5.13-7.el7_2                               	 
  libthai.x86_64 0:0.1.14-9.el7                               	libwacom.x86_64 0:0.24-4.el7                                 	 
  libwacom-data.noarch 0:0.24-4.el7                           	libwayland-client.x86_64 0:1.14.0-2.el7                      	 
  libwayland-server.x86_64 0:1.14.0-2.el7                     	libxcb.x86_64 0:1.12-1.el7                                   	 
  libxkbfile.x86_64 0:1.0.9-3.el7                             	libxshmfence.x86_64 0:1.2-1.el7                              	 
  llvm-private.x86_64 0:5.0.0-3.el7                           	lyx-fonts.noarch 0:2.2.3-1.el7                               	 
  mesa-filesystem.x86_64 0:17.2.3-8.20171019.el7              	mesa-libEGL.x86_64 0:17.2.3-8.20171019.el7                   	 
  mesa-libGL.x86_64 0:17.2.3-8.20171019.el7                   	mesa-libgbm.x86_64 0:17.2.3-8.20171019.el7                   	 
  mesa-libglapi.x86_64 0:17.2.3-8.20171019.el7                	mesa-libxatracker.x86_64 0:17.2.3-8.20171019.el7             	 
  mtdev.x86_64 0:1.1.5-5.el7                                  	pango.x86_64 0:1.40.4-1.el7                                  	 
  pixman.x86_64 0:0.34.0-1.el7                                	plymouth-graphics-libs.x86_64 0:0.8.9-0.31.20140113.el7.centos    
  plymouth-plugin-label.x86_64 0:0.8.9-0.31.20140113.el7.centos   plymouth-plugin-two-step.x86_64 0:0.8.9-0.31.20140113.el7.centos  
  plymouth-theme-charge.x86_64 0:0.8.9-0.31.20140113.el7.centos   xcb-util.x86_64 0:0.4.0-2.el7                                	 
  xkeyboard-config.noarch 0:2.20-1.el7                        	xorg-x11-server-common.x86_64 0:1.19.5-5.el7                 	 
  xorg-x11-server-utils.x86_64 0:7.7-20.el7                   	xorg-x11-xkb-utils.x86_64 0:7.7-12.el7                       	 


    15. N/A

    16. Done

    17. The first attempt at ‘sudo yum install kodi’ produced:
--> Finished Dependency Resolution
Error: Package: kodi-17.4-1.el7.nux.x86_64 (nux-kodi)
Error: Package: kodi-17.4-1.el7.nux.x86_64 (nux-kodi)
       	Requires: shairplay-libs(x86-64)
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
    18. The answer is:
sudo rpm -Uvh

    19. Done

    20. Done

    21. Done

    22. Done

    23. Done

    24. Done

    25. N/A

    26. But it fails:
[[email protected] ~]$ ssh [email protected]
[email protected]'s password:
Last failed login: Sat Sep 22 22:54:45 BST 2018 from morgansmachine.lan on ssh:notty
There were 2 failed login attempts since the last successful login.
Last login: Sat Sep 22 22:51:39 2018 from morgansmachine.lan
[[email protected] ~]$ sudo systemctl status kodi
[sudo] password for kodi:
● kodi.service - kodi-standalone using xinit
   Loaded: loaded (/etc/systemd/system/kodi.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Sat 2018-09-22 22:54:15 BST; 48s ago
  Process: 749 ExecStart=/usr/bin/xinit /usr/bin/dbus-launch /usr/bin/kodi-standalone -- :0 -nolisten tcp (code=exited, status=1/FAILURE)
 Main PID: 749 (code=exited, status=1/FAILURE)

Sep 22 22:54:00 frontserver.lan systemd[1]: Started kodi-standalone using xinit.
Sep 22 22:54:00 frontserver.lan systemd[1]: Starting kodi-standalone using xinit...
Sep 22 22:54:15 frontserver.lan systemd[1]: kodi.service: main process exited, code=exited, status=1/FAILURE
Sep 22 22:54:15 frontserver.lan systemd[1]: Unit kodi.service entered failed state.
Sep 22 22:54:15 frontserver.lan systemd[1]: kodi.service failed.
[[email protected] ~]$ sudo systemctl start kodi
[[email protected] ~]$ sudo systemctl status kodi
● kodi.service - kodi-standalone using xinit
   Loaded: loaded (/etc/systemd/system/kodi.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2018-09-22 22:59:46 BST; 4s ago
 Main PID: 1670 (xinit)
   CGroup: /system.slice/kodi.service
       	‣ 1670 /usr/bin/xinit /usr/bin/dbus-launch /usr/bin/kodi-standalone -- :0 -nolisten tcp

Sep 22 22:59:46 frontserver.lan systemd[1]: Started kodi-standalone using xinit.
Sep 22 22:59:46 frontserver.lan systemd[1]: Starting kodi-standalone using xinit...
[[email protected] ~]$

Mread (talk) 19:37, 24 September 2018 (UTC)