Note: Version 0.24 requires also ''' libfreetype6-dev'''; not required but advised: '''yasm''', '''ccache'''.

Note: Version 0.21 and earlier use QT3 instad of QT4, so you need: '''libqt3-mt-dev''' and '''libqt3-mt-mysql'''.

Note: Version 0.21 and earlier use QT3 instad of QT4, so you need: '''libqt3-mt-dev''' and '''libqt3-mt-mysql'''.

+

To install css support use:

To install css support use:

<code><pre>

<code><pre>

/usr/share/doc/libdvdread3/install-css.sh

/usr/share/doc/libdvdread3/install-css.sh

+

</pre></code>

+

or on newer distributions:

+

<code><pre>

+

/usr/share/doc/libdvdread4/install-css.sh

</pre></code>

</pre></code>

Line 42:

Line 49:

==Getting and compiling the source code==

==Getting and compiling the source code==

−

Get the latest code of MythTV. For stable code use the 0-21-fixes (advised) for the latest bleeding edge use trunk.

+

Get the [http://code.mythtv.org/trac latest code] for MythTV. In general, you should probably choose the stable version. If you don't mind if your MythTV system is non-functional or has serious bugs that may prevent proper operation/result in lost recordings or inability to play back recordings, you may try using the unstable, development code. If using unstable, development code, you should follow the [http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-commits mythtv-commits] and [http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev mythtv-dev] mailing lists.

+

Then, simply go in each directory and configure and build each component:

+

<code><pre>

+

./configure --enable-proc-opt

+

make

+

make install

+

</pre></code>

−

'''0-21-fixes:'''

+

Note that adding any other configure arguments (with the possible exception of --prefix) to the main MythTV configure command is almost definitely a bad idea and shouldn't be required.

For mythplugins, if you don't want some modules you might want to disable them (run "./configure --help" in each directory to see the options you can set for the build).

−

then simply go in each directory and run:

+

For example:

<code><pre>

<code><pre>

−

./configure

+

./configure --disable-mythgame --disable-mythnetflix

make

make

make install

make install

</pre></code>

</pre></code>

−

if you don't want some modules you might want to disable them in mythplugins (i.e., phone and flix support)

+

Note: If you want to be able to easily uninstall later, for example to update to new set of fixes, use "checkinstall" rather than "make install". "checkinstall" keeps track of all files installed by a "make install" or equivalent, creates a Slackware, RPM, or Debian package with those files, and adds it to the installed packages database, allowing for easy package removal or distribution. "checkinstall" will prompt for a package description, and then you must supply a version number by following the prompts.

<code><pre>

<code><pre>

−

./configure --disable-mythphone --disable-mythnetflix

+

./configure

+

make

+

checkinstall

</pre></code>

</pre></code>

Line 78:

Line 84:

=== MythTV database setup ===

=== MythTV database setup ===

−

You have to create a file for mythtv for databse connections <code>~mythtv/.mythtv/mysql.txt</code>

+

You have to create a file for mythtv for database connections <code>~mythtv/.mythtv/mysql.txt</code>

−

<code><pre>

+

{{Code box|~mythtv/.mythtv/mysql.txt|<pre>

DBHostName=localhost

DBHostName=localhost

Line 120:

Line 126:

#WOLsqlCommand=echo 'WOLsqlServerCommand not set'

#WOLsqlCommand=echo 'WOLsqlServerCommand not set'

−

</pre></code>

+

</pre>}}

Then you have to create a database and let the user set above access it

Then you have to create a database and let the user set above access it

Line 126:

Line 132:

mysql -u root -p

mysql -u root -p

create database mythconverg;

create database mythconverg;

−

create user 'mythtv'@'%';

+

create user 'mythtv'@'%' identified by 'mythtv';

−

create user 'mythtv'@'localhost';

+

create user 'mythtv'@'localhost' identified by 'mythtv';

set password for 'mythtv'@'%' = password('mythtv');

set password for 'mythtv'@'%' = password('mythtv');

set password for 'mythtv'@'localhost' = password('mythtv');

set password for 'mythtv'@'localhost' = password('mythtv');

−

grant all on mythconverg.* to 'mythtv'@'%';

+

connect mythconverg;

−

grant all on mythconverg.* to 'mythtv'@'localhost';

+

grant all privileges on *.* to 'mythtv'@'%' with grant option;

+

grant all privileges on *.* to 'mythtv'@'localhost' with grant option;

flush privileges;

flush privileges;

+

exit;

</pre>

</pre>

Line 152:

Line 160:

</pre></code>

</pre></code>

−

<code><pre>

+

{{Code box|/etc/init.d/mythtv-backend|<pre>

#! /bin/sh

#! /bin/sh

### BEGIN INIT INFO

### BEGIN INIT INFO

Line 263:

Line 271:

exit 0

exit 0

−

</pre></code>

+

</pre>}}

=== Autostarting the frontend in Xubuntu / Ubuntu ===

=== Autostarting the frontend in Xubuntu / Ubuntu ===

Create a file in <code>~/.config/autostart/mythfrontend.desktop</code>:

Create a file in <code>~/.config/autostart/mythfrontend.desktop</code>:

−

<code><pre>

+

{{Code box|~/.config/autostart/mythfrontend.desktop|<pre>

[Desktop Entry]

[Desktop Entry]

Encoding=UTF-8

Encoding=UTF-8

Line 279:

Line 287:

Terminal=false

Terminal=false

Hidden=false

Hidden=false

−

</pre></code>

+

</pre>}}

=== Mythweb ===

=== Mythweb ===

Line 309:

Line 317:

== Something didn't work? ==

== Something didn't work? ==

−

With this you should be able to compile and install mythtv on a new (x)ubunut box. Most problems come with mythtv setup (config files, database initialization etc.) Please refer to the other wiki pages/documentation for info on that. Before doing that It's best to do some investigation yourself.

+

With this you should be able to compile and install mythtv on a new (x)ubuntu box. Most problems come with mythtv setup (config files, database initialization etc.) Please refer to the other wiki pages/documentation for info on that. Before doing that It's best to do some investigation yourself.

The best way to debug problems is to check the output of the backend and frontend tasks:

The best way to debug problems is to check the output of the backend and frontend tasks:

Line 453:

Line 461:

[http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html How to Reset the Root Password]

[http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html How to Reset the Root Password]

Note: Version 0.24 requires also libfreetype6-dev; not required but advised: yasm, ccache.

Note: Version 0.21 and earlier use QT3 instad of QT4, so you need: libqt3-mt-dev and libqt3-mt-mysql.

To install css support use:

/usr/share/doc/libdvdread3/install-css.sh

or on newer distributions:

/usr/share/doc/libdvdread4/install-css.sh

If you want mythweb as well - you need

sudo apt-get install apache2 php5 libapache2-mod-php5 php5-mysql

Getting and compiling the source code

Get the latest code for MythTV. In general, you should probably choose the stable version. If you don't mind if your MythTV system is non-functional or has serious bugs that may prevent proper operation/result in lost recordings or inability to play back recordings, you may try using the unstable, development code. If using unstable, development code, you should follow the mythtv-commits and mythtv-dev mailing lists.

Then, simply go in each directory and configure and build each component:

./configure --enable-proc-opt
make
make install

Note that adding any other configure arguments (with the possible exception of --prefix) to the main MythTV configure command is almost definitely a bad idea and shouldn't be required.

For mythplugins, if you don't want some modules you might want to disable them (run "./configure --help" in each directory to see the options you can set for the build).
For example:

./configure --disable-mythgame --disable-mythnetflix
make
make install

Note: If you want to be able to easily uninstall later, for example to update to new set of fixes, use "checkinstall" rather than "make install". "checkinstall" keeps track of all files installed by a "make install" or equivalent, creates a Slackware, RPM, or Debian package with those files, and adds it to the installed packages database, allowing for easy package removal or distribution. "checkinstall" will prompt for a package description, and then you must supply a version number by following the prompts.

./configure
make
checkinstall

Post-install tasks

Creating the mythtv user

to run MythTV as its own user I created one (so the backend doesnt run as root)

sudo useradd mythtv

MythTV database setup

You have to create a file for mythtv for database connections ~mythtv/.mythtv/mysql.txt

~mythtv/.mythtv/mysql.txt

DBHostName=localhost
# By default, Myth tries to ping the DB host to see if it exists.
# If your DB host or network doesn't accept pings, set this to no:
#
DBHostPing=no
DBHostName=localhost
DBUserName=mythtv
DBName=mythconverg
DBPassword=mythtv
# Set the following if you want to use something other than this
# machine's real hostname for identifying settings in the database.
# This is useful if your hostname changes often, as otherwise you
# will need to reconfigure mythtv (or futz with the DB) every time.
# TWO HOSTS MUST NOT USE THE SAME VALUE
#
LocalHostName=MYCOOLMYTHTVHOST
# If you want your frontend to be able to wake your MySQL server
# using WakeOnLan, have a look at the following settings:
#
#
# The time the frontend waits (in seconds) between reconnect tries.
# This should be the rough time your MySQL server needs for startup
#
#WOLsqlReconnectWaitTime=0
#
#
# This is the number of retries to wake the MySQL server
# until the frontend gives up
#
#WOLsqlConnectRetry=5
#
#
# This is the command executed to wake your MySQL server.
#
#WOLsqlCommand=echo 'WOLsqlServerCommand not set'

Then you have to create a database and let the user set above access it

Something didn't work?

With this you should be able to compile and install mythtv on a new (x)ubuntu box. Most problems come with mythtv setup (config files, database initialization etc.) Please refer to the other wiki pages/documentation for info on that. Before doing that It's best to do some investigation yourself.

The best way to debug problems is to check the output of the backend and frontend tasks:

To check the backend for error messages:

tail -f /var/log/mythtv/mythbackend.log

To check the frontend for errors, you have two options:

1) run it from the command line. You can ALT+TAB to see the output in the terminal window while the frontend is running:

mythfrontend

2) check the frontend log for error messages:

tail -f /var/log/mythtv/mythfrontend.log

System settings

When setting up your HTPC / MythTV system, its best to set the following

For Ubuntu
Volume: the volume control is on the top panel by default. Set this to max.
Power Management: System->Preferences->Power Management - "Put display to sleep when inactive for" move the slider to the far right (never)
Screensaver: System->Preferences->Screensaver - uncheck "Activate screensaver when computer is idle"
System Bell: System->Preferences->Sound - in the "System Beep" tab, uncheck "Enable system beep" and check "Visual System Beep".

Setup MythTV backend preferences and tune TV cards

Open a Terminal Window and type

> mythtv-setup

You will now see the GUI for MythTV to setup the backend server and in particular the channel tuning for our broadcast streams. You will need to set up:

On entering each screen, the cursor is positioned at the bottom right on the "Next" button. The cursor may not be visible. Use the up, down, left, and right cursor keys to make selections. Fields marked with up and down arrows can be modified by pressing the PageUp and PageDown keys or the left and right cursor keys; in some cases, the action is different. For example, when setting times, cursor left and cursor right change the time by minutes, while Page Up and Page Down change by half hours. Some fields, notably text fields, accept direct keyboard input. For many fields, context-sensitive help appears in the bottom part of the screen when you position on the field.

Multiple tuner cards

If you have more than one TV card, you only need to do the channel scan on one of the cards. All cards of the same type should point to the same video source. For example let's say you have two cards both for Freeview (UK Network). Create a Video Source called FreeviewUK, now connect both cards to this Video source.

When you scan for your channels make sure that you put in a frequency that corresponds to the transmitter that you will be receiving from, for instance Crystal Palace. You can find out the frequency on the web for your country and region.

Older TV cards may need all of the parameters from the transmitters tab to be entered, and not just left as "auto". The next version of MythTV (0.19) should have a "blind" scan, and it should just find the channels for you.

Alternatively users in the USA using Schedules Direct can fetch there lineups form Schedules Direct in Input Connections to automatically configure channel lineups.

Create a user called mythtv and do all of the following steps as this user

Its a good idea to run these from a terminal window to start with, so we can see that everything is as it should be. Once all has been set up and complete, then we can run mysql/mythbackend/frontend as background server processes.

Start system services

We need to have both "mysql" and "mythbackend" running on startup

openSUSE

Start YaST -> System ->System Services ( RunLevel)

Select mysql click "enable" Click OK after popup dialog

Select ntp click "enable" Click OK after popup dialog

Notice there is a mythbackend option, would suggest that you do not enable "mythbackend" just yet, until you have tried running in a terminal window as below. If all steps below work then enable this to run.

Setup mysql database mythconverg

Set the root password for the mysql database. (replace mysqlpassword with your own)

Open a Terminal window

> mysqladmin -u root password mysqlpassword

Setup the initial database.
Note - the mc.sql file should have been installed along with the mythtv documentation onto your system. The default location for this file is shown below, however it may have been relocated elsewhere according to your distribution's documentation rules, so you may have to use a search (find, locate, etc) tool to reveal its whereabouts.
Suse 11.0 -- mc.sql is at "/usr/share/doc/packages/mythtv-doc/database/mc.sql"
(The following command will prompt for password)