Archive:HOW-TO:Install XBMC on Ubuntu/HOW-TO 1: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
>Gamester17
No edit summary
>Olympia
mNo edit summary
Line 8: Line 8:


= Introduction =
= Introduction =
This is a real step-by-step guide, I hope everybody can follow and walk through the whole installation procedure. The guide is based on either Ubuntu 8.04 (Hardy Heron) or 8.10 (Intrepid Ibex) as a platform, start with a minimal install and only install the needed components at the top of that.
This is a real step-by-step guide, I hope everybody can follow and walk through the whole installation procedure. The guide is based on either Ubuntu 8.04 (Hardy Heron), 8.10 (Intrepid Ibex), or 9.04 (Jaunty Jackalope) as a platform, start with a minimal install and only install the needed components on the top of that.


On the face of it, this guide may seem like a very lengthy process, but it will feel much shorter while you begin following it step-by-step.
On the face of it, this guide may seem like a very lengthy process, but it will feel much shorter while you begin following it step-by-step.
Line 16: Line 16:
* You need minimum 4GB size Flash drive or harddisk drive to install on.
* You need minimum 4GB size Flash drive or harddisk drive to install on.
* Since you will use this PC only as a [http://en.wikipedia.org/wiki/Media_center media center]. I therefor assume that you use digital audio pass-through (S/PDIF or HDMI) to a receiver/amplifier with built-in Dolby Digital (AC3) decoder, and hence I choose NOT to install the dependency libraries for PulseAudio and compile XBMC later without PulseAudio support.
* Since you will use this PC only as a [http://en.wikipedia.org/wiki/Media_center media center]. I therefor assume that you use digital audio pass-through (S/PDIF or HDMI) to a receiver/amplifier with built-in Dolby Digital (AC3) decoder, and hence I choose NOT to install the dependency libraries for PulseAudio and compile XBMC later without PulseAudio support.
* <span style="color:red">'''Please be aware, if you are installing a full Ubuntu system with GDM, then the guide will not fully work!'''</span>
* <span style="color:red">'''Please be aware, if you are installing a full Ubuntu OS with GDM, then the guide will not fully applicable!'''</span>
* <span style="color:red">'''Think twice if you want to use any of the sections in it's own'''</span>
* <span style="color:red">'''Please also think twice, if you want to use any of the below sections in it's own, without following the guide step-by-step from the begining'''</span>


'''You will get:'''
'''You will get:'''
* A dedicated HTPC which auto-boots directly to XBMC Media Center.
* A dedicated HTPC which auto-boots directly to XBMC Media Center.
* Latest XBMC SVN version.
* Latest XBMC SVN version.
* Updated ALSA (audio) driver.
* Upgraded ALSA (audio) driver.
* Updated VIDEO (graphics) driver.
* Up to date VIDEO (graphics) driver.
* LIRC (Microsoft MCE Remote will work out-of-the-box, however if you have any other remotes and/or LCD displays then you are on your own to solve the individual LIRC and LCDproc issues).
* LIRC (Microsoft MCE Remote will work out-of-the-box, however if you have any other remotes and/or LCD displays then you are on your own to solve the individual LIRC and LCDproc issues).
* Suspend/resume (works perfectly on for example ASUS P5N7A-VM motherboard with Intrepid).
* Suspend/resume (works perfectly for example with ASUS P5N7A-VM motherboard using Intrepid).


'''Known issues:'''
'''Known issues:'''
* Installations based on Intrepid having some performance issues, due to unidetified reason. You can read more on that [http://forum.xbmc.org/showthread.php?t=43075 here].
* Installations based on Intrepid and Jaunty having video playback performance issues due to an unidentified root cause. You can read more about that [http://forum.xbmc.org/showthread.php?t=43075 in this forum thread].
* You might have some difficulties with suspend/ resume on Hardy based installation
* You might have some difficulties with suspend/ resume on Hardy based installations


= Preparation =
= Preparation =
'''FIRST STEP'''<BR>
'''FIRST STEP'''<BR>


Download and burn Ubuntu Hardy or Intrepid mini.iso (according to your platform preference) from here:
Download and burn Ubuntu Hardy/ Intrepid/ Jaunty mini.iso (according to your platform preference) from here:
<BR>https://help.ubuntu.com/community/Installation/MinimalCD
<BR>https://help.ubuntu.com/community/Installation/MinimalCD


<span style="color:red">Please be aware, if you are installing a full Ubuntu system with GDM, then the guide will not fully work!</span>
<span style="color:red">Please be aware, if you are choosing to install a full-blown Ubuntu OS with GDM instead of the minimal install, then this guide is not fully applicable!</span>


Now perform a default install.
Now perform a default install.


* '''When asked during the installation, please set „xbmc” as username and password at the account creation.'''
* '''please set „xbmc” for username and also for password when asked during the installation'''


* At the end, when you have to choose from the optional components, check only „OpenSSH” to be able to access your HTPC remotely via SSH.
* When you have the option to choose from the optional components during the installation, check only „OpenSSH” to be able to access your HTPC remotely later via SSH.


''Apparently there seems to be an issue with '''''Intrepid''''' installer. If you are using flash drive, it's not installing GRUB for some reason.'' '''''<BR>This is only affect Intrepid, and only when you are installing it onto a flash drive.'''''
''In case you are using a flash drive (aka. pendrive, usb drive) and choosed '''''Intrepid''''' as base platform, you will facing with a bug in '''''Intrepid''''' installer. In this case the installer won't installing GRUB for some reason.'' '''''<BR>This is only affect Intrepid, and only when you are installing on a flash drive.'''''


''To handle this, you have to options:''
''As a workaround, you have to install Hardy(Ubuntu 8.04) mini.iso first, which is installing GRUB correctly, then immedietly after that, install Intrepid mini.iso over the same flash drive. It will reformat the drive, but GRUB will stay alive on the drive.''
# ''Either install Hardy(Ubuntu 8.04) mini.iso first, which is installing GRUB correctly, then right after that, install Intrepid mini.iso over the same flash drive. It will reformat the drive, but GRUB will stay alive on the drive.''
# ''Second option is that right after Intrepid mini installation, boot up Intrepid mini.iso from the CD again, choose rescue mode, and there you will find an "install GRUB" option.''


After you’ve done, boot it up, then use an SSH application (e.g. putty) to log in remotely from your desktop, using the above created username and password. This way, you will be able to copy/ paste all the steps below. Alternatively you can use console on the htpc too, but then you will have a hard time type in everything.
Once you finsihed the installation, boot up, then use an SSH application (e.g. putty) to log in remotely from your desktop using the above created username and password. This way, you will be able to copy/ paste all the steps below. Alternatively you can use the console of the htpc itself too, but then you will have a hard time typing in everything.


So once you logged in:
So once you logged in:




'''First of all, update the repositories, and install all prerequisites:'''
'''First of all you need to install all XBMC prerequisites:'''


'''NEXT STEP'''
<div style="height: 32px; border: thin inset black; background: #E6E6FA">
# sudo apt-get update
</div>


'''NEXT STEP Hardy''' - <span style="color:red">Skip this and jump to '''''NEXT STEP Intrepid''''', if you are installing Intepid</span> <BR>
'''NEXT STEP Hardy''' - <span style="color:red">Skip this and jump to '''''NEXT STEP Intrepid/ Jaunty''''', if you are installing Intepid or Jaunty</span> <BR>
<div style="height: auto; width: 1000px; overflow:auto; border: thin inset black; background: #E6E6FA">
<div style="height: auto; width: 1000px; overflow:auto; border: thin inset black; background: #E6E6FA">
  # sudo apt-get --purge autoremove -y nvidia-kernel-common linux-restricted-modules-generic linux-restricted-modules-common linux-restricted-modules-2.6.24-23-generic
  # sudo apt-get --purge autoremove -y nvidia-kernel-common linux-restricted-modules-generic linux-restricted-modules-common linux-restricted-modules-2.6.24-23-generic
</div>
</div>


'''NEXT STEP Hardy''' - <span style="color:red">Skip this and jump to '''''NEXT STEP Intrepid''''', if you are installing Intepid</span> <BR>
'''NEXT STEP Hardy''' - <span style="color:red">Skip this and jump to '''''NEXT STEP Intrepid/ Jaunty''''', if you are installing Intepid or Jaunty</span> <BR>
<div style="height: auto; width: 1000px; overflow:auto; border: thin inset black; background: #E6E6FA">
<div style="height: auto; width: 1000px; overflow:auto; border: thin inset black; background: #E6E6FA">
  # sudo apt-get install -y linux-headers-generic localepurge subversion make g++ gcc gawk pmount libtool nasm automake cmake gperf unzip bison libsdl1.2-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libsdl-sound1.2-dev libsdl-stretch-dev libfribidi-dev liblzo-dev libfreetype6-dev libsqlite3-dev libogg-dev libasound-dev python-sqlite libglew-dev libcurl4-gnutls-dev x11proto-xinerama-dev libxinerama-dev libxrandr-dev libxrender-dev libmad0-dev libtre-dev libogg-dev libvorbis-dev libmysqlclient15-dev libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev libjasper-dev libfontconfig-dev libbz2-dev libboost-dev libfaac-dev libenca-dev libxt-dev libxmu-dev libpng12-dev libjpeg-dev mesa-utils libcdio-dev wget zip curl hal build-essential linux-headers-`uname -r` xorg pm-utils
  # sudo apt-get install -y linux-headers-generic localepurge subversion make g++ gcc gawk pmount libtool nasm automake cmake gperf unzip bison libsdl1.2-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libsdl-sound1.2-dev libsdl-stretch-dev libfribidi-dev liblzo-dev libfreetype6-dev libsqlite3-dev libogg-dev libasound-dev python-sqlite libglew-dev libcurl4-gnutls-dev x11proto-xinerama-dev libxinerama-dev libxrandr-dev libxrender-dev libmad0-dev libtre-dev libogg-dev libvorbis-dev libmysqlclient15-dev libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev libjasper-dev libfontconfig-dev libbz2-dev libboost-dev libfaac-dev libenca-dev libxt-dev libxmu-dev libpng12-dev libjpeg-dev mesa-utils libcdio-dev wget zip curl hal build-essential linux-headers-`uname -r` xorg pm-utils
</div>
</div>


'''NEXT STEP Intrepid'''<BR>
'''NEXT STEP Intrepid/ Jaunty'''<BR>
<div style="height: auto; width: 1000px; overflow:auto; border: thin inset black; background: #E6E6FA">
<div style="height: auto; width: 1000px; overflow:auto; border: thin inset black; background: #E6E6FA">
  # sudo apt-get install -y localepurge subversion make g++ gcc gawk pmount libtool nasm automake cmake gperf unzip bison libsdl1.2-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libsdl-sound1.2-dev libsdl-stretch-dev libfribidi-dev liblzo-dev libfreetype6-dev libsqlite3-dev libogg-dev libasound-dev python-sqlite libglew-dev libcurl4-gnutls-dev x11proto-xinerama-dev libxinerama-dev libxrandr-dev libxrender-dev libmad0-dev libtre-dev libogg-dev libvorbis-dev libmysqlclient-dev libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev libjasper-dev libfontconfig-dev libbz2-dev libboost-dev libfaac-dev libenca-dev libxt-dev libxmu-dev libpng12-dev libjpeg-dev mesa-utils libcdio-dev wget zip curl build-essential linux-headers-`uname -r` xorg pm-utils
  # sudo apt-get install -y localepurge subversion make g++ gcc gawk pmount libtool nasm automake cmake gperf unzip bison libsdl1.2-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libsdl-sound1.2-dev libsdl-stretch-dev libfribidi-dev liblzo-dev libfreetype6-dev libsqlite3-dev libogg-dev libasound-dev python-sqlite libglew-dev libcurl4-gnutls-dev x11proto-xinerama-dev libxinerama-dev libxrandr-dev libxrender-dev libmad0-dev libtre-dev libogg-dev libvorbis-dev libmysqlclient-dev libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev libjasper-dev libfontconfig-dev libbz2-dev libboost-dev libfaac-dev libenca-dev libxt-dev libxmu-dev libpng12-dev libjpeg-dev mesa-utils libcdio-dev wget zip curl build-essential linux-headers-`uname -r` xorg xserver-xorg-dev pm-utils
</div>
</div>


Line 82: Line 76:
= Upgrading ALSA (sound driver) to the latest version =
= Upgrading ALSA (sound driver) to the latest version =


I have modified the ALSA upgrade script (available at Ubuntuforums), and now it is working with only “-di” option in our case here (Also on ASUS P5N7A-VM).
To download and use the upgrade script:
 
To download and use the script:


'''NEXT STEP'''<BR>
'''NEXT STEP'''<BR>
Line 102: Line 94:
</div>
</div>


If you are on Intrepid, you have to add the user created at installation to the „audio” group (you don't need to do that in case of Hardy).  
If you are on Intrepid or Jaunty, you have to add your user (the one you've created during the installation) to the „audio” group (you don't need to do that in case of Hardy).  


'''NEXT STEP'''<BR>
'''NEXT STEP'''<BR>
Line 108: Line 100:
  # sudo usermod -a -G audio xbmc  
  # sudo usermod -a -G audio xbmc  
</div>
</div>
('''''Please note:''''' replace „xbmc” with username you installed with)
('''''Please note:''''' replace „xbmc” with username you've installed with)


<BR>
<BR>
You also have to edit the following file to make spdif and/or hdmi work properly:
You also have to edit the following file to make spdif and/or hdmi work properly:


'''NEXT STEP'''<BR>
'''NEXT STEP Hardy/ Intrepid''' - <span style="color:red">Skip this and jump to '''''NEXT STEP Jaunty''''', if you are installing Jaunty</span> <BR>
<div style="height: 32px; border: thin inset black; background: #E6E6FA">
<div style="height: 32px; border: thin inset black; background: #E6E6FA">
  # sudo nano /etc/modprobe.d/alsa-base
  # sudo nano /etc/modprobe.d/alsa-base
</div>
</div>


and add this line to the end:
'''NEXT STEP Jaunty'''<BR>
<div style="height: 32px; border: thin inset black; background: #E6E6FA">
# sudo nano /etc/modprobe.d/alsa-base.conf
</div>
 
 
and add (copy/ paste) this line to the last line of the file:
<div style="height: 32px; border: thin inset black; background: #E6E6FA">
<div style="height: 32px; border: thin inset black; background: #E6E6FA">
options snd-hda-intel model=6stack-dig
options snd-hda-intel model=6stack-dig
Line 148: Line 146:
= Update Video driver =
= Update Video driver =


<span style="color:red">'''These update methods are valid only for those, who are following the guide fully, do not use this at any circumtances, in case you have installed full version of Ubuntu with GDM'''</span>
<span style="color:red">'''These update methods are only applicable for those, who are following the guide step-by-step from the begining. Do not use these at any circumtances in case you have installed full-blown Ubuntu OS with GDM, instead of the minimal one!!!'''</span>


== Nvidia==
== Nvidia==
Line 164: Line 162:
</div>
</div>


In the nvidia installer: accept the License agreement, choose „YES” for „No precompiled kernel interface...”, choose „OK” for „No matching precompiled kernel interface...”, than choose „YES” to update X configuration file, than finally „OK” again at the end.
Within nvidia installer: accept the License agreement, choose „YES” for „No precompiled kernel interface...”, choose „OK” for „No matching precompiled kernel interface...”, choose „YES” again to update X configuration file, then a final „OK” again at the end.


Now you can delete Nvidia installer:
Now you can delete Nvidia installer:
Line 175: Line 173:
=== xorg.conf configuration (Nvidia) ===
=== xorg.conf configuration (Nvidia) ===


If you want your Xorg autodetect the native resolutions from EDID and want to use 24p you have to replace your xorg.conf with this (not guaranteed to work, but should with newer Nvidia cards):
If you want Xorg autodetect the native resolutions of your display from EDID and want to use 24p, you have to replace your xorg.conf with this one(not guaranteed to work, but should with newer Nvidia cards):


'''NEXT STEP'''<BR>
'''NEXT STEP'''<BR>
Line 223: Line 221:
<BR>
<BR>


= Download, compile, and install XBMC from source =
= Download the source from SVN, compile, and install XBMC =
 
To download from SVN:


'''NEXT STEP'''  
'''NEXT STEP'''  
Line 231: Line 231:


In case of Hardy, you will get a certificate warning, accept it permanetly by pressing „P”.
In case of Hardy, you will get a certificate warning, accept it permanetly by pressing „P”.
Wait for downloading XBMC source files, might takes long time, depend on your Internet connection.
Wait until downloading XBMC source files finished. That might take long time, depending on your Internet connection.


'''NEXT STEP'''<BR>
'''NEXT STEP'''<BR>
Line 261: Line 261:
= Autoboot to XBMC =
= Autoboot to XBMC =


<span style="color:red">'''This autoboot method is especially for use with non-GDM installations, do not use this at any circumtances, in case you have installed full version of Ubuntu with GDM'''</span>
<span style="color:red">'''This autoboot method is strictly for use with non-GDM installations, do not use this at any circumtances in case you have installed full-blown ubuntu OS with GDM!!! Again, this is especially for those who are following the guide step-by-step from the begining!!!'''</span>


'''NEXT STEP'''<BR>
'''NEXT STEP'''<BR>
Line 293: Line 293:
  # sudo dpkg-reconfigure x11-common
  # sudo dpkg-reconfigure x11-common
</div>
</div>
And choose "anybody" to run X. Leave the other question on default.
Choose "anybody" to run X. Leave the other question on default.


<BR>
<BR>
Line 299: Line 299:
= Install Lirc =
= Install Lirc =


I've found MS MCE Remotes, listed here: http://www.mythtv.org/wiki/MCE_Remote, are plug & plays, working out of the box. I also found, that there're remotes out there, which instalation are a real pain. The choise is yours. If you have one of the above mentioned MS MCE remotes, the installation is that simple:
MS MCE Remotes - listed here: http://www.mythtv.org/wiki/MCE_Remote - are working plug & play out of the box. So in case you own one of the above mentioned MS MCE remotes, the installation is that simple:


'''NEXT STEP'''<BR>
'''NEXT STEP'''<BR>
Line 306: Line 306:
</div>
</div>


And follow the wizard.
And follow the lirc installation wizard.


<BR>
<BR>
= Power Management =
= Power Management =


To be able to control power management (suspend, shutdown, reboot) from within XBMC, you have to modify PolicyKit.conf to grant privilegies to your user for power management. There is a preprepared PolicyKit.conf for this, you can get it by:  
To have control over power related functions (suspend, shutdown, reboot) from within XBMC, you have to modify PolicyKit.conf to grant privilegies to your user for power management. There is a preprepared PolicyKit.conf for this. You can get it by:  


'''NEXT STEP'''<BR>
'''NEXT STEP'''<BR>
Line 317: Line 317:
  # sudo wget http://217.20.138.65/xbmc/PolicyKit.conf -O /etc/PolicyKit/PolicyKit.conf
  # sudo wget http://217.20.138.65/xbmc/PolicyKit.conf -O /etc/PolicyKit/PolicyKit.conf
</div>
</div>
Please note: if you installed your system with username other than "xbmc" at the begining, you have to modify that in the file.
Please note: if you installed your system with username other than "xbmc" during the installation, you have to modify the file according to the username.




If you wish to enable CPU scaling, install the required packages as the following, but '''don’t forget to enable it in the BIOS as well'''.
If you wish to enable CPU scaling, install the required package below, but '''don’t forget to enable it in the BIOS as well'''.


'''NEXT STEP'''<BR>
'''NEXT STEP'''<BR>
Line 338: Line 338:
</div>
</div>


'''NEXT STEP Hardy''' - <span style="color:red">Skip this and jump to '''''NEXT STEP Intrepid''''', if you are installing Intepid</span> <BR>
'''NEXT STEP Hardy''' - <span style="color:red">Skip this and jump to '''''NEXT STEP Intrepid or Jaunty''''', if you are installing Intepid or Jaunty</span> <BR>
<div style="height: 32px; border: thin inset black; background: #E6E6FA">
<div style="height: 32px; border: thin inset black; background: #E6E6FA">
  # sudo apt-get -y install usplash-theme-ubuntu
  # sudo apt-get -y install usplash-theme-ubuntu
</div>
</div>


'''NEXT STEP Hardy''' - <span style="color:red">Skip this and jump to '''''NEXT STEP Intrepid''''', if you are installing Intepid</span> <BR>
'''NEXT STEP Hardy''' - <span style="color:red">Skip this and jump to '''''NEXT STEP Intrepid or Jaunty''''', if you are installing Intepid or Jaunty</span> <BR>
'''<span style="color:red">CHOICE 1</span> - Downloading spinner-blue'''<BR>
'''<span style="color:red">CHOICE 1</span> - Downloading spinner-blue'''<BR>
<div style="height: 32px; border: thin inset black; background: #E6E6FA">
<div style="height: 32px; border: thin inset black; background: #E6E6FA">
Line 349: Line 349:
</div>
</div>


'''NEXT STEP Hardy''' - <span style="color:red">Skip this and jump to '''''NEXT STEP Intrepid''''', if you are installing Intepid</span> <BR>
'''NEXT STEP Hardy''' - <span style="color:red">Skip this and jump to '''''NEXT STEP Intrepid or Jaunty''''', if you are installing Intepid or Jaunty</span> <BR>
'''<span style="color:red">CHOICE 2</span> - Downloading pulsating-logo'''<BR>
'''<span style="color:red">CHOICE 2</span> - Downloading pulsating-logo'''<BR>
<div style="height: 32px; border: thin inset black; background: #E6E6FA">
<div style="height: 32px; border: thin inset black; background: #E6E6FA">
Line 355: Line 355:
</div>
</div>


'''NEXT STEP Intrepid'''<BR>
'''NEXT STEP Intrepid''' - <span style="color:red">Skip this and jump to '''''NEXT STEP Jaunty''''', if you are installing Jaunty</span> <BR>
'''<span style="color:red">CHOICE 1</span> - Downloading spinner-blue'''<BR>
'''<span style="color:red">CHOICE 1</span> - Downloading spinner-blue'''<BR>
<div style="height: 32px; border: thin inset black; background: #E6E6FA">
<div style="height: 32px; border: thin inset black; background: #E6E6FA">
Line 361: Line 361:
</div>
</div>


'''NEXT STEP Intrepid'''<BR>
'''NEXT STEP Intrepid''' - <span style="color:red">Skip this and jump to '''''NEXT STEP Jaunty''''', if you are installing Jaunty</span> <BR>
'''<span style="color:red">CHOICE 2</span> - Downloading pulsating-logo'''<BR>
'''<span style="color:red">CHOICE 2</span> - Downloading pulsating-logo'''<BR>
<div style="height: 32px; border: thin inset black; background: #E6E6FA">
<div style="height: 32px; border: thin inset black; background: #E6E6FA">
  # sudo wget http://217.20.138.65/xbmc/splash/usplash-pulsating-intrepid.so -O /usr/lib/usplash/usplash-theme-ubuntu.so
  # sudo wget http://217.20.138.65/xbmc/splash/usplash-pulsating-intrepid.so -O /usr/lib/usplash/usplash-theme-ubuntu.so
</div>
</div>
'''NEXT STEP Jaunty'''<BR>
'''<span style="color:red">CHOICE 1</span> - Downloading pulsating-logo'''<BR>
<div style="height: 32px; border: thin inset black; background: #E6E6FA">
Coming soon...
</div>
'''NEXT STEP Jaunty'''<BR>
'''<span style="color:red">CHOICE 2</span> - Downloading pulsating-logo'''<BR>
<div style="height: 32px; border: thin inset black; background: #E6E6FA">
Coming soon...
</div>


'''NEXT STEP'''<BR>
'''NEXT STEP'''<BR>
Line 398: Line 411:
  # sudo sensors-detect
  # sudo sensors-detect
</div>
</div>
There will be a lot of questions here, but you can answer by "enter" key to all of them, '''except the last question'''.
There will be a lot of questions here, but you can answer by "enter" key to all of them except the last question which is "Do you want to add these lines automatically?" At here, you have to type "yes", then enter.'''.
So answer "enter" to all questions, until you see the the question "Do you want to add these lines automatically?" At here, you have to type "yes", then enter.
 


Reboot the computer:
Reboot the computer:
Line 469: Line 482:


= BIOS OEM Splash screen =
= BIOS OEM Splash screen =
Recent motherboards usually featured with the possibility to change to BIOS OEM logo. Below you can find a modified XBMC logo. The format and size of the picture has been modified to fit into the BIOS (ASUS P5N7A-VM), '''''there is no guarantee to work with any other motherboard, but I guess it should work with all boards with newer AMI bioses.'''''
Recent motherboards usually featured with the possibility to change to BIOS OEM logo. Below you can find two modified XBMC logo. The format and size of the picture has been modified to fit into the BIOS (ASUS P5N7A-VM), '''''there is no guarantee to work with any other motherboard, but I guess it should work with all boards with newer AMI bioses.'''''


'''''BE AWARE! I take no responsibility if you brick your motherboard while playing with BIOS.'''''
'''''BE AWARE! Nobody take responsibility if you brick your motherboard while playing with BIOS.'''''


In case of ASUS, you can do it with MyLogo2, which is a bundled tool for your MB.
In case of ASUS, you can do it with MyLogo2, which is a bundled tool for your MB.

Revision as of 18:19, 5 May 2009

Template:XBMC wiki toc Inline

The purpose of this guide is to give a hand to new XBMC users, who want to build a Linux based, dedicated HTPC (Home Theater PC), a true living-room media center computer, but don't have any knowledge and experience in the Linux world.

You will also always have the chance to try XBMC Live to test/demo XBMC Media Center, but if you want to have more control and more customization possibilities, than a Linux installation like in this guide is more suitable.

Note! This guide is currently written for Ubuntu 8.04 (Hardy) and 8.10 (Intrepid) but please feel free to update it for Ubuntu 9.04 (Jaunty) and never Ubuntu versions and adding additional information, however if you do then please still keep the information for installing on older versions versions of Ubuntu.

Introduction

This is a real step-by-step guide, I hope everybody can follow and walk through the whole installation procedure. The guide is based on either Ubuntu 8.04 (Hardy Heron), 8.10 (Intrepid Ibex), or 9.04 (Jaunty Jackalope) as a platform, start with a minimal install and only install the needed components on the top of that.

On the face of it, this guide may seem like a very lengthy process, but it will feel much shorter while you begin following it step-by-step.

Please note:

  • The guide is for using XBMC on a dedicated HTPC, so there is no window manager and/ or any additional applications installed.
  • You need minimum 4GB size Flash drive or harddisk drive to install on.
  • Since you will use this PC only as a media center. I therefor assume that you use digital audio pass-through (S/PDIF or HDMI) to a receiver/amplifier with built-in Dolby Digital (AC3) decoder, and hence I choose NOT to install the dependency libraries for PulseAudio and compile XBMC later without PulseAudio support.
  • Please be aware, if you are installing a full Ubuntu OS with GDM, then the guide will not fully applicable!
  • Please also think twice, if you want to use any of the below sections in it's own, without following the guide step-by-step from the begining

You will get:

  • A dedicated HTPC which auto-boots directly to XBMC Media Center.
  • Latest XBMC SVN version.
  • Upgraded ALSA (audio) driver.
  • Up to date VIDEO (graphics) driver.
  • LIRC (Microsoft MCE Remote will work out-of-the-box, however if you have any other remotes and/or LCD displays then you are on your own to solve the individual LIRC and LCDproc issues).
  • Suspend/resume (works perfectly for example with ASUS P5N7A-VM motherboard using Intrepid).

Known issues:

  • Installations based on Intrepid and Jaunty having video playback performance issues due to an unidentified root cause. You can read more about that in this forum thread.
  • You might have some difficulties with suspend/ resume on Hardy based installations

Preparation

FIRST STEP

Download and burn Ubuntu Hardy/ Intrepid/ Jaunty mini.iso (according to your platform preference) from here:
https://help.ubuntu.com/community/Installation/MinimalCD

Please be aware, if you are choosing to install a full-blown Ubuntu OS with GDM instead of the minimal install, then this guide is not fully applicable!

Now perform a default install.

  • please set „xbmc” for username and also for password when asked during the installation
  • When you have the option to choose from the optional components during the installation, check only „OpenSSH” to be able to access your HTPC remotely later via SSH.

In case you are using a flash drive (aka. pendrive, usb drive) and choosed Intrepid as base platform, you will facing with a bug in Intrepid installer. In this case the installer won't installing GRUB for some reason.
This is only affect Intrepid, and only when you are installing on a flash drive.

As a workaround, you have to install Hardy(Ubuntu 8.04) mini.iso first, which is installing GRUB correctly, then immedietly after that, install Intrepid mini.iso over the same flash drive. It will reformat the drive, but GRUB will stay alive on the drive.

Once you finsihed the installation, boot up, then use an SSH application (e.g. putty) to log in remotely from your desktop using the above created username and password. This way, you will be able to copy/ paste all the steps below. Alternatively you can use the console of the htpc itself too, but then you will have a hard time typing in everything.

So once you logged in:


First of all you need to install all XBMC prerequisites:


NEXT STEP Hardy - Skip this and jump to NEXT STEP Intrepid/ Jaunty, if you are installing Intepid or Jaunty

# sudo apt-get --purge autoremove -y nvidia-kernel-common linux-restricted-modules-generic linux-restricted-modules-common linux-restricted-modules-2.6.24-23-generic

NEXT STEP Hardy - Skip this and jump to NEXT STEP Intrepid/ Jaunty, if you are installing Intepid or Jaunty

# sudo apt-get install -y linux-headers-generic localepurge subversion make g++ gcc gawk pmount libtool nasm automake cmake gperf unzip bison libsdl1.2-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libsdl-sound1.2-dev libsdl-stretch-dev libfribidi-dev liblzo-dev libfreetype6-dev libsqlite3-dev libogg-dev libasound-dev python-sqlite libglew-dev libcurl4-gnutls-dev x11proto-xinerama-dev libxinerama-dev libxrandr-dev libxrender-dev libmad0-dev libtre-dev libogg-dev libvorbis-dev libmysqlclient15-dev libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev libjasper-dev libfontconfig-dev libbz2-dev libboost-dev libfaac-dev libenca-dev libxt-dev libxmu-dev libpng12-dev libjpeg-dev mesa-utils libcdio-dev wget zip curl hal build-essential linux-headers-`uname -r` xorg pm-utils

NEXT STEP Intrepid/ Jaunty

# sudo apt-get install -y localepurge subversion make g++ gcc gawk pmount libtool nasm automake cmake gperf unzip bison libsdl1.2-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libsdl-sound1.2-dev libsdl-stretch-dev libfribidi-dev liblzo-dev libfreetype6-dev libsqlite3-dev libogg-dev libasound-dev python-sqlite libglew-dev libcurl4-gnutls-dev x11proto-xinerama-dev libxinerama-dev libxrandr-dev libxrender-dev libmad0-dev libtre-dev libogg-dev libvorbis-dev libmysqlclient-dev libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev libjasper-dev libfontconfig-dev libbz2-dev libboost-dev libfaac-dev libenca-dev libxt-dev libxmu-dev libpng12-dev libjpeg-dev mesa-utils libcdio-dev wget zip curl build-essential linux-headers-`uname -r` xorg xserver-xorg-dev pm-utils

During the installation of the packages, there will be a popup window to choose your locale languages to let "localepurge" know which locales not to remove in further installations. I would suggest to keep all en_us (3 all together) and your own country locales (again should be 3) as well. Localepurge will save you some space with removing unneccessary languages.

Upgrading ALSA (sound driver) to the latest version

To download and use the upgrade script:

NEXT STEP

# wget http://217.20.138.65/xbmc/AlsaUpgrade-1.0.x-rev-1.16.sh

NEXT STEP

# chmod a+x AlsaUpgrade-1.0.x-rev-1.16.sh


NEXT STEP

# sudo ./AlsaUpgrade-1.0.x-rev-1.16.sh -di

If you are on Intrepid or Jaunty, you have to add your user (the one you've created during the installation) to the „audio” group (you don't need to do that in case of Hardy).

NEXT STEP

# sudo usermod -a -G audio xbmc 

(Please note: replace „xbmc” with username you've installed with)


You also have to edit the following file to make spdif and/or hdmi work properly:

NEXT STEP Hardy/ Intrepid - Skip this and jump to NEXT STEP Jaunty, if you are installing Jaunty

# sudo nano /etc/modprobe.d/alsa-base

NEXT STEP Jaunty

# sudo nano /etc/modprobe.d/alsa-base.conf


and add (copy/ paste) this line to the last line of the file:

options snd-hda-intel model=6stack-dig


reboot the computer:

NEXT STEP

# sudo reboot

Delete the just downloaded ALSA source to free up some disk space:

NEXT STEP

# sudo rm -r /usr/src/Alsa-1.0.19/

Now run alsamixer:

NEXT STEP

# alsamixer

Navigate right with cursor keys until IEC958 and unmute all three of them (IEC958) with „M” key. You should see in case of all three IEC958 a „00” in green background. Press „ESC” to quit from alsamixer.

Update Video driver

These update methods are only applicable for those, who are following the guide step-by-step from the begining. Do not use these at any circumtances in case you have installed full-blown Ubuntu OS with GDM, instead of the minimal one!!!

Nvidia

(For Ati owners: jump to #Ati)

NEXT STEP

# wget ftp://download.nvidia.com/XFree86/Linux-x86/185.19/NVIDIA-Linux-x86-185.19-pkg1.run

NEXT STEP

# sudo sh NVIDIA-Linux-x86-185.19-pkg1.run

Within nvidia installer: accept the License agreement, choose „YES” for „No precompiled kernel interface...”, choose „OK” for „No matching precompiled kernel interface...”, choose „YES” again to update X configuration file, then a final „OK” again at the end.

Now you can delete Nvidia installer:

NEXT STEP

# rm NVIDIA-Linux-x86-185.19-pkg1.run

xorg.conf configuration (Nvidia)

If you want Xorg autodetect the native resolutions of your display from EDID and want to use 24p, you have to replace your xorg.conf with this one(not guaranteed to work, but should with newer Nvidia cards):

NEXT STEP

# sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

NEXT STEP

# sudo wget http://217.20.138.65/xbmc/xorg.conf -O /etc/X11/xorg.conf

(To continue click on: #Download, compile, and install XBMC from source (skip section Ati))


Ati

NEXT STEP

# sudo apt-get install -y cdbs fakeroot dh-make debhelper debconf libstdc++5 dkms

NEXT STEP

# wget http://www2.ati.com/drivers/linux/ati-driver-installer-8-12-x86.x86_64.run

NEXT STEP

# sudo sh ati-driver-installer-8-12-x86.x86_64.run --buildpkg Ubuntu/intrepid

NEXT STEP

# sudo dpkg -i xorg-driver-fglrx_8.561-0ubuntu1_i386.deb fglrx-kernel-source_8.561-0ubuntu1_i386.deb fglrx-amdcccle_8.561-0ubuntu1_i386.deb

NEXT STEP

# rm ati-driver-installer-8-12-x86.x86_64.run  *.deb

xorg.conf configuration (Ati)

Will be discussed later, stay tuned


Download the source from SVN, compile, and install XBMC

To download from SVN:

NEXT STEP

# svn checkout https://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/linuxport/XBMC

In case of Hardy, you will get a certificate warning, accept it permanetly by pressing „P”. Wait until downloading XBMC source files finished. That might take long time, depending on your Internet connection.

NEXT STEP

# cd XBMC

Then configure, compile, and install XBMC:

NEXT STEP

# ./configure --prefix=/usr --disable-pulse

NEXT STEP

# make -j2 (Please note: use only „make”, if you don’t have a dualcore CPU)

This is again, can take quite some time, depending on your CPU speed.

NEXT STEP

# sudo make install


Autoboot to XBMC

This autoboot method is strictly for use with non-GDM installations, do not use this at any circumtances in case you have installed full-blown ubuntu OS with GDM!!! Again, this is especially for those who are following the guide step-by-step from the begining!!!

NEXT STEP

# sudo wget http://217.20.138.65/xbmc/xbmc -O /etc/init.d/xbmc

NEXT STEP

# sudo chmod a+x /etc/init.d/xbmc

NEXT STEP

# sudo update-rc.d -f xbmc defaults

NEXT STEP

# sudo wget http://217.20.138.65/xbmc/runXBMC.sh -O /usr/bin/runXBMC.sh

If you not choosed "xbmc" as your user at the installation, you have to modify this file according to your username.

NEXT STEP

# sudo chmod a+x /usr/bin/runXBMC.sh

NEXT STEP

# sudo dpkg-reconfigure x11-common

Choose "anybody" to run X. Leave the other question on default.


Install Lirc

MS MCE Remotes - listed here: http://www.mythtv.org/wiki/MCE_Remote - are working plug & play out of the box. So in case you own one of the above mentioned MS MCE remotes, the installation is that simple:

NEXT STEP

# sudo apt-get install -y lirc

And follow the lirc installation wizard.


Power Management

To have control over power related functions (suspend, shutdown, reboot) from within XBMC, you have to modify PolicyKit.conf to grant privilegies to your user for power management. There is a preprepared PolicyKit.conf for this. You can get it by:

NEXT STEP

# sudo wget http://217.20.138.65/xbmc/PolicyKit.conf -O /etc/PolicyKit/PolicyKit.conf

Please note: if you installed your system with username other than "xbmc" during the installation, you have to modify the file according to the username.


If you wish to enable CPU scaling, install the required package below, but don’t forget to enable it in the BIOS as well.

NEXT STEP

# sudo apt-get install powernowd


Install Splash

You may want to have a look at du-duke's fantastique splash screens. You can check these here: http://du-duke.blogspot.com/ You can download your choice below.

NEXT STEP

# sudo apt-get -y install usplash libusplash-dev

NEXT STEP Hardy - Skip this and jump to NEXT STEP Intrepid or Jaunty, if you are installing Intepid or Jaunty

# sudo apt-get -y install usplash-theme-ubuntu

NEXT STEP Hardy - Skip this and jump to NEXT STEP Intrepid or Jaunty, if you are installing Intepid or Jaunty
CHOICE 1 - Downloading spinner-blue

# sudo wget http://217.20.138.65/xbmc/splash/usplash-spinner-hardy.so -O /usr/lib/usplash/usplash-theme-ubuntu.so

NEXT STEP Hardy - Skip this and jump to NEXT STEP Intrepid or Jaunty, if you are installing Intepid or Jaunty
CHOICE 2 - Downloading pulsating-logo

# sudo wget http://217.20.138.65/xbmc/splash/usplash-pulsating-hardy.so -O /usr/lib/usplash/usplash-theme-ubuntu.so

NEXT STEP Intrepid - Skip this and jump to NEXT STEP Jaunty, if you are installing Jaunty
CHOICE 1 - Downloading spinner-blue

# sudo wget http://217.20.138.65/xbmc/splash/usplash-spinner-intrepid.so -O /usr/lib/usplash/usplash-theme-ubuntu.so

NEXT STEP Intrepid - Skip this and jump to NEXT STEP Jaunty, if you are installing Jaunty
CHOICE 2 - Downloading pulsating-logo

# sudo wget http://217.20.138.65/xbmc/splash/usplash-pulsating-intrepid.so -O /usr/lib/usplash/usplash-theme-ubuntu.so

NEXT STEP Jaunty
CHOICE 1 - Downloading pulsating-logo

Coming soon...

NEXT STEP Jaunty
CHOICE 2 - Downloading pulsating-logo

Coming soon...


NEXT STEP

# sudo nano /etc/usplash.conf

and set your desired splash resolution, so inserting the following to here. (Please note: this is a FullHD example):

xres=1920
yres=1080

NEXT STEP

# sudo update-initramfs -u


Enable thermal monitoring

To install the necessary package:

# sudo apt-get install -y lm-sensors

Once lm-sensors installed, you have to run sensor detection to identify your sensors:

# sudo sensors-detect

There will be a lot of questions here, but you can answer by "enter" key to all of them except the last question which is "Do you want to add these lines automatically?" At here, you have to type "yes", then enter..


Reboot the computer:

# sudo reboot

After rebooted, check if the sensors are working:

# sensors -u

You should see the output of the sensors here.

XBMC CPU temp detection

To let XBMC detect your CPU temps provided by lm-sensors, you have to edit your advancedsettings.xml and insert the following:

<advancedsettings>
<cputempcommand>sensors|sed -ne "s/Core 1: \+[-+]\([0-9]\+\).*/\1 C/p"</cputempcommand>
</advancedsettings>


XBMC GPU (nvidia) temp detection

To let XBMC detect your GPU temps provided by nvidia-settings, you have to edit your advancedsettings.xml and insert the following:

<advancedsettings>
<gputempcommand>echo "$(nvidia-settings -tq gpuCoreTemp) C"</gputempcommand>
</advancedsettings>



Enable eject button of your ODD

# sudo nano /etc/sysctl.conf

and uncomment (by deleting # from the begining of the line) the last line, so it will look like this:

dev.cdrom.lock=0


Reduce boot time

reduce GRUB waiting (~2 sec)

# sudo nano /boot/grub/menu.lst

Find the timeout (currently set to 3) and change this to 0


reduce the number of loaded vts (virtual terminal service)

By default, there're F1 through F7, we don't need that much for a HTPC, so we can remove most of them.

# sudo nano /etc/event.d/tty3

and comment out all the lines, using #. Repeat the above command for tty4-tty6, so at the end you've deactivated 3 vts's.


BIOS OEM Splash screen

Recent motherboards usually featured with the possibility to change to BIOS OEM logo. Below you can find two modified XBMC logo. The format and size of the picture has been modified to fit into the BIOS (ASUS P5N7A-VM), there is no guarantee to work with any other motherboard, but I guess it should work with all boards with newer AMI bioses.

BE AWARE! Nobody take responsibility if you brick your motherboard while playing with BIOS.

In case of ASUS, you can do it with MyLogo2, which is a bundled tool for your MB.

The aspect ratio of the picture is like this for purpose. When your BIOS displays it, it will stretch to fit to the screen. So this is made for 16:9 (not for 4:3, and nor for 16:10)

http://217.20.138.65/xbmc/pwrd_by_xbmc_bios_splash.bmp http://217.20.138.65/xbmc/Splash_oldFor16x9.bmp
Download1 Download2



Wake On Lan

# sudo apt-get install -y ethtool


# sudo nano /etc/init.d/wol.sh

Copy the following text into it, then save the file:

ethtool -s eth0 wol g


Make this newly created script executable:

# sudo chmod a+x /etc/init.d/wol.sh


Make it start during boot:

# sudo update-rc.d -f wol.sh defaults


Sound configuration in XBMC

After booted into XBMC switch to „digital” audio output, than choose the AC3 and DTS capabilities according to your receiver.


For SPDIF:
Leave audio output device: default
Leave passthrough to IEC958
Audio iec958 default 1.jpg

For HDMI:
To have analog and navigation sound working:

# sudo nano /etc/asound.conf


and insert the following lines:

pcm.!default {

   type plug
   slave {
       pcm "hdmi"
   }
}


then save the file.


In xbmc change audio output device to hdmi
Change passthrough to hdmi
Audio hdmi.jpg

MythTV

You may want to have a look at here:

http://wiki.xbmc.org/?title=MythTV