Category:Installation: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
>Guilmxm
No edit summary
m (Robot: Changing Category:XBMC to Category:Kodi)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{XBMC wiki toc/v}}
:''See also: '''[[:Category:Compiling]]'''''
:''See also: '''[[:Category:Compiling]]'''''
[[category:XBMC]]


== <big>'''Installation and configuration of XBMC on Ubuntu based OS with AMD HD Graphic (tested with Zotac AD02 and AD10)'''</big> ==
[[Category:Kodi]]
 
[[Category:Index]]
=== '''The Goal:''' ===
Installing and configuring all the necessary to get a fully functional, stable and great XBMC media center on AMD Plateform using prorietary ATI driver and Hardware acceleration.
 
=== Software: ===
 
This configuration guide has been tested under Ubuntu based OS running 11.10 TLS and 12.04 TLS (desktop versions of Xubuntu and Lubuntu)
 
=== Hardware: ===
 
This configuration guide has been tested on Zotac AMD Based HTPC: ZOTAC AD02 and ZOTAC AD10
 
<br>These two HTPCs are quite the same; One major difference is the included and optional USB IR receiver for Zotac AD10, associated with its nice MCE remote control.
 
<br>Also, only the Zotac AD02 has an SPDIF output to serve Digital sound, digital sound for Zotac AD10 will be achieved using HDMI ouput
 
<br>Both of them are embedded with an AMD E350 CPU with ATI Radeon HD able to deal with 1080p video and 5.1 Digital audio :-)
 
<br>'''Zotac AD02 Model :'''
AMD E-350 APU Platform (dual-core) (1.6 GHz)
AMD Radeon™ HD 6310
 
[[File:zotac-ad02.jpg]]
 
'''Zotac AD10 Model :'''
AMD E-350 APU Platform (dual-core) (1.6 GHz)
AMD Radeon™ HD 6310
 
[[File:zotac-ad10.jpg]]
 
=== Step 1: Install your system ===
 
<br>First choose your Ubuntu version to install.
This guide will only be fully applicable with an Ubuntu based version.
 
<br>I will not cover the OS installation itself as there is a lot of tutorials on this subject and installation is enought easy right now.
 
<br>I do not recommend using Ubuntu classic version as it provides by default a very resource consuming interface (Unity) and has a lot of problems and bugs running ATI proprietary driver!
 
<br>As far as I know and as far as I tested, the only Ubuntu bases distributions with absolutely no issue with the ATI proprietary driver are:
 
<br>
* Xubuntu : Ubuntu based version with XFCE desktop
* Lubuntu : Ubuntu based version with LFCE desktop
 
<br>I would recommend Lubuntu in the case of a XBMC dedicated system (but that’s all my personal choice and therefore i prefer to use Xubuntu) as it has a really low resource consuming desktop interface.
 
<br>
'''NB:'''
 
You may also want to choose a minimal Ubuntu installation and then only run an Xserver that will directly start XBMC interface.
This guide will still be approximately applicable in this case.
 
<br>'''I did not choose this option for different reasons:'''
 
* No desktop interface to deal with system, files and so on (even if often prefer the command line, 2 possibilities are always betters than one!)
* No Web browser
* No graphical tool to manage Networks connections, etc…
* No access to AMD ATI graphical configuration manager, so no way to simply change resolution, brightness, contrast and so on
 
'''Installation recommendations:'''
 
'''3 partitions :'''
 
* A first partition for the root system ( / )
* A second partition for home (/home)
* A small Swap partition (1 or 2 GB will largely be enough, a such system is not expected to really swap in normal conditions)
 
'''Other:'''
 
* Install Third party softwares (mp3 and so on)
* In the installation Software, use “xbmc” as a the login
* Activate autologin for the user "xbmc"
 
=== Step 2: Ensure your system is up to date and upgrade if required ===
 
<pre>
sudo apt-get update
sudo apt-get upgrade -y
sudo dist-upgrade –y
sudo reboot
</pre>
 
=== Step 3: Install some requirements ===
 
<pre>
sudo apt-get install ssh python-software-properties udisks upower xorg alsa-utils mesa-utils git-core
librtmp0 lirc libmad0 lm-sensors lib32gcc1 libc6-i386 dkms
</pre>
 
<br>NB : For lirc, when wizard asks you to choose your hardware in our case we will configure it later so you can choose none...
If you already know how to configure lirc and your hardware you may want to choose the right one.
 
=== Step 4: Install ATI proprietary driver (required for XVBA Hardware acceleration) ===
 
* Get the driver from AMD Site (same file for both 32/64 Bits):
 
http://support.amd.com/us/gpudownload/linux/Pages/radeon_linux.aspx
 
* Build Packages:
 
<pre>
sudo sh ./amd-driver-installer-*-x86.x86_64.run --buildpkg
</pre>
 
NB: I you are missing some requirements to build packages, a graphical apt-get install will automaticaly appear
and install requirements, just valid and proceed and package building will continue
 
Packages will be built in current directory and exit.
 
* Install packages:
 
<pre>
sudo dpkg -i fgl*.deb
</pre>
 
* Create xorg configuration files
 
<pre>
sudo aticonfig -initial -f
sudo aticonfig -sync-vsync=on
</pre>
 
Optionnal and not destructive: Disable underscan (black borders)
 
<pre>
sudo aticonfig --set-pcs-val=MCIL,DigitalHDTVDefaultUnderscan,0
</pre>
 
* Reboot
 
<pre>
sudo reboot
</pre>
 
=== Step 5: Proceed with XBMC installation using pre-compiled packages built for ATI ===
 
This procedure will add a ppa containing pre-compiled XBMC stable Eden version with XVBA support and install XBMC:
 
* Add the ppa:
 
<pre>
sudo add-apt-repository ppa:wsnipex/xbmc-xvba-eden
</pre>
 
Press enter to valid adding this ppa
 
* Update and install:
 
<pre>
sudo apt-get update
sudo apt-get install xbmc xbmc-bin
</pre>
 
=== Step 6: XBMC nice level ===
 
* Allow xbmc user to change its nice level:
 
edit /etc/security/limits.conf
add the following line at the end of the file
 
<pre>
xbmc            -      nice          -1
</pre>
 
=== Step 7: First start of XBMC and base configuration ===
 
'''Open XBMC and proceed with first settings:'''
 
* Open XBMC
 
* In Appearance / skin, I recommend “NEON” (again my personal choice!)
 
* In Appearance, adapt your language if required
 
[[File:Screen1.png]]
 
* In System->Settings->System->Video Settings:
 
Vertical Sync: Always on
 
[[File:Screen2.png]]
 
* In System ->Video->Playback:
<br>XVBA: On
<br>Adjust Refreshrate to match video: On
<br>Sync Playback to Display: On
<br>Sync Method: Video Clock (Drop/Dupe)
 
[[File:Screen3.png]]
 
* Exit XBMC
 
=== Step 8: Optimizing XBMC CPU use ===
 
Enable Dirty Region Rendering (drastically reduces CPU load on XBMC idle) and DDS Fanart
NOTE: do not do this as root or with sudo. this file must belong to your normal xbmc user
 
create: ~/.xbmc/userdata/advancedsettings.xml
 
<advancedsettings>
  <loglevel hide="false">0</loglevel>
  <gui>   
    <algorithmdirtyregions>1</algorithmdirtyregions>
    <visualizedirtyregions>false</visualizedirtyregions>
    <nofliptimeout>0</nofliptimeout>
  </gui>   
  <cputempcommand>sensors|sed -ne "s/temp1: \+[-+]\([0-9]\+\).*/\1 C/p"</cputempcommand>
  <gputempcommand>/usr/bin/aticonfig --od-gettemperature | grep Temperature | cut -f 2 -d "-" | cut -f 1 -d "." | sed -e "s, ,," | sed 's/$/ C/'</gputempcommand>
</advancedsettings>
 
=== Step 9: Configuring Digital Audio ===
 
<br>You will certainly want to get Digital sound with your own Home Cinema, to get this working you have two possibilities depending on your hardware :
<br>
* Digital sound through SPDIF
* Digital sound through HDMI
 
<br>I will provide these two examples, you have to adapt this depending on your Hardware !
 
* Digital Audio with SPDIF on Zotac AD02
 
<br>As xbmc user, create a new file in your home: ~/.asoundrc
 
<pre>
pcm.dmixer {
    type dmix
    ipc_key 1024
    slave {
        pcm "hw:1,1"
        period_time 0
        period_size 1024
        buffer_size 8192
        #periods 128
        #rate 44100
        rate 48000
    }
    bindings {
        0 0
        1 1
    }
}
</pre>
 
<br>Restart XBMC, in Settings>System>Audio Output:
 
* Audio Output: Optical/Coax
* Speaker Configuration: 5.1
* Audio Output Device: Custom
* Custom Audio Device: plug:dmixer
* Passthrought Output Device: Custom
* Custom Passthrought Device: plug:dmixer
 
[[File:Screen4.png]]
 
* Digital Audio with HDMI on Zotac AD10
 
<br>As xbmc user, create a new file in your home: ~/.asoundrc
 
<pre>
pcm.dmixer {
  type dmix
  ipc_key 1024
  ipc_key_add_uid false
  ipc_perm 0660
  slave {
      pcm "hw:0,3"              #HDMI, defaults to 48000 kHz
      channels 2
      period_size 1024
      buffer_size 4096
  }
}
pcm.!default {
  type plug
  slave.pcm "dmixer"
}
</pre>
 
<br>Restart XBMC, in Settings>System>Audio Output:
 
* Audio Output: HDMI
* Speaker Configuration: 5.1
* Audio Output Device: Custom
* Custom Audio Device: plug:dmixer
* Passthrought Output Device: hdmi (alsa)
 
=== Step 10: Configuring power management to allow shutdown and others power management functions from XBMC ===
 
<br>Without configuring it, you won't be able to shutdown or suspend your system directly from XBMC
Source:
<br>
http://wiki.xbmc.org/index.php?title=HOW-TO:Suspend_and_wake_in_Ubuntu
 
* Install requirements:
 
<pre>
sudo apt-get install policykit-1 upower acpi-support
</pre>
 
<br>
'''Create a new file "/var/lib/polkit-1/localauthority/50-local.d/custom-actions.pkla":'''
 
'''For Ubuntu 11.10:'''
 
<pre>
[Actions for xbmc user]
Identity=unix-user:xbmc
Action=org.freedesktop.upower.*;org.freedesktop.consolekit.system.*;org.freedesktop.udisks.*
ResultAny=yes
ResultInactive=no
ResultActive=yes
</pre>
 
'''For Ubuntu 12.04:'''
 
<pre>
[Actions for xbmc user]
Identity=unix-user:xbmc
Action=org.freedesktop.upower.*;org.freedesktop.consolekit.system.*;org.freedesktop.udisks.*
ResultAny=yes
ResultInactive=yes
ResultActive=yes
</pre>
 
* Restart XBMC and try power management functions such as shutdown
 
<br>You may have to do more configuration if you need wake up from USB connected devices, in my case with the Zotac AD10 and using remote control, i did not had to and powering up was working from remote control even with the optional IR USB receiver.
 
=== Step 11: Configure your Video Media Library ===
 
<br>
'''I will present the way i do which is absolutely personal and you may want to work completely differently ^^'''
<br>
 
'''Probably you will have:'''
<br>
* One and probably various external storage
* Films, but also animes for kids, music videos, comics shows and so on...
<br>
Using the XBMC's library function, you will be able (assoiated with a scrapper) to automaticaly get film's pictures and informations, so you absolutely need to organize all that.
<br>
You can have as for an example your film's library splitted in various external storages !
<br>
 
'''I Recommend:'''
 
* Use the same directory organisation for each external storage, example:
 
<pre>
You have a first external drive:
/media/EXTERNAL1/Multimedia/Films
/media/EXTERNAL1/Multimedia/Animes
 
And a second with the same organization:
/media/EXTERNAL2/Multimedia/Films
/media/EXTERNAL2/Multimedia/Animes
</pre>
 
* For each Film or Video, create a dedicated Directory with the official name of the Film, example:
 
<pre>
/media/EXTERNAL1/Multimedia/Films/Ironman 1
/media/EXTERNAL1/Multimedia/Films/Ironman 2
...
</pre>
 
'''NB: Check for each film the official name on:
<br>
http://www.themoviedb.org/
 
 
 
 
 
=== Step 12: Configuring Remote Control ===
 
<br>In the cas of the Zotac AD10, an MCE remote control is provided, associated with an embeded IR receiver and also an optional USB IR receiver.
 
<br>Using the optional IR receiver, the remote control was working good without doing anything :)
 
<br>However, some buttons weren't working as i wanted, and more boring the most usefull button was not working... (Home button, the green with windows logo)
 
<br>Thanks to him, i found this:
<br>
http://ben.periton.co.uk/2012/06/configuring-the-zotac-zbox-remote-control/
 
* First remove lirc (we will install a specific version):
 
<pre>
sudo apt-get remove lirc
</pre>
 
* Install requirements:
 
<pre>
sudo apt-get install automake dialog libtool
</pre>
 
* Download the version from FernetMenta:
 
<pre>
wget https://github.com/FernetMenta/lirc/tarball/master -O lirc.tar.gz
</pre>
 
* Extract, configure and install:
 
<br>When you will run setup.sh, choose select driver "zotac" under usb, then save & configure
 
<pre>
tar -xvf lirc.tar.gz
cd <Directory>
./autogen.sh
./setup.sh
make
sudo make install
</pre>
 
* Create links /usr/sbin:
 
<pre>
cd /usr/sbin
sudo ln -s ../local/sbin/lircd lircd
sudo ln -s ../local/sbin/lircmd lircmd
</pre>
 
* Stop X11 from registering device as keyboard
 
<br>Edit "/usr/share/X11/xorg.conf.d/10-evdev.conf" and place the following code at the begining of the file:
 
<pre>
Section "InputClass"
  Identifier "PHILIPS MCE USB IR Receiver- Spinel plus"
  MatchProduct "PHILIPS MCE USB IR Receiver- Spinel plus"
  MatchIsKeyboard "true"
  Option "Ignore" "true"
EndSection
</pre>
 
* Add a alias in udev to /dev/remote by creating a new file at /etc/udev/rules.d/10-local.rules with the following:
 
<pre>
SUBSYSTEM=="usb" , ATTRS{idVendor}=="0471", ATTRS{idProduct}=="20cc", SYMLINK+="remote", ACTION=="add", RUN+="/sbin/initctl --quiet emit --no-wait ir-ready"
</pre>
 
* Replace the current version of /etc/lirc/hardware.conf with:
 
<pre>
# hardware.conf for Zotac
#
REMOTE="Zotac MCE Remote"
REMOTE_MODULES=""
REMOTE_DRIVER="zotac"
REMOTE_DEVICE="/dev/remote"
REMOTE_SOCKET=""
REMOTE_LIRCD_CONF="zotac/lircd.conf.zotac"
REMOTE_LIRCD_ARGS=""
TRANSMITTER="None"
TRANSMITTER_MODULES=""
TRANSMITTER_DRIVER=""
TRANSMITTER_DEVICE=""
TRANSMITTER_SOCKET=""
TRANSMITTER_LIRCD_CONF=""
TRANSMITTER_LIRCD_ARGS=""
START_LIRCD="true"
LOAD_MODULES="true"
LIRCMD_CONF=""
FORCE_NONINTERACTIVE_RECONFIGURATION="false"
START_LIRCMD=""
</pre>
 
* Replace the current version of /etc/lirc/lircd.conf with:
 
<pre>
  min_repeat      9
#  suppress_repeat 9
#  uncomment to suppress unwanted repeats
#  toggle_bit_mask 0x7004F
 
      begin codes
          KEY_SLEEP                0x00010082
          KEY_WAKEUP              0x00010083
          KEY_RECORD              0x000C00B2
          KEY_PAUSE                0x000C00B1
          KEY_STOP                0x000C00B7
          KEY_REWIND              0x000C00B4
          KEY_PLAY                0x000C00B0
          KEY_FORWARD              0x000C00B3
          KEY_LEFTSHIFT            0x000C00B6
          KEY_RIGHTSHIFT          0x000C00B5
          KEY_BACK                0x000C0224
          KEY_INFO                0x000C0209
          KEY_MENU                0xFFBC000D
          KEY_UP                  0x00070052
          KEY_LEFT                0x00070050
          KEY_RIGHT                0x0007004F
          KEY_DOWN                0x00070051
          KEY_OK                  0x00070028
          KEY_VOLUMEUP            0x000C00E9
          KEY_VOLUMEDOWN          0x000C00EA
          KEY_MUTE                0x000C00E2
          KEY_CHANNELUP            0x000C009C
          KEY_CHANNELDOWN          0x000C009D
          KEY_1                    0x0007001E
          KEY_2                    0x0007001F
          KEY_3                    0x00070020
          KEY_4                    0x00070021
          KEY_5                    0x00070022
          KEY_6                    0x00070023
          KEY_7                    0x00070024
          KEY_8                    0x00070025
          KEY_9                    0x00070026
          KEY_0                    0x00070027
          KEY_NUMERIC_STAR        0x10070025
          KEY_NUMERIC_POUND        0x10070020
          KEY_CLEAR                0x00070029
          KEY_TEXT                0xFFBC005A
          KEY_TITLE                0x000C008D
          KEY_ENTER                0x00070028
          KEY_RED                  0xFFBC005B
          KEY_GREEN                0xFFBC005C
          KEY_YELLOW              0xFFBC005D
          KEY_BLUE                0xFFBC005E
      end codes
end remote
</pre>
 
* As xbmc user, replace if already exists or create: ~/.xbmc/userdata/Lircmap.xml
 
<pre>
<lircmap>
    <remote device="zotac.conf">
        <power>KEY_SLEEP</power>
        <wake>KEY_WAKEUP</wake>
        <record>KEY_RECORD</record>
        <pause>KEY_PAUSE</pause>
        <stop>KEY_STOP</stop>
        <reverse>KEY_REWIND</reverse>
        <play>KEY_PLAY</play>
        <forward>KEY_FORWARD</forward>
        <skipminus>KEY_LEFTSHIFT</skipminus>
        <skipplus>KEY_RIGHTSHIFT</skipplus>
        <back>KEY_BACK</back>
        <info>KEY_INFO</info>
        <display>KEY_MENU</display>
        <up>KEY_UP</up>
        <left>KEY_LEFT</left>
        <right>KEY_RIGHT</right>
        <down>KEY_DOWN</down>
        <select>KEY_OK</select>
        <volumeplus>KEY_VOLUMEUP</volumeplus>
        <volumeminus>KEY_VOLUMEDOWN</volumeminus>
        <mute>KEY_MUTE</mute>
        <up>KEY_CHANNELUP</up>
        <down>KEY_CHANNELDOWN</down>
        <zero>KEY_0</zero>
        <one>KEY_1</one>
        <two>KEY_2</two>
        <three>KEY_3</three>
        <four>KEY_4</four>
        <five>KEY_5</five>
        <six>KEY_6</six>
        <seven>KEY_7</seven>
        <eight>KEY_8</eight>
        <nine>KEY_9</nine>
        <red>KEY_RED</red>
            <green>KEY_GREEN</green>
            <yellow>KEY_YELLOW</yellow>
            <blue>KEY_BLUE</blue>
        <star>KEY_NUMERIC_STAR</star>
        <hash>KEY_NUMERIC_POUND</hash>
        <subtitle>KEY_TEXT</subtitle>
        <title>KEY_TITLE</title>
        <clear>KEY_CLEAR</clear>
    </remote>
</lircmap>
</pre>
 
'''In my cas, i was not fully satisfied with this configuration, the Home button was not doing what i was expecting (going back to XBMC Home, and i wanted a button to be able to change language by the remote control'''
 
<br>Under conntruction i have get back my config file ^^
 
<br>You may try this configuration:
 
<pre>
<pre>
<lircmap>
    <remote device="zotac.conf">
        <power>KEY_SLEEP</power>
        <wake>KEY_WAKEUP</wake>
        <record>KEY_RECORD</record>
        <pause>KEY_PAUSE</pause>
        <stop>KEY_STOP</stop>
        <reverse>KEY_REWIND</reverse>
        <play>KEY_PLAY</play>
        <forward>KEY_FORWARD</forward>
        <skipminus>KEY_LEFTSHIFT</skipminus>
        <skipplus>KEY_RIGHTSHIFT</skipplus>
        <back>KEY_BACK</back>
        <info>KEY_INFO</info>
        <start>KEY_MENU</start>
        <up>KEY_UP</up>
        <left>KEY_LEFT</left>
        <right>KEY_RIGHT</right>
        <down>KEY_DOWN</down>
        <select>KEY_OK</select>
        <volumeplus>KEY_VOLUMEUP</volumeplus>
        <volumeminus>KEY_VOLUMEDOWN</volumeminus>
        <mute>KEY_MUTE</mute>
        <up>KEY_CHANNELUP</up>
        <down>KEY_CHANNELDOWN</down>
        <zero>KEY_0</zero>
        <one>KEY_1</one>
        <two>KEY_2</two>
        <three>KEY_3</three>
        <four>KEY_4</four>
        <five>KEY_5</five>
        <six>KEY_6</six>
        <seven>KEY_7</seven>
        <eight>KEY_8</eight>
        <nine>KEY_9</nine>
        <red>KEY_RED</red>
        <green>KEY_GREEN</green>
        <yellow>KEY_YELLOW</yellow>
        <blue>KEY_BLUE</blue>
        <star>KEY_NUMERIC_STAR</star>
        <hash>KEY_NUMERIC_POUND</hash>
        <subtitle>KEY_TEXT</subtitle>
        <title>KEY_TITLE</title>
        <clear>KEY_CLEAR</clear>
    </remote>
</lircmap>
</pre>
 
* Reboot and test, everything should work !

Latest revision as of 22:05, 17 November 2014