Difference between revisions of "Xbox Frontend Compile with SVN"

From MythTV Official Wiki
Jump to: navigation, search
(Install subversion and MythTV source code)
(Compile MythTV)
Line 165: Line 165:
  
 
==Compile MythTV==
 
==Compile MythTV==
 
+
cd mythtv
 
  qmake mythtv.pro  
 
  qmake mythtv.pro  
 
  make qmake  
 
  make qmake  

Revision as of 23:53, 3 March 2006

Credits

  • based on the email by AJM who noted down the steps he used
  • original WIKI by Richard Dale Feb 2006

WARNING: This is not working yet

After installing the dependencies for building MythTV (apt-get build-dep mythtv) and performing a reboot, X Windows no longer works. The following error message appears on screen (this is quite normal in Xebian) :

Linux agpgart interface v0.99 (c) Jeff Hartmann
agpgart: Maximum main memory to use for agp memory: 25M
agpgart: Unsupported NVIDIA chipset (device id: 02a5), you might want to try agp_try_unsupported=1.

but X Windows does not start - it keeps looping and you see this error message every second or so.

If you know how to get X Windows to work beyond this point update this HOWTO and remove this section.

Update 20060222: Try using xfree86 not xserver-org during the installation of the myth dependencies - this is yet to be confirmed

Until this problem pesolved, the steps below WILL NOT WORK

Update 20060304: Marillat problems. All we needed to do was use FTP not HTTP to access the Marillat server. However the build-dep mythtv packages are no longer there - we're working on the dependencies now


Xbox Frontend Compile with SVN HOWTO

This HOWTO assumes that you are using the Xebian 1.1.4 xbox edition.


Install Xebian 1.1.4

Use the Xebian Howto for details.

Approximate time needed for this step: 30 minutes

Xebian Stable - Run an update then an upgrade

Approximate time for this step: 15 minutes (requires around 90MB of downloads)

By default, Xebian 1.1.4 uses the stable respositories. Let's get all of the modules updated in the stable distribution then upgrade any stable modules too. To do this update then upgrade, Xebian looks at the file /etc/apt/sources.list then contacts the Internet to download the modules.

Xebian 1.1.4 is based upon Debian 3.1. Unfortunately Xebian didn't update the apt sources correctly to remove the Debian non-US sources which are now obsolete. Xebian appears to have the .AT (Austrian) mirrors preconfigured too.

You should be logged in as root.

If you are in the US, edit the file /etc/apt/sources.list so it looks like this:

 deb http://http.us.debian.org/debian/ stable main contrib non-free
 deb-src http://http.us.debian.org/debian/ stable main contrib non-free
 deb     http://security.debian.org/ stable/updates main contrib non-free
 deb-src http://security.debian.org/ stable/updates main contrib non-free

If you not in the US, it will be far quicker if you use a local mirror site. See the Debian Mirrors page.

For example, in Australia, I use:

 deb http://ftp.ii.net/debian/debian/ stable main contrib non-free
 deb-src http://ftp.ii.net/debian/debian/ stable main contrib non-free
 deb     http://ftp.ii.net/debian/debian-security/ stable/updates main contrib non-free
 deb-src http://ftp.ii.net/debian/debian-security/ stable/updates main contrib non-free


After modifying the sources, run:

apt-get update

then

apt-get upgrade

During the upgrade, you will be asked whether you wish to Use the kernel framebuffer device interface for xserver-xfree86. Say Yes. Here's why: The Xebian 1.1.4 distribution had it enabled in the file /etc/X11/XF86Config-4, so we think you should too.

Upgrade to the unstable (sid) branch of Xebian

In this step we upgrade Xebian to the unstable aka sid branch of Xebian, and also add the testing branch too. This unstable (development) branch is required for us to compile MythTV SVN. We will also add the Marillat source, which is required for MythTV.

IMPORTANT UPDATE 20060228: The debian-marillat source is no longer available for the latter build-dep stages - we're trying to figure out how to replace it

Edit /etc/apt/sources.list and add the following lines if you are a US user:

 deb http://http.us.debian.org/debian testing main contrib non-free
 deb-src http://http.us.debian.org/debian/ testing main contrib non-free
 deb http://http.us.debian.org/debian/ sid main contrib non-free
 deb-src http://http.us.debian.org/debian/ sid main contrib non-free

 deb ftp://ftp.nerim.net/debian-marillat/ sid main
 deb-src ftp://ftp.nerim.net/debian-marillat/ sid main

If you're a non-US see the previous step for mirror sites. eg. For Australia, I used:

 deb http://ftp.ii.net/debian/debian/ testing main contrib non-free
 deb-src http://ftp.ii.net/debian/debian/ testing main contrib non-free
 deb http://ftp.ii.net/debian/debian/  sid main contrib non-free
 deb-src http://ftp.ii.net/debian/debian/ sid main contrib non-free

 deb ftp://ftp.nerim.net/debian-marillat/ sid main
 deb-src ftp://ftp.nerim.net/debian-marillat/ sid main

Then run:

apt-get update

and then:

apt-get upgrade

During the upgrade process, you'll be presented with a list of notes. Hit q to exit the notes screen. You'll also be asked whether you wish to maintain your existing configuration for files such as /etc/issue, /etc/issue.net etc. Hit Enter (ie keep your currently-installed version) on all of these questions.

At this time, it may be an opportune time to backup your Xbox Xebian file system so you don't need to go through the above steps and downloads in the event of something bad happening. If you used the GameSave partition in the Xebian installation, you can boot back to your dashboard (which hopefully has an FTP server) then transfer the rootfs file from E:\debian\ to somewhere else.

Approximate time for this step: 30 minutes (55MB of downloads)

Install dependencies for building MythTV

MythTV relies on a number of libraries (eg for displaying graphics images, decoding MP3 soundtracks etc.). We can run the following to get most of the dependencies:

apt-get build-dep mythtv

During this process you will be asked which X server to use. Make sure you select xfree86 NOT xserver-org

Then reboot for good measure since many of the fundamental libraries have been upgraded.

shutdown -r now

After this run:

apt-get upgrade

The following needs probably needs be run as well:

apt-get install xfonts-base xfonts-100dpi xfonts-75dpi xfonts-scalable qt3-dev-tools 
apt-get install libqt3-mt-dev libqt3-compat-headers libqt3-i18n imlib1 libc6-dev libncurses5-dev 
apt-get install alsa-base alsa-utils alsa-oss udev g++ xmltv libasound2-dev

These may also need installing but for now we have no idea which source they come from:

??? apt-get install libmp3lame-dev libmp3lame0  ???

Approximate time for this step: 30 minutes (100MB downloaded)

Install subversion and MythTV source code

Install subversion on the Xbox:

apt-get install subversion

Download MythTV source code SVN, plugins and themes /usr/src directory

 cd /usr/src
 mkdir mythtv
 cd mythtv
 svn co http://svn.mythtv.org/svn/trunk/mythtv 
 svn co http://svn.mythtv.org/svn/trunk/mythplugins
 svn co http://svn.mythtv.org/svn/trunk/myththemes

Install distcc (optional, but recommend)

The Xbox is underpowered and lacking RAM to do compiling. By using distcc we can use the resources of other Linux boxes on the network to compile MythTV.

Install distcc on your xbox by:

apt-get install distcc

You can run start the distccd by:

distccd --daemon --allow 127.0.0.1

Install distcc on each of your other Linux systems. The binaries are small and can be downloaded from here. I had success with the Red Hat/Fedora DistCC RPMS

On each of your other Linux systems run the distcc server - note that this does not need to be run as root.

distccd --daemon --allow <insert xbox ip address>

On the Xbox that has the source code type

export DISTCC_HOSTS='localhost computer1 computer2' 

Replace computer1, computer2, etc., with the names of the computers or IP's on your network running the distcc server (distccd).

For future reference when you want to use distcc just add -j6 CC=distcc onto the make statement parameters.

Compile MythTV

cd mythtv
qmake mythtv.pro 
make qmake 

If you are using distcc from the previous step:

make -j 6 CXX=distcc 

otherwise:

make

Install MythTV

make install