- 1 openSUSE 10.2
- 1.1 Introduction
- 1.2 Initial System Setup
- 1.3 YaST Sources, get the packages
- 1.4 Configure Capture Card
- 1.4.1 IVTV, the analogue TV card
- 1.4.2 Checking device names
- 1.4.3 DVB, the digital TV card
- 1.5 Audio setup
- 1.6 LIRC, the remote control
- 1.6.1 Specific Hardware Instructions
- 220.127.116.11 ATI Remote Wonder
- 18.104.22.168 MCE (Microsoft)
- 22.214.171.124 IMON PAD (Silverstone, Cooler Master)
- 126.96.36.199 IR-Blaster support on PVR150
- 1.6.1 Specific Hardware Instructions
- 1.7 LCDproc, the lcd or vfd display
- 1.8 MySQL, the database
- 1.9 TV-out, the graphics adapter
- 1.10 Wakeup, ACPI or NVRAM
- 1.11 mythbackend Auto-Start at Boot Time
- 2 Client connectivity
- 2.1 Browser based frontend
- 2.2 Linux based frontend
- 2.3 Windows based frontend
- 2.4 Xbox based frontend
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 here and you will have access to our Bugzilla database for defect reporting.
When you start writing about mythTV and/or openSUSE, please:
mythTV; lowercase myth; uppercase TV
openSUSE; lowercase open; uppercase SUSE
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.
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.
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
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 188.8.131.52) 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.
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.
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.
1. Configure the NTP Client
YaST -> Network Services -> NTP Configuration
2. Ignore the warning when selecting Automatically start, there is no significant delay.
NTP daemon -> During Boot -> Finish
3. Add servers per recommendation at http://www.pool.ntp.org/use.html
4. 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, get the packages
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:
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"
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:
sudo /sbin/yast -i mythtv 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.
mythTV and plugin 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
These are the actual mythTV packages that need to be installed.
libmyth, libmyth-devel, mythtv, mythtv-backend, mythtv-debuginfo, mythtv-frontend, mythtv-setup, mythtv-themes
These are plugins 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, mythweather, mythweb
2007-April-05: This section is no longer relevant as both libcdaudio and pvm packages are available via PackMan - now added to above section.
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.
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". :)
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; http://www.mythtv.org/wiki/index.php/Video_capture_card#Capture_Card_Matrix
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:
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.
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
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).
General mythTV info about this card can be found at http://www.mythtv.org/wiki/index.php/Hauppauge_PVR-150
Sample Config for a PVR-150
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: 184.108.40.206-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.
Hauppauge WinTV PVR-500
About the PVR-500 -> http://www.hauppauge.com/pages/products/data_pvr500mce.html.
The PVR-500 has two encoders on one card, and is recognized as 2 x 150 cards. openSUSE 10.2 auto detects the card.
General mythTV info about this card can be found at http://www.mythtv.org/wiki/index.php/Hauppauge_PVR-500
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:
If you do have a "type b" card, Hauppauge may replace it. Call their support line for more information on obtaining a replacement.
The firmware for this card is software and acts as the driver. Make sure you follow the Firmware steps.
The WinTV PVR-500 card is NOT the same as the WinTV Nova-T 500 card. The latter is a dual DVB-T tuner card.
Sample Config for a PVR-500
ivtv settings are stored in /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 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 PVR500:
ivtv: ==================== START INIT IVTV ==================== ivtv: version 0.8.0 (tagged release) loading ivtv: Linux version: 220.127.116.11-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.
Hauppauge WinTV PVR-250
About the PVR-250 -> http://www.hauppauge.com/pages/products/data_pvr250mce.html
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 http://www.mythtv.org/wiki/index.php/Hauppauge_PVR-250
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 http://www.mythtv.org/wiki/index.php/Pvr350
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)
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:
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:
Issue these commands to extract the necessary files to the correct location:
/usr/share/doc/packages/ivtv/ivtvfwextract.pl ./pvr_18.104.22.16854_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
Checking 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 cardFor
devices supported by linux see the following pages on the linuxtv.org wiki.
openSUSE supported tv cards http://en.opensuse.org/HCL/TV_Cards
This card should be installed automatically under openSUSE 10.2. It should Just Work™, no installs or config needed.
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://linuxtv.org/hg/~mrechberger/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 make install reboot
At this point you can look at dmesg to see the the card loaded and is working.
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 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". If you do, your ATI HDTV Wonder card should be working fine.
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
I did not have to do anything. Everything was auto detected by the install and audio just worked.
Configure digital sound: http://www.mythtv.org/wiki/index.php/Configuring_Digital_Sound_with_AC3_and_SPDIF
Do we need to say something about audio? Please do if you feel like it.
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.
So, ensure that the LIRC demon is enabled from boot by using YaST's Services manager (just find lirc, select it, hit enable and save).
Specific Hardware Instructions
ATI Remote Wonder
IMON PAD (Silverstone, Cooler Master)
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
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
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
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
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
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
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 openSUSE 10.2. In jan 2007 they are not available on PackMan so:You need to download the source and compile.
Make sure you also compile the server component of LCDproc and read the INSTALL file.
test your device
echo Moosy rocks > /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
configure mythfrontend to use the lcd [config] [screen]
Specific Hardware Instructions
more about the iMON vfd here
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.
openSUSE 10.2 ships with mysql 5.0.26 (A True Multiuser, Multithreaded SQL Database Server)
As root, start mysql by typing
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/database/mc.sql
(and key-in the previously entered password) You should see no output - this is a good thing!
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;
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:
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:
You can also get more info at http://www.mythtv.org/wiki/index.php/Mythfilldatabase
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: http://mythtv.org/docs/mythtv-HOWTO-5.html#ss5.3). 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:
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 22.214.171.124 (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]
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
run with your daily cron jobs
backup & restore THE database
$mysqldump -u mythtv -p mythtv mythconverg -c > mythtv_backup.sql
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
TV-out, the graphics adapter
There is a section on this wiki dedicated to TV-out. http://www.mythtv.org/wiki/index.php/TV_Out.
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 http://www.mythtv.org/wiki/index.php/Highly_Technical_Details
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.
The ATI Proprietary Linux driver (fglrx) currently provides hardware acceleration for 3D graphics and video playback. It also includes support for dual displays and TV Output. The question is; does the driver support your hardware. The driver (fglrx) is also used for the linux 3d desktop (xgl, compiz, beryl)and it looks like ati (amd)has put more resources on the development. Still there are weird things (bugs?) with ati.
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
current version - jan 2007 - ati driver 8.33.6 - release notes
rpm -qa | grep fglrx
-- sample of howto create a rpm for 32 platform with ati driver 8.32
sh ./ati-driver-installer-8.32.5-x86.x86_64.run --buildpkg SuSE/SUSE102-IA32
TV-OUT ISSUES: still some issues with the 8.33.6 driver and myth 0.20 - more info onby clicking here
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 <firstname.lastname@example.org> 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.
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.
Open this file for editing:
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.
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.
Here is some good info about the 350 tv-out http://www.mythtv.org/wiki/index.php/XV_on_PVR-350 and http://www.mythtv.org/wiki/index.php/Pvr350
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 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)
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.
Browser based frontend
Mythweb is the best option to access your mythTV machine over HTTP You can also think of a VNC session to your central box.
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:
look for the [xdmcp] section and change it to enable=true, and then restart gdm, things will start working
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:
3. Add "rewrite" to the APACHE_MODULES
yast --> system --> /etc/sysconfig --> 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
Here are some screen shots of the "Listings" section and the "Recorded Programs" section. Click on one of them to zoom in.
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.
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)
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.
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
When I download some movies, they are not always in ISO format. If they are in VIDEO_TS VOB format I use the following trick to get them in the mythvideo (imdb) display. For this example; let's assume we downloaded a movie called Moosy the Movie part 1.
1.) create a file in your video/movies directory
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
I'm no gamer so have not tried this. If you do...please add your comment here.
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
Windows based frontend
mythTV player from Mikkelrocks, as far as something on Windows can rock. It sure is a cool puppy you should give a try.
There is a mythfrontend available for Windows. It sucks big time and I don't wanna talk about it.
Good idea to turn your samba server on to have access to your mythTV data: Here is a sample samba config. Read/Write for the world:
[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
Still don't have a xbox, here you can find more info