Opensuse 10.2

From MythTV Official Wiki
Revision as of 03:26, 6 January 2008 by Bernard S. Jansen (Talk | contribs)

Jump to: navigation, search
Other openSUSE version

Contents

Introduction

Myth suse.jpg

SUSE Linux, one of the oldest Linux distributions, was originally developed by a German company. SuSE is an acronym in the German language for “Software und System-Entwicklung” which translates as software and system development.

The openSUSE project is a community program sponsored by Novell. With the launch of the openSUSE project, openSUSE is now developed in an open model—public development builds, releases, and sources will be posted frequently and users will have access to the Bugzilla database for defect reporting.

For rich, reliable and secure home computing like mythTV, there's no better choice than openSUSE10.2. It features an easy-to-install Linux operating system that includes most of the required mythTV components standard in the box. While the official mythTV documentation attempts to be as distribution-agnostic as possible, this document is geared specifically toward building a mythTV system on the openSUSE 10.2 Linux distribution.

openSUSE 10.2, in combination with the PackMan (thanks Herbert Graeber for building the rpm's) repository, provides you with an easy installation and all the latest packages of the mythTV rpms, ivtv, lirc, xmltv, php, mysql, mplayer, xine and many more that are necessary for a fully functional mythTV box.

Webpage.png - openSUSE 10.2 official documentation

Webpage.png - System requirements for openSUSE 10.2

Webpage.png - All packages included in openSUSE 10.2

While mythTV can take quite some time to install, the result will be a fast box that can do nearly anything to entertain. Furthermore, the system is incredibly reliable, and if you leave it on, you can expect runtimes that last for years with little to no maintenance to be done (aside from updates if desired). We've also experienced that the WAF (Wife Acceptance Factor) for mythTV is enormous. As soon as you start playing with it, you need a second box because it becomes the most mission critical system in your house. I hope this document will help you in your quest for your ultimate mythbox. Remember this: "MythTV can be a time machine; hours can disappear for no reason at all."


Initial System Setup and Package Installation

Installing mythTV all starts with good hardware. The first requirement is a machine capable of running openSUSE 10.2 x86 or x86-64 (Linux kernel 2.6.18.2) and that can be connected to the Internet. You will also need a decent audio card and a video card, a hard drive with as much storage space as you desire, as well as a TV tuner capable of performing hardware-level video encoding. Many people run mythTV without any problems on older hardware; however, if you are planning on doing anything with high definition video or complex transcoding jobs, you will need to have sufficient memory and processing power. Check this wiki and the mailinglist before you purchase any new hardware.

You might also find it useful to look at http://www.silentpcreview.com/ if you build a machine for your living room, in order to get advice on low power-consumption, low noise setups.


Get your hands on an openSUSE 10.2 DVD or CD set. It can be downloaded from the opensuse download site. If you are doing a fresh install, to save some time, you can pre-install some of the package requirements listed in the package section come on the CD/DVD and could be installed with the rest of the OS.

Download.png - download openSUSE

openSUSE 10.2 uses ext3 as the default filesystem (earlier SUSE Linux versions use ReiserFS). I suggest you use ext3 as your default file system. If you want to use something other than ext3 for your /video partition, I suggest XFS because it can handle large files very well.

Webpage.png - A good article for you to start in setting up your openSUSE system, Hacking openSUSE 10.2


NTP - Network Time Protocol

NTP is a protocol designed to synchronize the clocks of computers over a network. To get the correct start and stop times for programming, it's very important to setup NTP.

Time.png



1. Enable NTP to get through the firewall.

YaST -> Security and Users -> Firewall -> Allowed Services -> NTP Server -> Add -> Next -> Accept 

2. Configure the NTP Client

YaST -> Network Services -> NTP Configuration

3. Ignore the warning when selecting Automatically start, there is no significant delay.

NTP daemon -> During Boot -> Finish

4. Add servers per recommendation at http://www.pool.ntp.org/use.html

5. Ensure NTP is set to start at boot time. It should say "Yes" beside "ntp"

System -> System Services (Runlevel) -> ntp

There is more info on NTP at http://www.pool.ntp.org

YaST Sources and Package Installation

Add the following External YaST Repository to your Installation Sources.

yast --> Software --> Installation Source --> Add

There, first select HTTP for the protocol and on the next page, enter the server and the directory as listed below.

Add PackMan as an installation source. If this source is misspelled, you will be waiting forever for it to time out. Be sure to double check your spelling before pressing "Accept".

Protocol - HTTP
Server name - packman.iu-bremen.de
Directories - /suse/10.2

General openSUSE 10.2 installation sources can be found at the openSUSE website.

To add PackMan from the commandline and the openSUSE 10.2 online source, first, su to root ("su -root") then run the following commands:

rug service-add http://packman.iu-bremen.de/suse/10.2 --type=ZYPP "PackMan"
rug service-add http://download.opensuse.org/distribution/10.2/repo/non-oss/ --type=ZYPP "openSUSE-10.2-non-oss"
rug service-add http://download.opensuse.org/distribution/10.2/repo/oss/ --type=ZYPP "openSUSE-10.2"
Package.png


This is an Installation Source that contains the packages required in the next section. Use YaST to search for all of the packages listed below. Packages could also be installed from the commandline as follows. Replace ivtv-kmp-default with the version that matches your kernel. Examples are ivtv-kmp-smp and ivtv-kmp-bigsmp. Execute 'uname -r' to determine what you are running.

Information.png Tip: To install all mythtv package, just start YaST and goto [Software] -> [Software Management] search for mythtv and install all mythtv packages.


Alternative way to install the packages
sudo /sbin/yast -i mythtv-frontend mythtv-backend mythtv-setup mysql ivtv ivtv-kmp-default MPlayer libxine1


NOTE: Another good way to perform installations is with SMART. Some have found it to be much better at package management. For instructions on setting up SMART for openSUSE 10.2 (which comes with the PackMan repositories by default), visit the SMART page of the SUSE wiki.

Missing Packages

From time to time required packages disappear from repositories. Normally, they re-appear in a day or so. However, there are two packages that have not showed up for some time in the packman repository. If you are wanting to install "transcode" and/or "mythMusic", there are two packages you may have to manually download, "pvm3" and "libcdaudio". This sections demonstrates how to go about installing them on a 32-bit system.

Download.png - 32 bit - libcdaudio (download the most current 686 version

Download.png - 32 bit - pvm-3.4.5-3.i586

Download.png - 64 bit - libcdaudio (If 10.2 is not available, use the 10.1 version)

Once they are downloaded, install each of them with YaST

Right-click on the rpm file --> Actions --> Install with Yast	 

Yast will automatically install them and then exit when it is finished. This should only take a minute or two for each one.

After these are installed, you should not have any missing requirements during the full mythTV package installation... "should not". :)


mythTV and Plug-in Dependencies

The following packages are prerequisites to the mythTV packages. Verify that they are either installed or install them through yast --> Software --> Software Management

The bolded packages are available on the 10.2 installation media and can be selected during the OS installation, or can be installed now if your OS is already running. The non-bolded requirements need to be retrieved from another YaST installation source.

alsa, audit-libs, dvb, flac, gcc, ivtv, kernel-source, libao, libdvdread, libid3tag, lirc
mjpegtools, mysql, php5, python, xine-ui, xmms, fame, libcdaudio, libfame, lame, MPlayer,
phpmyadmin, pvm, transcode, w32codec-all, xmltv, xvid

mythTV Packages
These are the actual mythTV packages that need to be installed.

libmyth, libmyth-devel, mythtv-backend, mythtv-debuginfo, mythtv-frontend,
mythtv-setup, mythtv-themes

mythTV Plug-ins
These are plug-ins that are written for mythTV. You can install any you find of interest. If you are unsure of which you want, you can choose to install them all.

mytharchive, mythbrowser, mythcontrols, mythdvd, mythflix, mythgallery, mythgame, mythmusic, 
mythnews, mythphone, mythplugins, mythplugins-debuginfo, mythvideo, mythweb

Audio setup

Most sound cards are automatically recognized by openSUSE and do not need any specific configuration. Most of the time, everything is auto detected during the installation and usually just works.

Audio.png



Configure digital sound: Configuring_Digital_Sound_with_AC3_and_SPDIF


Configure Capture Card

IVTV, the analogue TV card

mythTV supports a myriad of different video capture cards. Some of the more common cards utilize the IVTV driver, a kernel driver for Linux and a driver for X11 for hardware based on Conexant's CX23415/CX23416 codec chip (such as the Hauppauge PVR 150/250/350/500 models). The recommended analogue Standard Definition Cable (SDC) capture cards are the Hauppauge PVR.

A list of supported cards; Video_capture_card page


The primary resource for IVTV support is the IVTV wiki

openSUSE 10.2 ships with IVTV version 0.8.0-9 and everything is auto detected on the x86 and x86-64 bit version of the OS.

ivtv 0.8.0 (Driver Implementation for iCompression or Conexant Video Capture Cards)

supported tv cards http://en.opensuse.org/HCL/TV_Cards

To check what version is installed, issue the command:

rpm -qa | grep ivtv

Your output should look something like:

ivtv-kmp-default-0.8.0_2.6.18.2_34-9
ivtv-0.8.0-9

The IVTV configuration file on openSUSE 10.2 is /etc/modprobe.d/tv.

To troubleshoot IVTV, check the console output with dmesg in the following manner:

dmesg | grep ivtv

Some of the more common cards that use the ivtv driver are the Hauppauge x50/500 series.

Firmware for IVTV Cards

Warning.png

IVTV-based cards are hardware encoders, but the firmware does not exist in the card itself. Instead, you must point your hardware to an extracted version of the firmware. This is a manual task. You can find more info about using the correct firmware for each card here: http://ivtvdriver.org/index.php/Firmware#Firmware_filenames

It won't hurt you to install the firmware for all the cards; pieces you don't need will remain unused. On openSUSE 10.2, save the firmware in: /lib/firmware

JArpack has an architecture-independent RPM for the firmware that you can install with this command:

sudo rpm -Uhv http://jarpack.com/suse/noarch/ivtv-firmware-0.1-1.noarch.rpm

However, there is no guarantee this link will be valid in the future.

Some linux distributions require you to edit the modprobe.d config file by hand to get the card properly recognized by the kernel; in openSUSE 10.2, however, YaST does this all for you. For reference, the file is listed below. Do not edit it if you don't know what you're doing.

The manual process:

su - root
download this driver file:
http://dl.ivtvdriver.org/ivtv/firmware/firmware.tar.gz

Extract the driver file to /lib/firmware

cd /lib/firmware
tar -xvf /path/to/this/file/firmware.tar.gz

Download this firmware file:

wget ftp://ftp.shspvr.com/download/wintv-pvr_250-350/inf/pvr_1.18.21.22254_inf.zip

Issue these commands to extract the necessary files to the correct location:

/usr/share/doc/packages/ivtv/ivtvfwextract.pl ./pvr_1.18.21.22254_inf.zip
mkdir -p /usr/lib/hotplug/firmware
cp /lib/firmware/v4l-cx2341x-dec.fw /usr/lib/hotplug/firmware

Reload the ivtv module

rmmod ivtv
modprobe ivtv

Check that the firmware and driver was loaded correctly

dmesg | grep ivtv


Hauppauge Cards

NOTE: Before spending a lot of time trying to get your Hauppauge card to work, run this command first and your card should work. This worked perfectly on a PVR-500 and also on a PVR-150. This command is given again under the "Firmware" section later. Open a terminal window and type the following:

sudo rpm -Uhv http://jarpack.com/suse/noarch/ivtv-firmware-0.1-1.noarch.rpm
sudo rmmod ivtv
sudo modprobe ivtv

If your card is now recognized (check "dmesg | more" for errors), you can skip the following Hauppauge sections. If your card does not seem to be working, continue reading more specific information in the following sections regarding your model of card.

Hauppauge WinTV PVR-150

About the PVR-150 -> http://www.hauppauge.com/pages/products/data_pvr150.html

PVR150.jpg

The PVR-150 is a reasonably priced consumer model tuner card. It comes in both a regular edition and an MCE edition--the two are identical cards, but differ only in the included software and the remote control (the original edition comes with a Hauppauge remote and blaster, while the MCE edition can come either without any remote at all or with a Windows Media Center edition remote).

To check and see if ivtv started when you reboot your machine and/or kernel modules are loaded, issue this command:

dmesg | grep "video"

The output should look something like this with a PVR150:

ivtv:  ==================== START INIT IVTV ====================
ivtv:  version 0.8.0 (tagged release) loading
ivtv:  Linux version: 2.6.18.8-0.1-default SMP mod_unload 586 REGPARM gcc-4.1
ivtv:  In case of problems please include the debug info between
ivtv:  the START INIT IVTV and END INIT IVTV lines, along with
ivtv:  any module options, when mailing the ivtv-users mailinglist.
ivtv0: Autodetected Hauppauge WinTV PVR-150 card (cx23416 based)
ivtv0: loaded v4l-cx2341x-enc.fw firmware (262144 bytes)
tveeprom 1-0050: Hauppauge model 26032, rev G1B2, serial# 9812051
tveeprom 1-0050: tuner model is TCL M2523_5N_E (idx 112, type 50)
tveeprom 1-0050: TV standards NTSC(M) (eeprom 0x08)
tveeprom 1-0050: audio processor is CX25841 (idx 35)
tveeprom 1-0050: decoder processor is CX25841 (idx 28)
tveeprom 1-0050: has no radio, has IR remote
tuner 1-0061: chip found @ 0xc2 (ivtv i2c driver #0)
cx25840 1-0044: cx25841-23 found @ 0x88 (ivtv i2c driver #0)
cx25840 1-0044: loaded v4l-cx25840.fw firmware (16382 bytes)
wm8775 1-001b: chip found @ 0x36 (ivtv i2c driver #0)
ivtv0: Encoder revision: 0x02050032
ivtv0: Registered device video0 for encoder MPEG
ivtv0: Registered device video32 for encoder YUV
ivtv0: Registered device vbi0 for encoder VBI
ivtv0: Registered device video24 for encoder PCM audio
tuner 1-0061: type set to 50 (TCL 2002N)
ivtv0: Initialized Hauppauge WinTV PVR-150, card #0
ivtv:  ====================  END INIT IVTV  ====================


If it is different, run 'dmesg | grep ivtv' to look for error messages in initializing the card with the firmware.

General mythTV info about this card can be found at Hauppauge_PVR-150 mythTV wiki page

Hauppauge WinTV PVR-250

About the PVR-250 -> http://www.hauppauge.com/pages/products/data_pvr250mce.html

Pvr250 board.jpg

The PVR-250 card was released before the PVR-150 card, and there is no functional or qualitative difference between the two cards. You are better off going for one of the other cards unless you find a great deal.

General mythTV info about this card can be found at Hauppauge_PVR-250 mythTV wiki page

Hauppauge WinTV PVR-350

About the PVR-350 -> http://www.hauppauge.com/pages/products/data_pvr350.html

The PVR-350 is functionally identical to the PVR-250, with the addition of video out jacks (i.e. it can function as a video card for directly exporting the streams it encodes). Output is either composite or S-Video.

General mythTV info about this card can be found at Pvr350 mythTV wiki page

Other ivtv-based cards include the AVerMedia M179, Yuan MPG160 and Yuan MPG600.

lspci can give you more info on your card and tuner:

lspci | grep -i itv

my output with my Hauppauge WinTV PVR-500 MCE

03:08.0 Multimedia video controller: Internext Compression Inc iTVC16 (CX23416) MPEG-2 Encoder (rev 01)
03:09.0 Multimedia video controller: Internext Compression Inc iTVC16 (CX23416) MPEG-2 Encoder (rev 01)


Hauppauge WinTV PVR-500

About the PVR-500 -> http://www.hauppauge.com/pages/products/data_pvr500mce.html.

Pvr500.jpg

The PVR-500 has two encoders on one card, and is recognized as 2 x 150 cards. openSUSE 10.2 auto detects the card. For the Hauppauge Nova-T 500 MCE (OEM, follow these Hauppauge_WinTV_Nova-T_500_PCI instructions

General mythTV info about the PVR-500 can be found at this Hauppauge_PVR-500 mythTV wiki page

If you are experiencing bad quality pictures with this tuner, you may have what is referred to as a "type b" tuner. The tuners on a "type b" cards have tuners that are made by Samsung and have a reputation for producing a bad quality image. You really want the "type a" tuner. For more information about the differences or to find out which type of card you have, read through the forums on the following website. There is a picture there to show you the difference between the two:

http://forums.snapstream.com/vb/showthread.php?t=33675

If you do have a "type b" card, Hauppauge may replace it. Call their support line for more information on obtaining a replacement. Newer types of the PVR-500 card may have other tuners on board. (Philips, Samsung or other...)

Update: The new ivtv drivers offer good support for the type b tuners get the latests stable release >0.10.0 from http://ivtvdriver.org/index.php/Main_Page make sure you get a 2.6.18 kernel version. Check with dmesg | grep "video" if the new version is loaded. You might want to first remove the existing ivtv packaged.


Warning.png

The firmware for this card is software and acts as the driver. Make sure you follow the THESE steps.


The IVTV settings are stored in /etc/modprobe.d/tv

cat /etc/modprobe.d/tv

Do not edit this file, this is all done by YaST

alias char-major-81 videodev
options i2c-algo-bit bit_test=1
# YaST configured TV card
# Uog3.chCB1CyIbw9:WinTV PVR 150
alias char-major-81-0 ivtv
# YaST configured TV card
# ZvjX.sZc4ePByvkF:WinTV PVR 150
alias char-major-81-1 ivtv
alias char-major-81-2 off
alias char-major-81-3 off

To check and see if ivtv started when the machine was rebooted and/or kernel modules are loaded, issue the following command:

dmesg | grep "video"

The output should be similar to this with a PVR500:

ivtv:  ==================== START INIT IVTV ====================
ivtv:  version 0.8.0 (tagged release) loading
ivtv:  Linux version: 2.6.18.2-34-default SMP mod_unload gcc-4.1
ivtv:  In case of problems please include the debug info between
ivtv:  the START INIT IVTV and END INIT IVTV lines, along with
ivtv:  any module options, when mailing the ivtv-users mailinglist.
ivtv0: Autodetected Hauppauge WinTV PVR-150 card (cx23416 based)
ivtv0: loaded v4l-cx2341x-enc.fw firmware (262144 bytes)
ivtv0: This is the first unit of a PVR500
tuner 1-0043: chip found @ 0x86 (ivtv i2c driver #0)
tuner 1-0060: chip found @ 0xc0 (ivtv i2c driver #0)
tuner 1-0061: chip found @ 0xc2 (ivtv i2c driver #0)
cx25840 1-0044: cx25843-23 found @ 0x88 (ivtv i2c driver #0)
wm8775 1-001b: chip found @ 0x36 (ivtv i2c driver #0)
ivtv0: Encoder revision: 0x02060039
etc..

If it is different, run 'dmesg | grep ivtv' to look for error messages in initializing the card with the firmware.

Checking Analog Device Names

To see how the devices are named by your system, type:

ls /dev/vi* -l

Your output will be similar to: (pvr500)

lrwxrwxrwx 1 root root 6 Dec 29 06:27 /dev/video -> video0
crw-rw----+ 1 root video 81, 0 Dec 29 06:27 /dev/video0
crw-rw----+ 1 root video 81, 1 Dec 29 06:27 /dev/video1
crw-rw----+ 1 root video 81, 24 Dec 29 06:27 /dev/video24
crw-rw----+ 1 root video 81, 25 Dec 29 06:27 /dev/video25
crw-rw----+ 1 root video 81, 32 Dec 29 06:27 /dev/video32
crw-rw----+ 1 root video 81, 33 Dec 29 06:27 /dev/video33

The above is for a PVR-500. Here is what each device corresponds to in this case:

Tuner unit #1: - For your info

/dev/video0 – The encoding capture device (Read-only)
/dev/video24 – The raw audio capture device (Read-only)
/dev/video32 – The raw video capture device (Read-only)
/dev/radio – The radio tuner device
/dev/vbi0 – The "vertical blank interval" (Teletext) capture device


Tuner unit #2: - For your info

/dev/video1 – The encoding capture device (Read-only)
/dev/video25 – The raw audio capture device (Read-only)
/dev/video33 – The raw video capture device (Read-only)
/dev/vbi1 – The "vertical blank interval" (Teletext) capture device


Your cards should now be ready to go.

DVB, the Digital TV Card

For
Dvb.png

devices supported by linux see the following pages on the linuxtv.org wiki.


mythTV wiki DVB page

openSUSE supported tv cards http://en.opensuse.org/HCL/TV_Cards

http://www.linuxtv.org/wiki/index.php/Main_Page

Hauppauge Nova-T

This card should be installed automatically under openSUSE 10.2. It should Just Work™, no installs or config needed.

Hauppauge_WinTV_Nova-T_PCI|Hauppauge_WinTV_Nova-T_PCI mythTV wiki page]]

Hauppauge_WinTV_Nova-T_USB2 mythTV wiki page


Hauppauge HVR-950

This card (USB 2.0 Hybrid) requires a new driver. We found information at http://lunapark6.com/?p=2682 that we needed to modify. The directions may work for you.

Install mercurial via YaST

Login as as root (or sudo su -)

cd /lib/firmware
wget http://konstantin.filtschew.de/v4l-firmware/firmware_v4.tgz
tar xvzf firmware_v4.tgz
hg clone http://mcentral.de/hg/~mrec/v4l-dvb-kernel
cd v4l-dvb-kernel
make
       *if the make fails, chances are it is in v4l/dvb_net.c
           Change xmit_ to _xmit_lock
       * While the above statement was previously true - it seems
          that now you must copy the file /usr/src/linux/include/linux/netdevice.h 
          to  /lib/modules/2.6.18.8-0.5-default/build/include/linux/netdevice.h 
          to get the make to complete successfully.    
make install
reboot

At this point you can look at dmesg to see the the card loaded and is working.

Hauppauge 1300

This card needs Steve Toth's one-year-in-the-making almost-finished V4L drivers installed to get it working. The method is slightly complicated for newbies but the rest of you should find it relatively easy, so long as you do things in the right order.

Start by downloading the contents of the main v4l-dvb repository on linuxtv.org (this link, if you can't find it). I forget exactly what you do then, but it involves making, unloading, loading, installing... something like that. Anyway, the card should work after a restart if it's done properly.

ATI HDTV Wonder

This card almost works out-of-the-box with openSUSE 10.2. It does not use proprietary drivers, but instead open source drivers which are included on the openSUSE 10.2 installation media. If you only have this one HDTV tuner installed in your machine, you should have a device named "/dev/dvb/adapter0/demux0". Continue to this other mythTV page to complete the setup. It has been updated with openSUSE 10.2 specific steps. It should be pretty easy to follow now. It even includes mythtvsetup configuration steps now.

ATI_HDTV_Wonder mythTV wiki page

Leadtek LR6650/ DTV1000 - DVBT PCI

This card works out-of-the-box with openSUSE 10.2. It does not use proprietary drivers, but instead open source drivers which are included on the openSUSE 10.2 installation media. Remote needs custom custom driver. See the the page on this website: http://www.acaciaclose.co.uk/16253/138855.html

MySQL, the Database

Create the Database

mythTV uses MySQL to store store it's settings, listings, recording schedules, and other information. So we have to make sure openSUSE starts MySQL when it boots, and we have to initialize the database with some basic information that mythTV can work with. The database is probably the most important component of mythTV because without it, absolutely none of mythTV can function.

Database.png

openSUSE 10.2 ships with mysql 5.0.26 (A True Multiuser, Multithreaded SQL Database Server)

As root, start mysql by typing

/etc/init.d/mysql start

Watch for errors. Set up a root password by typing

mysqladmin -u root password <yourpasswordhere>

Once MySQL is setup, install the mythTV Database. This is done by running:

mysql -u root -p < /usr/share/doc/packages/mythtv-doc/database/mc.sql

(and key-in the previously entered password) You should see no output - this is a good thing!


By default, the database is named mythconverg and contains a set of tables that interact with one-another.

Information.png

make the database multi user (more than 1 system, please do this)

mysql -u root -p mythconverg

You will then be connected directly to the database. Enter the following commands at the mysql> prompt.

mysql> grant all on mythconverg.* to mythtv@"%" identified by "mythtv";
mysql> flush privileges;
mysql> quit;

mythtvsetup

Once the card is initializing all tuners correctly and the database is ready, you can begin to get mythTV to recognize the card with the following command:

mythtv-setup

Select "New capture card" to setup a new card. The card type should be "MPEG-2 Encoder Card (PVR-x50 / PVR-500)." The video device should be set to /dev/video0, and the default input should be set to the tuner (will be listed as either Tuner 0 or Tuner 1).

If you are configuring a Hauppage PVR-500 card, you also need to configure the second tuner/encoder on the card. Select "New capture card" again and put /dev/video1 and Tuner 0 (or Tuner 1, depending on what it was for the other encoder...in other words, it must use the same Tuner!) in the applicable fields.

This is also where you setup which IP you want the database to run on. If you do not plan on having a separate front end machine, then no changes for this are necessary. If you do want remote frontends, then you need to change the "127.0.0.1" to the IP address of your linux box. You can find your local IP with "ifconfig". Assuming you only have one network card, look at "eth0" for your IP address.

After the cards are ready, start filling the database with programming information!

Fill the Database

The most essential data in your database is the channel mapping: The mythconverg_channel table in the database links/maps the following information

channel number frequency name of the channel XMLTV number

Without this information the EPG (Electronic Program Guide) can not work.


The first thing you should do to get listings into the database is to set up your channels. In mythtv-setup, after you have set up your card, you can configure a video source based on your geographic location. The video source config page has a field for "grabber"; select your country there and mythTV will be ready to run a program called "mythfilldatabase" that will use XMLTV and tv_grab_XX, where XX is your country specific method.

Different countries and providers have different ways of configuring XMLTV. For example, http://graphics.tudelft.nl/~paul/grabber/ describes how to do it in the Netherlands. See the XMLTV wiki page for more info on how to set up tv_grab_XX for your particular country and service provider. The wiki is found at:


See the XMLTV mythTV wiki page and the Mythfilldatabase mythTV wiki page for more info


In North America, Zap2It labs provides an API for XMLTV that can be accessed via "Data Direct." To utilize this option, visit labs.zap2it.com and register for an account (it's free, but you have to register and re-activate your account every three months. Specific information for registering can be found here: here in the official Howto.

NOTE: The free listings from Zap2It will only be available till September 1, 2007. More details can be found on the Data Direct page.

Once you've registered for Data Direct and chosen the listing based on your zipcode and service provider, you can then enter your login name and password back into the "video source" screen in mythtv-setup. This will configure mythfilldatabase to automatically log into zap2it and get your listings when needed.

Now that the video source is set up, you need to use the "Input Connections" screen to associate the video source (with its grabber) to the card. This screen will also let you either scan the tuner for channels or just get the channels directly from the listings source; we recommend the latter, because it will automatically fill the database not just with the channels but with their proper XMLTV-id numbers and callsigns. If you choose to have the tuner automatically scanned, you will then need to go to the "Channel Editor" to manually set that information for each channel.

Finally, you use the "storage directory" screen to set up where you want your recordings to be stored. The directory you choose must either be owned by the user who will be running mythTV or be set to be world-rwx (sudo chmod -R 777 [the name of the directory]).

Once all configurations are done, you can exit mythtv-setup and run "mythfilldatabase" from the command line to get the listings downloaded and imported. This may take a while the first time; be patient. For future listings updates, you can set mythfilldatabase to run as a cron job or you can select the "automatically run mythfilldatabase" option in the setup options of mythfrontend.

Most of the configuration information in this section is not necessarily openSUSE 10.2 specific, but is typical to most versions (and, in fact, most distributions). You can find more information here:

http://www.mythtv.org/docs/mythtv-HOWTO-9.html

Manage the Database

Use phpMyAdmin; php5 and phpMyAdmin are both standard part of openSUSE 10.2

openSUSE 10.2 ships with:

php5 5.2.0 (PHP5 Core Files)

phpMyAdmin 2.9.1.1 (Administration of MySQL over the web)


[b]Add commands for entering database, selecting and viewing tables, and simple deletion of channels. Will do once I'm out of Win XP... --Pepsi max2k 20:52, 8 January 2007 (UTC)[/b]

By default, the database is named mythconverg and contains a set of [tables that interact with one-another.


It's recommended to use phpMyAdmin but this page describes how you can use Microsoft Access to access the database.

Fix the Database

In the contrib directory there is a Perl script to run MYSQL utilities Repair and Optimize on each table in your MythTV database. It is recomended to run it daily from a cron job.

First make sure it is executable:

chmod 755 /usr/share/doc/packages/mythtv/contrib/optimize_mythdb.pl

Execute:

/usr/share/doc/packages/mythtv/contrib/optimize_mythdb.pl

run with your daily cron jobs

Backup & Restore the Database

backup

$mysqldump -u mythtv -p mythtv mythconverg -c > mythtv_backup.sql
Information.png

AutoMySQLBackup is a cool or let's say the ultimate backup script for your mythTV environment.


restore: (assuming that you've dropped the database)

$ mysql -u root
mysql>create database mythconverg;
mysql>exit
$ mysql -u mythtv -pmythtv mythconverg < mythtv_backup.sql

LIRC, the Remote Control

LIRC is a package that allows you to decode and send infra-red signals of many commonly used remote controls. openSUSE 10.2 ships with lirc 0.8.0-41

To use LIRC, you need a working /etc/lircd.conf file for your remote. You can get a lircd.conf for your remote on the http://lirc.org website or create your own file with irxevent and/or mode2, or search the web for a compatible one.

You also need to create a key mapping file in order to use your remote with any programs. With mythTV, this file is /home/user/.mythtv/lircrc and there should be a number of examples on line. Just remember that the key names in lircrc should correspond with the same button names in lircd.conf.


/etc/lircd.conf = Maps remote control scancodes to logic functions (like play, poweroff, pause etc.)

.lircrc = application specific mapping of the remote functions (play, poweroff etc) to the app specific functions for mythTV, mplayer and or Xine


Instead of creating an individual lircrc file for each application, you can create one master file and put symbolic links to this in the appropriate places. The text command for creating a lircrc file in your /home/userid/.mythtv directory, symbolically linked to .lircrc in your home directory, follows:

ln -s ~/.mythtv/lircrc ~/.lircrc

Note that lircd does not get automatically loaded.

lircd does not startup automatically by default after a reboot. Set it up to start up at boot time through YaST (search for "lirc", select it, choose accept, then save).


Remote Control Hardware Information

Remote_Controls page on the mythTV wiki.

ATI Remote Wonder

mythTV uses LIRC for the ATI

See the ATI Remote Wonder mythTV wiki page



MCE (Microsoft)

mythTV uses LIRC for the MCE

See the MCE Remote mythTV wiki page



IMON PAD (Silverstone, Cooler Master)

mythTV uses LIRC for the iMON_PAD

See the IMON mythTV wiki page

Silverstone LC16S-M, Silverstone LC20B, Cooler Master Media 250, Cooler Master Media 260, HT-1100 All IR (Infra-red) OEM products from SoundGraph


.

IR-Blaster support on PVR150

The PVR150 has the ability to change channels on a device (I.E. cable or satellite box) via IR (the same signal a remote control uses). The PRV150 comes with a 3 headed cable. A mini-jack in the middle of the cable connects to PVR150. An IR receiver that allows the PVR150 to receive information from it's remote control is connected to the shortest end. The last end is connect to an IR transmitter.

IR-Blaster is the software that give mythTV the ability to use the IR transmitter.

Most of the information here was obtained from http://www.blushingpenguin.com/mark/blog/?p=24. For the latest information on the procedure detailed below, please visit his site. Like many Open Source developers, Mark writes and maintains this code for the good of the community (tear in my eye). If you use it please consider donating beer money to him. http://www.blushingpenguin.com/mark/blog/?page_id=20

We are going to need to install a special patched version of lirc. The first thing we need to do is remove the existing lirc. When we remove lirc, Yast is going to want to uninstall several other packages that have lirc as a dependency. To stop yast from removing those packages we are going add --nodeps to our remove command.

Install new lirc

Start from a prompt with root rights

Find your existing version of lirc

rpm -qa |grep lirc

my output

lirc-0.8.0-41

Remove lirc

rpm -e --nodeps lirc-0.8.0-41

Prep for the make

cd /usr/src/linux
make cloneconfig
make prepare-all

Download Prepatch 'http://www.blushingpenguin.com/mark/lmilk/lirc-0.8.1-CVS-pvr150.tar.bz2'

Extract to folder

cd lirc-0.8.1-CVS-pvr150 
./setup.sh

From Menu select 1 Driver configuration (driver:hauppauge_PVR150 (SS)

Select 5 TV Card

Scroll down and select "h Hauppauge PVR-150 TV card (new I2C layer required) (SS)

Select 3 Save and run Configure

make
make install

That process installed a new lircd in /usr/local/sbin

Download additional files

Download a master lircd.conf that contains all supported remote codes. Save it as '/etc/lircd.conf' http://www.blushingpenguin.com/mark/lmilk/lircd.conf

Download the IR-Blaster firmware and save it as '/lib/firmware/haup-ir-blaster.bin' http://www.blushingpenguin.com/mark/lmilk/haup-ir-blaster.bin

Download the script that will allow mythTV to change the channels via the IR-Blaster. You configure this script to be called in the somthing section of 'mythtvsetup' http://www.blushingpenguin.com/mark/lmilk/change_channel

Initialize the Device
modprobe lirc_dev && modprobe lirc_pvr150 debug=1
/usr/local/sbin/lircd --device=/dev/lirc0

look at syslog

yast --> Misc --> View System Log
Mar 14 09:30:51 mythtv kernel: lirc_dev: IR Remote Control driver registered, at major 61 
Mar 14 09:30:51 mythtv kernel: lirc_pvr150: no version for "lirc_unregister_plugin" found: kernel tainted.
Mar 14 09:30:51 mythtv kernel: lirc_pvr150: probe 0x70 @ ivtv i2c driver #0: yes
Mar 14 09:30:51 mythtv kernel: lirc_pvr150: probe 0x71 @ ivtv i2c driver #0: yes
Mar 14 09:30:51 mythtv kernel: lirc_pvr150: chip found with RX and TX
Mar 14 09:30:51 mythtv kernel: lirc_pvr150: poll thread started
Mar 14 09:30:51 mythtv kernel: lirc_dev: lirc_register_plugin: sample_rate: 0
Mar 14 09:30:51 mythtv kernel: lirc_pvr150: firmware of size 248009 loaded
Mar 14 09:30:51 mythtv kernel: lirc_pvr150: 637 codesets loaded
Mar 14 09:30:51 mythtv kernel: lirc_pvr150: 01 60 00 01 c7<7>lirc_pvr150: 05 02 04 9d 16<7>lirc_pvr150: 
09 6a bc 13   0f<7>lirc_pvr150: 0d ea f6 6a fa<7>lirc_pvr150: 11 72 be 32 7f<7>lirc_pvr150: 15 91 9e b6     
b<7>lirc_pvr150: 19 2a 7f 06 05<7>lirc_pvr150: 1d 78 73 00 26<7>lirc_pvr150: 21 05 5b 90 43<7>
lirc_pvr150: 25 cf 6a 5d 2b<7>lirc_pvr150: 29 00 7c 9f 73<7>lirc_pvr150: 2d db 2e cf 3a<7>lirc_pvr150: 31 
2d 32 d4 3d<7>lirc_pvr150: 35 4b 3b 96 40<7>lirc_pvr150: 39 d7 5a 1a 64<7>lirc_pvr150: 3d ec 7c 98 1e<7>
lirc_pvr150: 41 5b 17 2b 6d<7>lirc_pvr150: 45 1f 5f 06 54<7>lirc_pvr150: 49 39 66 57 29<7>lirc_pvr150: 4d 8b 4d 3d  
48<7>lirc_pvr150: 51 6b 52 81 74<7>lirc_pvr150: 55 0f 7e 1b 63<7>lirc_pvr150: 59 41 b8 91 f9<7>lirc_pvr150: 
5d dd 0a 67 50<7>lirc_pvr150: 61 00 00 00 50<6>lirc_pvr150: Hauppauge PVR-150 IR blaster: firmware version 1.3.0
Check lirc devices appear as /dev/lirc*
ls /dev/lirc* -l

output

lrwxrwxrwx 1 root root     5 2007-03-14 09:30 /dev/lirc -> lirc0
crw-rw---- 1 root root 61, 0 2007-03-14 09:30 /dev/lirc0
srw-rw-rw- 1 root root     0 2007-03-14 09:32 /dev/lircd
mythtv:/home/mythtv #
Test Remote Control read

Run IR remote test

/usr/local/bin/irw

Point the Hauppauge remote at the IR receiver (shorter cable) and press a button or two.

Output should look something like this.

000000000000178f 00 Mute Hauppauge_350
000000000000178f 01 Mute Hauppauge_350
0000000000001792 00 Prev.Ch Hauppauge_350
Configure IR Channel Changing

As we said before, the lircd.conf file you downloaded contains a definition of all working remote codes. Each device you are trying to control has a number assigned to it. For example, most DirectTV boxes use code 125.

Open up the /etc/lircd.conf at take a look at it.

An example from the middle of the list

name 1_124_KEY_CH_UP
2155610127

Since I have a DirectTV box, if can go up one channel by running the change_channel script

change_channel 1_125_CH_UP

Once you have test various commands (1_125_CH_POWER, 1_125_9...) you will want to make it edit you '/etc/lircd.conf' and the First part of the name that corresponds to your remote code.

name 1_125_KEY_CH_UP become CH_UP name 1_125_KEY_POWER become POWER

Now you can (and mythTV) can change a channel by simply calling change_channel UP

Logitch Harmony

see Logitech_Harmony_880_remote

LCDproc, the lcd or vfd display

mythTV ( mythlcdserver ) can control an LCD (Liquid Crystal Display) or a VFD (Vacuum Fluorescent Display) panel through LCDproc API. LCDproc is not part of the openSUSE 10.2 distribution.

Download.png - download LCDproc rpm from opensuse.org

If you prefer to compile from source:

Webpage.png - download LCDproc source

Make sure you also compile the server component of LCDproc and read the INSTALL file.

LCDproc.jpg



test your device

echo foobar > /dev/lcd0
./configure --enable-drivers=all
make
cd shared
make
cd server
make
make install

check and configure the LCDd.conf file In the LCDd.conf there is a DriverPath pointing to server/drivers. (make this a complete path)

start the lcd server

LCDd

configure mythfrontend to use the lcd [config] [screen]


more about on the LCDproc mythTV wiki page

Specific VFD Information

iMON

See the IMON mythTV wiki page

Futaba

Futaba mythTV wiki page Used in the MSI Media Live

TV-out, the graphics adapter

There is a section on this wiki dedicated to this TV-out mythTV wiki page.


The type of output your video card can do, and the type of inputs your display device can handle are primarily what dictates what you should use to connect them. From highest- to lowest-quality, the order of consideration is: HDMI, DVI (both of which are digital), VGA, Component, S-Video and finally Composite (all of the rest are analog). Suggest you to read this Highly_Technical_Details

HDMI digital
DVI digital
VGA analog
Component analog
S-Video analog
Composite analog






Composite TV out This provides an NTSC (or PAL) standard video output signal, which can be sent to a normal TV set using a normal RCA cable.

If your box has NTSC/PAL video out, you'll find an RCA video connector (usually yellow), or a 4-pin Mini-DIN S-Video connector on the back somewhere, which you can connect your monitor to, with the appropriate cable.


Component video This will require a VGA to component adapter and a video card that supports component out. Component video offers the best quality for an analog signal.

You can also use the Component-Out feature on some nVidia Cards. (I use the 6600GT and it works great) Read my how-to Here


VGA output This can be sent either to a CRT monitor, an LCD or plasma flat-panel, or a projector. If you have a satisfactorily large monitor, you might find this a better solution; most such monitors and projectors will accept the higher scan-rate signal that a composite output provides.

If you are going to use VGA then you will use an HD-15 cable up to the VGA connector which you will find on the back panel.


DVI digital connection For the best quality, especially to modern digital displays such as big-screen LCD, plasma or micro projection solutions, this is the preferred option. Note that DVI has both digital and analog or combined versions on the same connector. The analog version is compatible with VGA (using an adapter). The digital section is compatible with the latest HDMI connector found on some Hi-Def displays.

Be aware that some of the latest digital displays have hardware content protection built in.


HDMI This is a more modern version of DVI and is technically backwards compatible. It uses a smaller more manageable connector. You can get an DVI to HDMI adaptors if you need to connect your PC graphics card DVI connector to the latest HDMI displays. The latest HDMI connections will also be able to carry digital multi-channel audio down the same cable.




ATI

mythTV AtiProprietaryDriver wiki page

Howto Install ATI driver on openSUSE 10.2

Before you install the ATI driver, the following packages have to be installed. Some are installed by default -- check to make sure they're all there by typing these names into the Software Management's search box. If they are not there, install them and all of their dependencies before you continue:

 gcc
 make
 kernel-source
 kernel-syms
 compat-expat1
 expat

With the release 8.33.6, release dec. 2006 there is support for openSUSE 10.2 and the new released version of X.org 7.2

To check if the ati driver is installed, run the following command

 rpm -qa | grep fglrx

To create a rpm of the ati driver, run the following command, replacing the version numbers as needed

 sh ./ati-driver-installer-8.32.5-x86.x86_64.run --buildpkg SuSE/SUSE102-IA32

NVIDIA

A cheap nvidia card is enough for mythTV. Get one without a fan, cheaper and does not make noise. (The 6200LE PCI Express is about 25 euro) You're best off installing the proprietary Nvidia drivers on openSUSE 10.2. This is easiest when you use the default 10.2 install and don't upgrade the kernel. If so, follow the below to get the drivers installed:

Add the nvidia repo to SMART or YaST: http://download.nvidia.com/opensuse/10.2

mythtv:~ # rug service-add http://download.nvidia.com/opensuse/10.2/ --type=ZYPP "nvidia"

Adding zypp service...
                                                                                                                                                                    0% 

The following key must be trusted in order to proceed:

  Name: NVIDIA Corporation <linux-bugs@nvidia.com>
  ID: F5113243C66B6EAE
  Fingerprint: 9B763D49D8A5C892FC178BACF5113243C66B6EAE

Would you like to trust this key? (y/N) y

Adding zypp service...
                                                                                                                                                                 100% 

Successfully added service 'http://download.nvidia.com/opensuse/10.2/'
mythtv:~ # 

Install the x11-video-nvidia and nvidia-gfx-kmp-default packages.

Change to a command shell by hitting Ctrl-F1.

Type "init 3" and then "sax2 -r -m 0=nvidia". IF you don't see an Nvidia logo at this point, something's probably gone wrong.

Unless you have reason to believe the sax2 info will be wrong, and/or know what to change it to, just hit save. Type "init 5" to get back to a GUI.

And if you have any problems with refresh rates or DPI issues, check this suseforums thread and/or the NVidiaProprietaryDriver.

Warning.png Warning: The Nvidia driver RPM's for openSUSE 10.2 are built against the default kernel (version 2.6.18.2) on the DVD and not the updated version in the security repository. if you have updated your kernel version either during installation or at any point after, please follow the instructions for "The Hard Way" method. This is because the rpms will prevent your Xorg graphics server from loading if installed with any kernel newer than 2.6.18.2

NVIDIA's NTSC SVIDEO

To enable the svideo on a nvidia card, there needs to be a few extra options configured. This section assumes you are using a standard NTSC TV, not HDTV, and probably live somewhere where NTSC is the standard, i.e. the US. I'm not sure if you can make these changes and have both your monitor and TV connected simultaneously. I usually go through these steps just before I connect my myth box to a television in a rather permanent sense.

First, log in as root and back up your xorg.conf file

cd /etc/X11
cp ./xorg.conf ./xorg.conf.orig

WARNING: Before you proceed, make sure you can access your box remotely via SSH in case something doesn't work and you need to restore your original configuration.

Note that you can also boot to runlevel 3 by appending the boot option '3' in GRUB, bypassing X, to fix any problems.

Open this file for editing:

vi /etc/X11/xorg.conf

The following lines are needed by the NVIDIA card to activate the SVIDEO output. In the device section for your card (Section "Device"), add the following bolded lines:

Section "Device"
   BoardName "GeForceX"
   ...
   Option "TVStandard" "NTSC-M"
   Option "TVOutFormat" "TV"
   Option "ConnectedMontitor" "TV"

Also, your Section "Screen", check what the DefaultDepth is. You can search for it or run this command

 grep DefaultDepth /etc/X11/xorg.conf

In the same section a little further down, find the SubSection with that depth. Update the "Modes line to match this. The "DefaultDepth" in this example is for "24". For example's sake, I just commented out the original "Modes" line:

 SubSection "Display"
   Depth      24
   #Modes      "1280x1024" "1024x768" "800x600" "768x576"
   Modes      "720x480" "800x600" "768x576"
 EndSubSection

After these changes have been made, press "Ctrl-Alt-Backspace" and your GUI will restart. You will be prompted to log back in.

If you do end up hosing your display, login remotely either directly as root, or switch to root, and type

cd /etc/X11
cp ./xorg.conf.orig ./xorg.conf
shutdown -r now

Your GUI display should be returned to the state it was before you started.

Webpage.png - openSUSE NVIDIA page

Hauppauge WinTV PVR-350

no openSUSE specific info available on the 350's TV-OUT, I don't have one. Please add your info here.

mythTV internal wiki pages about the 350 tv-out XV_on_PVR-350 and Pvr350

INTEL

Please, refer to the man page http://intellinuxgraphics.org/man.html.

no openSUSE specific info available, I don't have one. Please add your info here.

Wakeup, ACPI or NVRAM

Switching computers that do not need to run 24 by 7 on and off as required can cut your power consumption. There are different methods of programming a wakeup time under Linux without needing to set the time manually in the computer’s BIOS.

NVRAM wakeup uses the BIOS settings stored in non-volatile RAM (NVRAM). The nvram kernel module allows Linux to access a maximum of 128 bytes of non-volatile memory. To get this to work, you need to compile the nvram kernel module. Basically nvram is directly poking into your bios.


ACPI has a (limited) standard interface to change the value in the bios.

The kernel transfers the time directly to your computer’s RTC (real time clock), but not the date. This leads to the computer waking up at the same time every day, and not just on the given date. The problem is that there is a more-orless standardized method of transferring the time to the RTC, but no such standard for the wakeup date. Consequently, the acpi_system_write_alarm functions in drivers/acpi/system.c for the kernel 2.4, or drivers/acpi/sleep/proc.c for the kernel 2.6, only support the alarm time fields.

ACPI_Wakeup mythTV wiki page


Warning.pngACPI is still a pain, ACPI alarm function specs are limited and different bios/hardware vendors have different implementations. The Linux support on ACPI/alarm is also limited. I suggest you read the following article before spending hours/days on it (like I did)

Document.png - Wakeup call

mythbackend Auto-Start at Boot Time

The mythbackend can be configured to start at boot time. This is especially nice for openSUSE boxes that will be running as dedicated mythTV boxes. To auto start the mythbackend daemon at boot time follow these steps

su - root
YaST --> System --> System Services (Runlevel) --> go down to "mythbackend"
--> tab to "Enable" --> ok --> Finish --> Quit

Next time your computer is restarted, the mythbackend will be started automatically.

Client Connectivity

MythTV Plug-ins

MythVideo

MythVideo allows for cataloging and playback of a variety of video file formats. It can perform automatic meta data look ups on IMDB as well as retrieve poster artwork.

VideoBrowseview.jpg






MPlayer Subtitles

The default MPlayer that we got from PackMan did not do subtitles. Error message about subfonts.ttf or something. MPlayer can search in 2 directories for it's fonts for subtitles:

1.) download the recommended subtitle fonts from

Prerendered fonts: http://www1.mplayerhq.hu/MPlayer/releases/fonts/font-arial-iso-8859-1.tar.bz2
Download MD5 sum: 1ecd31d17b51f16332b1fcc7da36b312
Download size: 234 KB
Additional fonts: http://www1.mplayerhq.hu/MPlayer/releases/fonts/

2.) There are 4 different size in the tar file. Select your preferred font size and save the files in: ~/.player/.font

Play non-iso DVD Rips from Disk

This information maybe no longer relevant.Internal mythplayer now plays these files, still a cool trick to use xine.

Movies are not always in ISO format. Sometimes they are in VIDEO_TS VOB format and the following steps can be used to get them to show in the mythvideo (IMDB) display. For this example; let's assume the movie we have is named "Moosy the Movie part 1".

1.) create a file in your video/movies directory

pico moosymovie.link

dvd://your_directory/moosymovie/VIDEO_TS

2.) now create a new extension in mythfrontend

config, config, media, movies, filetypes

create a new extension

Extension .link
Command: xine -pfhq `cat %s`
Standard: OFF
Ignore: OFF

xine and remote

It looks like the xine that I installed from pacman was not compiled with lirc support so my remote is not working in xine.

If you are using xine and have issues with your remote, check

ldd /usr/bin/xine|grep lirc

Solution: compile xine from source

MythGame

mythgame

I'm no gamer so have not tried this. If you do...please add your comment here.

MythMusic

There isn't much to say about mythMusic. Simply put your music in a directory and play with the frontend. I don't like it and don't use it

MythArchive

Make sure your user is member of the cdrom group

mythArchive on the mythTV wiki

Mytharchive.jpg









mythGallery

The MythGallery plug-in allows you to view all your photos or pictures as well as short movies from your digital camera. One of the options of mythGallery in to import the pictures from your digital camera. This option assumes that the device can be mounted as a normal filesystem and it just copies or moves files to the mythGallery directory. For some of the modern camera's this does not work because the can not be mounted as a filesystem. My Canon IXUS 950 can not be mounted so I created the following trick to import the files from my camera: Define this script to get executed in mythFrontend / mythGallery setup.


Script.png getpic.sh
#!/bin/sh

# The name of the new directory, eg 2005-09-15.11:30 on the Moosy filesystem
dir=`date +'%F.%R'`

# Make the new directory
mkdir /data/pictures/$dir

# Go into the new directory
cd /data/pictures/$dir

# copy the files from your camera to your box
gphoto2 -P

cd ..
# Remove empty directories, mythTV also makes a directory 
rmdir 200*

# Clear the camera
gphoto2 -D -R


Browser Based Scheduling Access

Mythweb is the best option to access your mythTV machine over HTTP. You can also think of a VNC session to your central box.


Warning.png

VNC ISSUES: In the initial release of 10.2 there is a bug in combination with gdm and the standard vnc.

If vnc does not work with gdm (gnome) edit the following file:

pico /opt/gnome/share/gdm/defaults.conf 

look for the [xdmcp] section and change it to enable=true, and then restart gdm, things will start working

mythWeb

Installing mythWeb

MythWeb allows you to view your current TV schedule on your Myth box remotely and allow you to schedule or modify recording schedules. This is especially useful when you are not at home but you think of a program that you want to record. Even if the show has already started, it will start recording the remainder of the show as soon as you tell it to. Ask your TiVo companions if they can do that! With this being so easy to setup, you may as well do it. It is also something cool to show your friends!

There are just a few steps to get it working.

1. Install mythweb. You probably already have this installed it if you have been following this document. The following should show one package

rpm -qa | grep mythweb

2. Install apache2 (http server) This is part of openSUSE 10.2 default installation and may already be installed. Check for it with this

rpm -qa | grep apache2

Unless you upgraded, you'll probably see this and two other packages:

apache2-2.2.3-20

3. Add "rewrite" to the APACHE_MODULES

yast --> system --> /etc/sysconfig Editor--> network --> www --> Apache2 --> APACHE_MODULES

Add the word "rewrite in the value for the "APACHE_MODULES". You should put it in alphabetical order to maintain consistency with what is already there. Also, verify that "env" is in the list. It should be by default.

4. Execute the following two commands to set permissions on the directories for internet access

chgrp -R www /srv/www/htdocs/mythweb/data
chmod g+rw /srv/www/htdocs/mythweb/data

5. Setup Apache to start at boot time in yast. This will also activate it now

yast --> System --> System Services --> apache2 --> enable --> Finish --> yes

6. Open the port in the firewall for other computers to access the webpage.

yast --> Security and Users --> Firewall --> Allowed Services --> 
under Service to Allow, choose "HTTP Server" --> Add --> Next --> Accept --> Quit

7. Verify it is working by opening a web browser on your local or remote desktop and put in the following URL

http://your-ip-address/mythweb

NOTE: Some ISPs block incoming requests on port 80 (HTTP Port) to prevent you from hosting web servers to the general public, but they will never admit to it. (Since it's typically against your service agreement anyway). If the method above works from a local computer but does not work from a computer outside of your network, then change the port that Apache uses in the httpd.conf file. After doing that, you will now be able to access MythWeb by going the following URL

http://your-ip-address/mythweb:1234

Replace "1234" with the port you choose. I recommend using a port above 1024 to avoid permission conflicts. To find more on how to do this, find the Apache documentation.

Here are some screen shots of the "Listings" section and the "Recorded Programs" section. Click on one of them to zoom in.

MythWebList.png
Recorded Programs Screen

Securing mythWeb

If you plan to open your mythweb to the internet, you should seriously consider securing it. That and more information can be found here. Follow the section specifically for openSUSE 10.2 here

Remote Access to MythWeb

You can access your MythWeb remotely if you know your IP address. However, if you are a DHCP client, your IP will probably change. To resolve the issue of having an IP address that is constantly changing, you can sign up for an account with a dynamic DNS site (such as http://www.yi.org) and create a unique unchanging hostname that can be forwarded to your IP address - even if it changes. I have created a script to keep a yi.org account in synch with a openSUSE 10.2 box. If you are interested in this, leave a message requesting it in the "discussion" tab of this page. I'll post the update script there if anyone is interested.


Linux Based Frontend

The frontend is basically the graphical interface that shows you the menus and displays the videos on your screen, so obviously it needs X to be on the same machine. Since it is the interface, this is also likely the best place to install any IR recievers or transcievers you have so that you can use a remote control with mythTV. You can install mythfrontend on the same machine as your mythbackend or on one or more other machines. The frontend talks over IP with the backend but for some plugins it needs access to the central mythTV servers, or at least it's filesystem. To have access to your central filesystem you can configure a NFS server for your data directory. On the Linux client; install the NFS client. Have YaST do the rest for you. (do this with the GUI version of YaST, NFS server config is only available in the X GUI of YaST)

Windows Based Frontend

mythTV player from Mikkelrocks, as far as something on Windows can rock. It works very well as long as you are not wireless connection to your network. The wireless connection does not provide enough bandwidth to enable an uninterrupted playback experience. Better to use a hard wired connection when streaming video.

more info can be found here: Windows_Watching_Recordings_in_Windows_with_MythTv_Player

Download.png - Download mythTV player for Windows

There is a mythfrontend available for Windows, but it isn't that good and is not recommended.

It is a much better idea to turn samba server on to have access to your mythTV data: Here is a sample samba config. Read/Write for the world:

/etc/samba/smb.conf

[global]
netbios name = mythtv
workgroup = workgroup
server string = Our home server
#
use client driver = yes
security = share
wins support = no
#
[myth_data]
path = /data
browseable = yes
writable = yes
public = yes

Xbox Based Frontend

Information regarding using an Xbox as a frontend can be found here.

UPnP (Universal Plug and Play)

MythTV has a built-in UPnP-server, a so called "UPnP AV MediaServer" device. With this feature you can share MythTV media files to any UPnP-client

more info can be found on the mythTV UPnP wiki page

Tips and tricks

update your system

Be careful with YaST system updates and remember: "If it ain't broken, don't fix it" and "hours can disappear for no reason at all.". When you upgrade to a new kernel all components that are compiled (installed) manually can break and need to be re-compiled with the new kernel version.


Incomplete.png Incomplete, needs to be expanded. Please help to fill the gaps or discuss the issue on the talk page

Missing: Howto update mythTV components using YaST, maybe with screenshot

backup & restore

Disk Image solutions that can restored with a single rescue CD: (it's mission critical remember)



Database backup:

simple mysql query

List all recordings from a terminal

mysql -umythtv -pmythtv mythconverg -e 'SELECT title, basename, starttime, commflagged FROM `recorded`  ';

recorded movies, displayed by MythVideo

The directory /usr/share/doc/packages/mythtv/contrib has some need scripts

mythrename.pl

renames your recodings and gives them more logical names. It also can create links (with a logical name) to the recordings.

I use this to create links to the mythVideo folder so I get all imdb info. and a movie cover. All movies that I record are saved in the 'Movies' recording group (create this group in mythfrontend)

./mythrename.pl  --link /data/temp --format  %U-%T %- %Y-%m-%d, %g-%i %A %- %S
mv /data/temp/Movie* /data/movies

When the recordings are deleted, the links are not deleted. The following command removes the broken links

find /data/movies -type l | (while read FN ; do test -e "$FN" || rm "$FN"; done)

system monitoring

A system monitor can monitor all processes that are running on your box. When a process fails, action can be taken.

Read more on this mythTV wiki page

performance / memory

Don't load KDE or GNOME on your frontend

At login, select session and select mythTV as your shell (session manager). gnome or kde is not started, this will save memory

The display manager can be set with the GUI at login or change it manually in /etc/sysconfig/displaymanager

DISPLAYMANAGER_AUTOLOGIN = "mythtv"


Harddrive Latency

I recently had issues with my recorded mythTV video playback. They would play for about a second, then freeze for about half a second, and then play extra fast to catch back up to the audio. This would keep happening until I rebooted the box and eventually it would start again. The audio, however, was always consistent. The time that the video froze was occuring at the same time as the harddrive light blinking on the front of my box. I was able to resolve the issue by updating settings on the harddrive. I used the "hdparm" command (which is installed by default on openSUSE 10.2) to fix it. The following commands can be run to check the current settings on your harddrive and to then test its performance. Even if you aren't having any speed issues, it is still fun to see how fast your harddrive is running:

hdparm /dev/hda
hdparm -Tt /dev/hda

NOTE: You may need to change the drive (/dev/hda) to the drive you use.

If the "Timing buffered disk reads" is less than 5-10MB/sec, your drive settings need updated. Read up on the "hdparm" command on this website to increase the speed of your mythTV box.

On a 200Gig Maxtor drive and a 40Gig IBM deskstar drive, the "Timing buffered disk reads" stared at 2.10 MB/sec. After issuing the commands on the site mentioned, the speed jumped to 25.94 MB/sec. and the freezing issue hasn't occured since.

check if mythTV is recording or watching livetv

I assume there are better ways todo this, but I do the following: Using username "root". Using keyboard-interactive authentication.


Script.png checkdevice.sh
# Check if device video0 is used
grep P /dev/video0 > /dev/null
if [ $? == 0 ]
then
 echo "/dev/video0  =  AVAILABLE"
else
 echo "/dev/video0  =  BUSY"
fi