diff options
Diffstat (limited to 'docs/README.Linux.md')
-rw-r--r-- | docs/README.Linux.md | 279 |
1 files changed, 279 insertions, 0 deletions
diff --git a/docs/README.Linux.md b/docs/README.Linux.md new file mode 100644 index 0000000000..cc517095f8 --- /dev/null +++ b/docs/README.Linux.md @@ -0,0 +1,279 @@ +TOC +1. Introduction +2. Getting the source code +3. Installing the required libraries and headers +4. How to compile + 4.4 Binary addons + 4.5 Test suite +5. How to run +6. Uninstalling + +----------------------------------------------------------------------------- +1. Introduction +----------------------------------------------------------------------------- + +A graphics-adapter with OpenGL acceleration is highly recommended. +24/32 bitdepth is required along with OpenGL. + +Note to new Linux users: +All lines that are prefixed with the '$' character are commands, +that need to be typed into a terminal window / console. The '$' equals the prompt. +Note: The '$' character itself should NOT be typed as part of the command. + +----------------------------------------------------------------------------- +2. Getting the source code +----------------------------------------------------------------------------- + +You will have to grab the source code of course, here we use git as example. +First install the git package provided by your distribution. +Then from a terminal, type: + +.0 $ cd $HOME +.1 $ git clone git://github.com/xbmc/xbmc.git kodi + +Note: You can clone any specific branch. + +.1 $ git clone -b <branch> git://github.com/xbmc/xbmc.git kodi + +----------------------------------------------------------------------------- +3. Installing the required libraries and headers +----------------------------------------------------------------------------- + +You will then need the required libraries. The following is the list of packages +that are used to build Kodi packages on Debian/Ubuntu (with all supported +external libraries enabled). + +Build-Depends: autoconf, automake, autopoint, autotools-dev, cmake, curl, + default-jre, gawk, gperf, libao-dev, libasound2-dev, + libass-dev (>= 0.9.8), libavahi-client-dev, libavahi-common-dev, libbluetooth-dev, + libbluray-dev (>= 0.9.3), libbz2-dev, libcap-dev, + libcdio-dev, libcec-dev, libcurl4-openssl-dev | libcurl4-gnutls-dev | libcurl-dev, + libcwiid-dev, libdbus-1-dev, libegl1-mesa-dev, libfmt3-dev, libfontconfig-dev, libfreetype6-dev, + libfribidi-dev, libgif-dev (>= 4.1.6), libgl1-mesa-dev | libgl-dev, libglu1-mesa-dev | libglu-dev, + libiso9660-dev, libjpeg-dev, libltdl-dev, liblzo2-dev, libmicrohttpd-dev, + libmpcdec-dev, libmysqlclient-dev, libnfs-dev, + libpcre3-dev, libplist-dev, libpng12-dev | libpng-dev, libpulse-dev, + libshairplay-dev, libsmbclient-dev, libsqlite3-dev, libssl-dev, libswscale-dev, + libtag1-dev (>= 1.8), libtinyxml-dev (>= 2.6.2), libtool, libudev-dev, + libusb-dev, libva-dev, libvdpau-dev, libxml2-dev, + libxmu-dev, libxrandr-dev, libxslt1-dev, libxt-dev, lsb-release, rapidjson-dev, + nasm [!amd64], python-dev, python-imaging, python-support, swig, uuid-dev, yasm, zlib1g-dev, + liblirc-dev + +If you want to build with Wayland instead of X11, you will need: + wayland-protocols (>= 1.7), libwaylandpp-dev + +[NOTICE] crossguid / libcrossguid-dev all Linux distributions. +Kodi now requires crossguid which is not available in Ubuntu repositories at this time. +We supply a Makefile in tools/depends/target/crossguid +to make it easy to install into /usr/local. + $ make -C tools/depends/target/crossguid PREFIX=/usr/local + +[NOTICE] libfmt / libfmt3-dev all Linux distributions. +Kodi now requires libfmt which is not available in Ubuntu repositories at this time. +We supply a Makefile in tools/depends/target/libfmt +to make it easy to install into /usr/local. + $ make -C tools/depends/target/libfmt PREFIX=/usr/local + +[NOTICE] wayland-protocols all Linux distributions. +Building Kodi with Wayland requires a recent version of wayland-protocols (at least 1.7) +which is not available in the Ubuntu LTS repostiories at this time. +We supply a Makefile in tools/depends/target/wayland-protocols to make it easy to install +into /usr/local. + $ make -C tools/depends/target/wayland-protocols PREFIX=/usr/local + +[NOTICE] waylandpp all Linux distributions. +Building Kodi with Wayland requires waylandpp which is not available in repositories +of most major distributions at this time. +We supply a Makefile in tools/depends/target/waylandpp to make it easy to install +into /usr/local. +Note that building waylandpp has some dependencies of its own: scons, +libwayland-dev (>= 1.11.0), libwayland-egl1-mesa + $ make -C tools/depends/target/waylandpp PREFIX=/usr/local + +Note: For developers and anyone else who compiles frequently it is recommended to use ccache. + $ sudo apt-get install ccache + +----------------------------------------------------------------------------- +3.1. Using the Kodi PPA to get all build dependencies (Debian/Ubuntu only) +----------------------------------------------------------------------------- + +For this, you need to specify the PPA in your apt sources. +Please find them on the following wiki link: +Note: See README.Ubuntu.md as well + +http://kodi.wiki/index.php?title=Official_Ubuntu_PPA + +Update apt: + $ sudo apt-get update + +The command to get the build dependencies, used to compile the version on the PPA. + $ sudo apt-get build-dep kodi + +----------------------------------------------------------------------------- +4. How to compile +----------------------------------------------------------------------------- +Cmake build instructions V18.0 Leia and higher + +Create and change to build directory + $ mkdir kodi-build && cd kodi-build + +Run CMake +- for X11 + $ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local +- for Wayland + $ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCORE_PLATFORM_NAME=wayland -DWAYLAND_RENDER_SYSTEM=gl + (You can use "gles" instead of "gl" if you want to build with GLES) + +Build + $ cmake --build . -- VERBOSE=1 + +Tip: By adding -j<number> to the make command, you describe how many + concurrent jobs will be used, it will speed up the build process. + So for quadcore the command is: + + $ cmake --build . -- VERBOSE=1 -j4 + +If the build process completes succesfully you would want to test if it is working. +Still in the build directory type the following: + + $ ./kodi.bin + +If everything was okay during your test you can now install the binaries to their place +in this example "/usr/local". + + $ sudo make install + +This will install Kodi in the prefix provided in 4.1 as well as a launcher script. + +Tip: By adding -j<number> to the make command, you describe how many + concurrent jobs will be used. So for dualcore the command is: + + $ sudo make install -j2 + +Tip: To override the location that Kodi is installed, use PREFIX=<path>. +For example. + + $ make install DESTDIR=$HOME/kodi + +----------------------------------------------------------------------------- +4.4. Binary addons - compile +----------------------------------------------------------------------------- + +From v14 with commit 4090a5f a new API for binary addons is available. +You can compile all addons or only specific addons by specifying e.g. ADDONS="audioencoder.foo pvr.bar audiodecoder.baz" + +.0 All addons + $ make -C tools/depends/target/binary-addons PREFIX=/<system prefix added on step 4.1> + +.1 Specific addons + $ make -C tools/depends/target/binary-addons PREFIX=/<system prefix added on step 4.1> ADDONS="audioencoder.flac pvr.vdr.vnsi audiodecoder.snesapu" + +Audio decoders: + audiodecoder.modplug, audiodecoder.nosefart, audiodecoder.sidplay, audiodecoder.snesapu, + audiodecoder.stsound, audiodecoder.timidity, audiodecoder.vgmstream + +Audio encoders: + audioencoder.flac, audioencoder.lame, audioencoder.vorbis, audioencoder.wav + +Inputstream addons: + inputstream.mpd + +Peripheral addons: + peripheral.joystick + +PVR addons: + pvr.argustv, pvr.demo, pvr.dvblink, pvr.dvbviewer, pvr.filmon, pvr.hdhomerun, pvr.hts, pvr.iptvsimple, + pvr.mediaportal.tvserver,pvr.mythtv, pvr.nextpvr, pvr.njoy, pvr.pctv, pvr.stalker, pvr.vbox, pvr.vdr.vnsi, + pvr.vuplus, pvr.wmc + +Screensavers: + screensaver.asteroids, screensaver.biogenesis, screensaver.greynetic, screensaver.matrixtrails, + screensaver.pingpong, screensaver.pyro, screensavers.rsxs, screensaver.stars + +Visualizations + visualization.fishbmc, visualization.goom, visualization.projectm, visualization.shadertoy + visualization.spectrum, visualization.vsxu, visualization.waveform + +----------------------------------------------------------------------------- +4.5. Test suite +----------------------------------------------------------------------------- + +Kodi has a test suite which uses the Google C++ Testing Framework. +This framework is provided directly in Kodi's source tree. +It has very little requirements, in order to build and run. +See the README file for the framework at 'lib/gtest/README' for specific requirements. + +To compile and run Kodi's test suite, type the following: + + $ make check + +To compile the test suite without running it, type the following. + + $ make kodi-test + +The test suite program can be run manually as well. +The name of the test suite program is 'kodi-test' and will build in the Kodi source tree. +To bring up the 'help' notes for the program, type the following: + + $ ./kodi-test --gtest_help + +The most useful options are, + + --gtest_list_tests + List the names of all tests instead of running them. + The name of TEST(Foo, Bar) is "Foo.Bar". + + --gtest_filter=POSITIVE_PATTERNS[-NEGATIVE_PATTERNS] + Run only the tests whose name matches one of the positive patterns but + none of the negative patterns. '?' matches any single character; '*' + matches any substring; ':' separates two patterns. + +----------------------------------------------------------------------------- +5. How to run +----------------------------------------------------------------------------- + +How to run Kodi depends on the type of installation you have done. +It is possible to run Kodi without the requirement to install Kodi anywhere else. +In this case, type the following from the top source directory. + + $ ./kodi.bin + +Or run in 'portable' mode + + $ ./kodi.bin -p + +If you chose to install Kodi using '/usr' or '/usr/local' as the PREFIX, +you can just issue 'kodi' in a terminal session. + +If you have overridden PREFIX to install Kodi into some non-standard location, +you will have to run Kodi by directly running 'kodi.bin'. + +For example: + + $ $HOME/kodi/usr/lib/kodi/kodi.bin + +You should still run the wrapper via + $ $PREFIX/bin/kodi + +If you wish to use VDPAU decoding you will now have to change the Render Method +in Settings->Videos->Player from "Auto Detect" to "VDPAU". + +----------------------------------------------------------------------------- +6. Uninstalling +----------------------------------------------------------------------------- + +Prepend "sudo" to commands, if your user doesn't have write permission to the install directory. + +Note: If you have rerun configure with a different prefix, +you will either need to rerun configure with the correct prefix for this step to work correctly. + + $ make uninstall +.0 $ sudo make uninstall + +If you would like to also remove any settings and 3rd party addons (skins, scripts, etc) +you should also run: + +.1 $ rm -rf ~/.kodi + +EOF |