Getting MythTV installed can be accomplished relatively easily as long as some research is done up front, the main things to decide on are:

  • Linux Distribution
  • How many TV's will use this Myth installation
  • What types of channels do you want to Record:
    • HD or SD
    • Over The Air
    • Cable or Satellite provider
    • Both
  • How much disk space will you need, being sure to take in account:
    • Any DVD or Blu-Ray media you may want to import
    • The number of Hours, Days, Months, or Years you want to be able to record
    • Any music you may want to import
    • Any other features you may want to make use of

Planning

The first thing to decide is what Linux Distribution to use, this can be a sensitive subject and is heavily based on personal preferences.
Most distributions have a version of MythTv in their repositories, for the few that don't, you can compile from the source.
I chose Mythbuntu, it's based on the current Ubuntu LTS Release and has several support options including:

Once you've decided on a distribution, you can start looking at hardware requirements to support your use case.
The main things to consider at this point are:

  • How many TV's you have
  • How many TV's might be on, watching LiveTV at the same time
  • How many TV Shows or Movies you want to be able record while watching TV
  • Do you want an Internal (PCI or PCIe) or External (Network Attached) Tuner
If you might want to use a computer to watch Live TV, be sure to include that in the list.

In my case, I have 2 TVs, both of which could be on at the same time and I wanted to be able to record at least 2 shows while watching both TVs, so I decided on a tuner
that supports watching 4 channels at once. Since I'm in the United States, and have CableTV, a CableCard compatible device is the best option. I chose the (now-discontinued)
Ceton InfiniTV4 PCIe, this device has been superseded by the InfiniTV6 PCIe. While this particular model is an internal Tuner Card, you can use
external, network attached, devices like the SiliconDust line of products.
I'm in no position to endorse any tuner device, I can say that both of these models have worked mostly flawlessly since I've had them in service.

A partial list of supported tuner cards can be found on the MythTV Wiki and a more complete list is available on the Linux Tv Wiki

Now that you've had an opportunity to decide on a Tuner, you should research Video and Network Card compatability with your chosen distribution and the kernel it ships with.
A few examples to consider:

For Network cards, the issues are generally down to do you want wired or wireless connectivity, and will need to (re-)compile a driver to make it work.
  Some Realtek network adapters require you compile the Realtek driver to work, one example is the Realtek R8168 that ships integrated with some motherboards.
  Any time you update the kernel you will have to recompile the driver so that it works with the new kernel. If this is not something you want to deal with,
  you can pick up an addon network card or find a builtin one that is known to work well, unfortunately, it can be difficult to find the exact model that is
  integrated with a motherboard until you buy it.

For video cards, the main thing you're looking for is what kind of Hardware video decoding is supported, currently, the following GPU brands are supported:
  NVidia VDPAU
  OpenMax (Included in the Raspberry PI)
  Intel VAAPI
  AMD UVD
In my experience, NVidia has better support with newer cards even supporting full 4K playback in hardware, without relying on your CPU.
For what it's worth, I currently use a GeForce GTX 960 because it supports hardware 4k decoding.

The last thing to determine before you start installing your chosen distribution is how much disk space you need to have to meet your requirements.
  Generally speaking, a HD stream from a cable provider or OTA stream, will consume about 2GB/hour, if you want to store 2 weeks of recordings, you will need 24*14*2=336GB for tv recordings alone.
  DVDs will be 4-9GB uncompressed, and can be as small as 6-800MB after converting to an mp4 format.
  BluRay is significantly larger, with some reports ranging from as small as 18GB and as large as 41GB after conversion.
  The number of of DVD and/or BluRay movies in your collection should be factored in.
  You will also need to take in account for the mysql database MythTV uses to store the TVSchedules, and details about Shows recorded from LiveTV, and imported DVD, Bluray, and music files.
  After almost 3 years with 250+/- dvds imported, 142 Shows, and 1035 episodes recorded, all of the files in my databases' data file directory is less than 50MB.

Since we're talking about Disks, you should decide how you will setup your Disks for filestorage.
  You can use individual disks in an individual or RAID configuration, and the RAID can be hardware or software RAID, depending on what you want to spend.
  I have 4 disks with a mount point (/myth_storage) for each disk under it (/myth_storage/a|b|c|d), this makes things like searching for a file through
  the file system easier because I can just do something like: "ls /myth_storage/?/videos/file.mp4" if I need to see if I've already imported a movie.

Any filesystem supported by the host operating system can be used for your filestore disks, filesystems that are geared torward large files, like xfs and btrfs,
will probably give better performance. There is far more detail about filesystems documented on the MythTV Wiki
I use XFS partialy because btrfs wasn't quite ready when I built the server. Be aware that XFS can be defragmented and it's fragmentation should at least be monitored, I have seen
running a defrag on the XFS filesystems resolve stutters when switching channels and starting LiveTV.

Installation

So you've decided on hardware and a Linux distribution, now you need to install Myth.
Before installing MythTV, make sure your Linux distribution is installed and all drivers are working, including your sound, network, and Tuner Cards.
Then, open a terminal and run the following commands (as root or using sudo) to install myth from the repositories:

  • Mythbuntu:
    • Myth is installed as part of the Mythbuntu installation, the only thing you need to do is enable drivers, and run through mythtv-setup to complete configuration.
  • Ubuntu:
    • sudo apt-get install mythtv
  • Redhat Enterprise Linux 7.2:
    • yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    • subscription-manager repos --enable rhel-7-server-optional-rpms
    • subscription-manager repos --enable rhel-7-server-supplementary-rpms
    • Install maria or mysql database server
      • yum install mariadb
      • mysql_install_db
      • systemctl enable mariadb
      • systemctl start mariadb
        • I had to run "chown -R mysql:mysql /var/lib/mysql/mysql" to get the database server to start
      • mysql_secure_installation
        • make note of the root password set here, you will need it for the mythtv database installation
      • mysql -u root -p
      • create database mythconverg;
      • create user mythtv identified by 'Password1';
        • Please replace Password1 with your chosen mythtv user password
      • Grant ALL Privileges on mythconverg.* to mythtv;
      • Load TimeZone Data:
        • Ensure the timezone files are located at /usr/share/zoneinfo then run:
        • mysql_tzinfo_to_sql /usr/share/zoneinfo|mysql -u root -p mysql
    • Now that the database server is ready, follow the steps below to install the Myth packages.
      • yum install mythtv
      • mythtv-setup
      • Select your Country, click Next
      • Fill in the database connection Details then click Next
      • you should now be prompted to "upgrade" the database, allow the upgrade to continue
      • Select your Country, click Next
      • Fill in the database connection Details then click Next
      • you should now be prompted to "upgrade" the database, allow the upgrade to continue
At this point, the installation should be complete, and you should be in mythtv-setup. Once mythtv-setup configuration is completed, exit and run mythfrontend to start using myth.
Configuration

This part of the setup covers mythtv-setup, accessible from the menu in your Desktop Environment or the command line, by running "mythtv-setup".
I went through the setup using my HDHomeRun Prime so screenshots are based on that device, setup for other devices should be similar.

1. General

The first screen in the General Setup menu is shown below and covers the backend ip and port settings:

You will need to ensure the IPv4 address, Port, Status port, and Master Backend IP, are set to valid values.
For a combined Backend/Frontend using 127.0.0.1 is sufficient, if you will have a remote frontend or serve UPNP/DLNA connections
you will need to ensure these addresses are set to the machines physical IP or hostname instead of localhost. Once done, Click Next.
This is where you configure TV Broadcast details, The settings shown below work for Charter Cable in the US, you may need to adjust
the frequency table for other US providers, or service type.

Click Next
For the most part, the remaining settings in this section can be left to default values. The Screenshots below are taken from my working install
and are for refernece purposes only



The startup and pre-shutdown-check command parameters are used to execute scripts immediately after starting and prior to shutting down.
I've never needed to use them, the rest of these settings can generally be left at default values and click next.



Review these settings, and adjust based on the load when running your backend, for multicore systems, it's probably safe to assign a value 2
less than the number of processor threads. For now you can take the defaults with out any problems.
Click Next



Unless you have a custom guide data script, you can take the defaults here and Click Finish

2. Capture Cards

Capture Card configuration is heavily dependent on which capture card you use, the examples below are based on the HDHomeRun Prime CC (Cable Card). Most HDHomeRuns
will use a similar configruation.

Select "New capture card" and press Enter

Select the tuner you have installed, for HDHomeRun tuners, you will need to do this for each tuner the device supports. In the case of the HDHomeRun Prime, this means
3 times, each time the Tuner will increase starting from 0.
Click Recording Options

Review and be aware of these settings, make any adjustments needed. Usually, the defaults are fine.
Click Finish

Click Finish again.

4. Video Sources

Video Sources provide Guide Data, for (at least) the US the best supported source in my experience is Schedules Direct and they currently charge about $25.00 per year.

Highlight "New video source"
Press Enter

Enter a Name for the video source, select the grabber from the list, and fill any relevant details.
Click the Retrieve Lineups button
When it completes, Click Finish

5. Input Connections

Since you can have multiple Capture Cards, including a capture card for each Over-the-Air amd cable/satellite connections, this section allows you to map
the Capture Card to its video source.

Highlight the listing for your Capture Card
Press Enter

Highlight the Video Source field, then press the right or left arrows to scroll through the list of configured Video Sources
Once you selected the Correct Video Source, Highlight "Fetch Channels from Listings Source" and click Enter
When this completes, Click Next

You can generally take the defaults here.
Click Finish
Repeat for each configured tuner

7. Storage Directories

Storage Directories is your filestore and allows for a great deal of customization and partition management. Each Storage Group allows for multiple paths across multiple partitions,
disks, RAID Arrays, or shares.

Highlight Default

mythfilldatabase

From a terminal window run:
mythfilldatabase

Once this completes, you'll be ready to start mythbackend :

systemctl enable mythbackend
systemctl start mythbackend

after the first start, run:
Netstat -an |grep 6543
Ensure you see output similar to the following:


If not, check /etc/mythtv/config.xml and ensure it looks like the following:
<Configuration>
    <LocalHostName>my-unique-identifier-goes-here</LocalHostName>
    <Database>
        <PingHost>1</PingHost>
        <Host>localhost</Host>
        <UserName>mythtv</UserName>
        <Password>Password1</Password>
        < DatabaseName>mythconverg</DatabaseName>
        <Port>3306</Port>
    </Database>
    <WakeOnLAN>
        <Enabled>0</Enabled>
        <SQLReconnectWaitTime>0</SQLReconnectWaitTime>
        <SQLConnectRetry>5</SQLConnectRetry>
        <Command>echo 'WOLsqlServerCommand not set'</Command>
    </WakeOnLAN>
    <UPnP>
        <UDN>
          <MediaRenderer>d76fd337-ebc9-45a0-93dd-7d07235c5d89</MediaRenderer>
        </UDN>
    </UPnP>
</Configuration>

If it doesn't, a copy of this file should be updated in the home directory of the user that ran mythtv-setup, usually under
/home/<user>/.mythtv/config.xml. Copy this file over the default that is in /etc/mythtv/config.xml and restart the mythbackend service.
If it still doesn't start, logs can be found under /var/log/mythtv/mythbackend.log

mythfrontend

Launch mythfrontend, either from a terminal window, by running:
    mythfrontend
or the desktop menu
Select Setup
Select Setup Wizard
This will send you through the audio and video setup options and give you the opportunity to test both
Once testing succeeds and you are done with the setup wizard, you can start watching LiveTV

Now that you (hopefully) have a working MythTv install, stop into the Forums, IRC Channels, or Wiki for help, more details, feedback, or just to say Hi