summaryrefslogtreecommitdiffstats
path: root/abs/core-testing/local-website/htdocs/mythtv-doc/mythtv-HOWTO-3.html
blob: bd6e3b4ad739959d1a7781a7572763b07ce57148 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
 <TITLE>Installing and using MythTV: Checking prerequisites. </TITLE>
 <LINK HREF="mythtv-HOWTO-4.html" REL=next>
 <LINK HREF="mythtv-HOWTO-2.html" REL=previous>
 <LINK HREF="mythtv-HOWTO.html#toc3" REL=contents>
</HEAD>
<BODY>
<A HREF="mythtv-HOWTO-4.html">Next</A>
<A HREF="mythtv-HOWTO-2.html">Previous</A>
<A HREF="mythtv-HOWTO.html#toc3">Contents</A>
<HR>
<H2><A NAME="s3">3.</A> <A HREF="mythtv-HOWTO.html#toc3">Checking prerequisites. </A></H2>

<P>You must ensure that any firewalls (either hardware, or a software
firewall installed by your distribution) will not block access to the ports
that will be used by the MythTV clients and servers on the "inside" LAN. 
The ports for MySQL (TCP port 3306) and mythbackend (TCP ports 6543 and
6544) must be open.  It is <EM>strongly</EM> recommended that you do
<EM>not</EM> expose the MythTV and MySQL ports to the Internet or your
"Outside" LAN.</P>

<H2><A NAME="ss3.1">3.1</A> <A HREF="mythtv-HOWTO.html#toc3.1">Hardware</A>
</H2>

<P>Hardware selection is a complex topic, one this HOWTO will only discuss
briefly and in general terms. The following subsections offer some general 
guidance but stop short of offering specific recommendations.</P>
<P>For a good MythTV experience, you must understand that MythTV exercises your
hardware more than a typical desktop. Encoder cards generate DMA across the
PCI bus.  The CPU is busy encoding / decoding video. Hard drives are
constantly reading and writing data. Building a MythTV system on older /
"spare" hardware may be an exercise in frustration and can waste many hours
of valuable time.</P>
<P>For more detail about actual configurations that others have used, Mark
Cooper has setup a hardware database at 
<A HREF="http://pvrhw.goldfish.org/">http://pvrhw.goldfish.org/</A>. The
website will let you browse what other users have reported as their hardware
configuration, and how happy they are with the results.</P>
<P>If you have specific questions about the suitability of specific hardware
choices, you can consult the archives of the mythtv-users mailing list at
<A HREF="http://www.gossamer-threads.com/lists/mythtv/">http://www.gossamer-threads.com/lists/mythtv/</A> or
post a question to the list.</P>
<H3>CPU Type and Speed</H3>

<P>Selection of CPU type and speed is one of the trickiest elements of
hardware selection, mainly because there are so many tradeoffs which can be
made.  For example, if you have plenty of CPU, you can use higher bitrates
or capture sizes, etc.</P>
<P>MythTV has two modes of operation.  First, it can function as a software
video encoder, which means that it uses a fairly generic "dumb" video
capture card to get frames of video, encodes them using the CPU on your
motherboard and writes them to disk.  High-end video capture cards and
devices like the TiVo and ReplayTV have dedicated encoder chips which use
specialized hardware to convert the video stream to the MPEG-2 format
without using the motherboard CPU.  The main CPU has the responsibility of
running the Operating System and reading and writing the encoded frames to
the disk.  These tasks have fairly low CPU requirements compared to encoding
video, which is why a device like a Series 1 TiVo can run with only 16MB of
RAM and a 54MHz CPU.</P>
<P>There are many variables that go into the question: "How fast a CPU do I
need to run MythTV"?  Obviously, the faster your CPU, the better your
experience will be with MythTV.  If you are using the software MPEG-4
encoder and performing the "Watch TV" function, where the CPU is both
encoding and decoding video simultaneously to allow Pause, Fast Forward and
Rewind functions for live TV requires more CPU then just encoding or
decoding.  MythTV also supports multiple encoder cards in a single PC,
thereby increasing the CPU requirements if you plan on simultaneously
encoding multiple programs.  As a general guideline, plan on 1GHz per
encoder if you are doing software-based encoding, less if you are using a
hardware-based encoder.</P>
<P>Here are a few data points:
<UL>
<LI>A PIII/733MHz system can encode one video stream using the MPEG-4
codec using 480x480 capture resolution.  This does not allow for live TV
watching, but does allow for encoding video and then watching it later.</LI>
<LI>A developer states that his AMD1800+ system can <B>almost</B>
encode two MPEG-4 video streams and watch one program simultaneously.</LI>
<LI>A PIII/800MHz system with 512MB RAM can encode one video
stream using the RTjpeg codec with 480x480 capture resolution and play it back
simultaneously, thereby allowing live TV watching.</LI>
<LI>A dual Celeron/450MHz is able to view a 480x480 MPEG-4/3300kbps file
created on a different system with 30% CPU usage.</LI>
<LI>A P4 2.4GHz machine can encode two 3300Kbps 480x480 MPEG-4 files and
simultaneously serve content to a remote frontend.</LI>
</UL>
</P>
<P>The second mode of operation is where MythTV is paired with a hardware-based
video encoder, such as a Matrox G200 or a Hauppauge
WinTV-PVR-150/250/350/500.  In this mode, because the video encoding is
being done by a dedicated video processor, the host CPU requirements are
quite low.  See the 
<A HREF="#video_capture_device">Video Capture Device</A> section for details.</P>
<P>The price differential between a frame grabber and a card that implements
hardware MPEG-2 encoding, such as the Hauppauge PVR-x50 series, is now less
than $30 US.  Primary development in MythTV has transitioned to supporting
MPEG-2 capture devices and HDTV, so if given the option, go with the
hardware MPEG-2 encoder.</P>
<P>If you have a Via M10000 series or a Hauppauge PVR-350, MythTV can use the
hardware-based video decoder for playback, which further reduces CPU
requirements.</P>

<H3>Memory</H3>

<P>A MythTV host that is both a backend and a frontend and using software
encoding with a single capture card should run adequately in 256MB of RAM.
Additional RAM above 256MB will not necessarily increase performance, but
may be useful if you are running multiple encoders.</P>

<H3>Hard Disk(s)</H3>

<P>Encoded video takes up a lot of hard disk space. The exact amount depends
on the encoding scheme, the size of the raw images and the frames per
second, but typical values for MythTV range from 700 megabytes/hour for
MPEG-4, 2 GB/hour for MPEG-2 and RTjpeg and 7 GB/hour for ATSC HDTV.</P>
<P>
<FIGURE>
<EPS FILE="stop.eps">
<IMG SRC="stop.png">
<CAPTION><B>NOTE</B>:  You <EM>must</EM> use DMA for hard drive access to prevent
choppy or jittery video.  Not all distributions enable DMA at boot time. See the Troubleshooting Section for 
<A HREF="mythtv-HOWTO-22.html#Setting_DMA">instructions</A> on how to do this.</CAPTION>
</FIGURE>
</P>
<P>Writing video to disk is sensitive to timing issues; RTjpeg requires less
CPU with the tradeoff being larger files and needing to write to the disk
faster.  MPEG-4 requires more CPU, but the files are smaller.  At the
default resolution, MPEG-2 creates the largest files of all with almost no
CPU impact.</P>
<P>See the Troubleshooting 
<A HREF="mythtv-HOWTO-22.html#Setting_DMA">section</A> for more
information.</P>

<H3>Filesystems</H3>

<P>MythTV creates large files, many in excess of 4GB.  You <EM>must</EM> 
use a 64 or 128 bit filesystem. These will allow you to create large files.
Filesystems known to have problems with large files are FAT (all versions),
and ReiserFS (versions 3 and 4). </P>
<P>Because MythTV creates very large files, a filesystem that does well at
deleting large files is important.  Numerous benchmarks show that XFS and
JFS do very well at this task.  You are <EM>strongly</EM> encouraged to
consider one of these for your MythTV filesystem.  JFS is the absolute best
at deletion, so you may want to try it if XFS gives you problems.  MythTV
.21 incorporates a "slow delete" feature, which progressively shrinks
the file rather than attempting to delete it all at once, so if you're more
comfortable with a filesystem such as ext3 (whose delete performance for
large files isn't that good) you may use it rather than one of the
known-good high-performance file systems.  There are other ramifications to
using XFS and JFS - neither offer the opportunity to shrink a filesystem;
they may only be expanded.</P>
<P>
<FIGURE>
<EPS FILE="stop.eps">
<IMG SRC="stop.png">
<CAPTION><B>NOTE</B>:  You <EM>must not</EM> use ReiserFS v3 for
your recordings. You will get corrupted recordings if you do.</CAPTION>
</FIGURE>
</P>
<P>Because of the size of the MythTV files, it may be useful to plan for future
expansion right from the beginning.  If your case and power supply have the
capacity for additional hard drives, read through the 
<A HREF="mythtv-HOWTO-24.html#LVM">LVM</A> and 
<A HREF="mythtv-HOWTO-24.html#advancedpartitionformatting">Advanced Partition Formatting</A> sections for some pointers.</P>
<P>
<A NAME="video_capture_device"></A> </P>
<H3>Video Capture Device </H3>

<P>In order to capture video, MythTV will need one or more video capture
devices with Linux drivers.  There are a number of classes of hardware
available for capturing video.  </P>
<H3>Frame Grabbers.</H3>

<P>This class of card is the simplest and is usually the cheapest.  There is no
on-board encoding of the analog video; hardware known as a Digital-Analog
Converter (DAC) takes the video and presents it to the computer in an
essentially raw digital form.</P>
<P>For a list of video capture cards known to work with Linux, please see
<CODE>/usr/src/linux/Documentation/video4linux/bttv</CODE> for a partial
listing; even if your specific card is not listed, it may be that the vendor
is actually using a standard reference design and placing their own name on
it.  See the video4linux mailing list (
<A HREF="https://listman.redhat.com/mailman/listinfo/video4linux-list">https://listman.redhat.com/mailman/listinfo/video4linux-list</A>) for
more information and for specific hardware questions.</P>
<P>The most common inexpensive cards available use the Bt848, Bt878 or CX2388x
series of video capture chips; examples are the "Hauppauge WinTV Go" card and
the "AverTV Desktop PVR" card, both of which use the bttv kernel module.</P>
<P>
<HR>
<PRE>
NOTE:  The ATI TV Wonder series and the ATI All-in-Wonder series of cards
are not the same.  The All-in-Wonder cards will not work with MythTV.
</PRE>
<HR>
</P>
<P>
<FIGURE>
<EPS FILE="stop.eps">
<IMG SRC="stop.png">
</FIGURE>

<FIGURE>
<EPS FILE="stop.eps">
<IMG SRC="stop.png">
<CAPTION><B>NOTE</B>: The ATI All-in-Wonder cards (which are not the same
as the ATI TV Wonder, TV Wonder VE or TV Wonder Pro) <EM>will not</EM> work
as a MythTV capture device because the GATOS 
<A HREF="http://gatos.sourceforge.net">http://gatos.sourceforge.net</A>
drivers that are available provide only a limited subset of the V4L API. The TV Wonder series of cards are supported by the Bt8x8 Video4Linux driver.</CAPTION>
</FIGURE>
</P>
<P>After you have installed a suitable capture device, you can check that 
the kernel sees it with <CODE>lspci</CODE>. Look for an entry labeled "Multimedia 
video controller". To get more detailed information about the card, use 
<CODE>lspci -v</CODE> or <CODE>lspci -vv</CODE>.  Ensure that your system is loading
the bttv modules by typing:
<BLOCKQUOTE><CODE>
<PRE>
# lsmod |grep bttv
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>You want to see the <CODE>bttv</CODE> module listed.</P>
<H3>Hardware MPEG-2 encoders.</H3>

<P>While inexpensive video-capture cards simply capture raw frames, leaving
encoding to software, some higher-end cards incorporate hardware-based
encoding. Using either a G200 MJPEG encoder card, or a MPEG-2 encoder card
supported by the IvyTV project 
<A HREF="http://ivtvdriver.org/">http://ivtvdriver.org</A> such as the Hauppauge
PVR-150/250/350/500, Avermedia M179, Hauppauge "Freestyle" or Yuan M600
cards will allow you to use dedicated hardware encoders rather than your
CPU. (The PVR-350 can simultaneously be used as an output device.) Using the
on-board MPEG-2 encoder greatly reduces the CPU requirements for
encoding.</P>
<P>The ivtv driver was incorporated into the Linux kernel starting at v2.6.22.</P>
<P>There is a Beta driver for the HVR-1600 card at 
<A HREF="http://www.ivtvdriver.org/index.php/Cx18">http://www.ivtvdriver.org/index.php/Cx18</A></P>
<P><B>NOTE</B>:  Motherboards with the Via chipset are notoriously bad with
DMA and have caused numerous issues with ivtv, including hard locks.  See
the ivtv website 
<A HREF="http://ivtvdriver.org">http://ivtvdriver.org</A>
for the latest information on what works and what doesn't.</P>
<P>Here are some data points for encoding:
<UL>
<LI>A Celeron 450 uses 2% CPU for encoding a 480x480 16Mbps MPEG-2 stream.</LI>
</UL>
</P>
<P>Here are some data points for decoding:</P>
<P>
<UL>
<LI>An Athlon 1800XP can decode a 720x480 8Mbps MPEG-2 file using 10% CPU</LI>
<LI>An Athlon 1GHz can decode a 720x480 16Mbps MPEG-2 file using 30-50%
CPU, can decode a 480x480 16Mbps MPEG-2 using 30% CPU and approximately 30%
for Live TV at 416x480.</LI>
<LI>A P3-550 can decode a 480x480 16Mbps MPEG-2 file with 55% CPU.</LI>
<LI>A Celeron 450 (no SSE) can decode a 480x480 16Mbps MPEG-2 file with
80% CPU.</LI>
</UL>
</P>

<H3>DVB capture cards.</H3>

<P>DVB is a video standard primarily found in Europe (where it comes in
DVB-C, DVB-T and DVB-S varieties for Cable, Terrestrial and Satellite) and
is also used as the programming interface for HDTV capture cards in Linux. 
To see if your DVB card is supported, see the list of cards in the
"Supported Hardware" section of the DVB Wiki at 
<A HREF="http://www.linuxtv.org/wiki/index.php/Main_Page">http://www.linuxtv.org/wiki/index.php/Main_Page</A> for more
information.</P>
<P>In the United States, you may use a card such as the TwinHan to obtain
unencrypted Free-To-Air satellite channels.  See 
<A HREF="http://www.lyngsat.com/">http://www.lyngsat.com/</A> for the types
of content which is available.</P>

<H3>HDTV.</H3>

<P>There are a number of HDTV cards with Linux drivers which are known to
operate in the United States; a complete list of cards with DVB drivers can
be found at 
<A HREF="http://www.linuxtv.org/wiki/index.php/ATSC_Devices">http://www.linuxtv.org/wiki/index.php/ATSC_Devices</A> Some cards
support capture of unencrypted digital cable TV (utilizing QAM256), others
will only work with Over The Air (aka "OTA") signals captured with an
antenna (with 8VSB).</P>
<P>Cards that have been reported to work include:
<UL>
<LI>pcHDTV HD-2000, Air2PC PCI rev 1-3 (8VSB only)</LI>
<LI>SiliconDust HDHomeRun           (8VSB, QAM256)</LI>
<LI>pcHDTV HD-3000/5500             (8VSB, QAM256)</LI>
<LI>Air2PC HD-5000                  (8VSB, QAM256)</LI>
<LI>DViCO Fusion HDTV Lite/Gold 5   (8VSB, QAM256)</LI>
</UL>
</P>
<P><B>NOTE</B>: There are no known consumer-level capture devices which will
allow you to capture the HDTV output (DVI, HDMI, VGA, YPbPr / Component)
from a set-top box commonly found with digital cable systems or satellite
systems. <EM>None</EM> of the capture devices listed above
perform any encoding; they merely allow your computer to save a copy of a
HDTV stream which has already been converted to MPEG-2 at the broadcast
facility.</P>
<P><B>NOTE:</B>: All of the cards listed above (except for the HD-2000 and
HDHomeRun) should be configured as DVB cards. The HD-2000 can be configured
as a pcHDTV card if you use the V4L drivers from 
<A HREF="http://www.pchdtv.com">http://www.pchdtv.com</A> and use Linux
kernel 2.6.9 or earlier.  With kernel 2.6.10 and higher it must be
configured as a DVB card, but you lose access to the second antenna input in
ATSC mode. The HDHomeRun should be configured as two HDHomeRun cards, one
for each tuner.</P>
<P>To playback HDTV content, plan on a powerful CPU.  "How powerful?" depends
on a number of factors, such as the capture resolution, whether the video is
progressive or interlaced, and whether your display card has hardware-assist
support for Linux.</P>
<P>The Simple Answer: Once you are in the 3.2 Ghz P4-class of CPU you should have
no issues with viewing HDTV.</P>
<P>The Complicated Answer:</P>
<P>For 720p content (1280x720), a 2.4GHz P4 should be sufficient.</P>
<P>For 1920x1080i->1920x1080p with the better deinterlacing methods
done in real time a 2.4GHz CPU is taxed, but should work if you use "Bob and
Weave" deinterlacing, or if you have an NVIDIA card with MPEG-2 hardware
acceleration.  If you enable the hardware acceleration, you may be able to
use a 1.8GHz processor.</P>

<H3>Firewire.</H3>

<P>You may use the Firewire output of the Motorola DCT6200 or the SA3250. 
If your provider uses 5C encryption on a particular channel, you won't be
able to get any content.</P>

<H3>DBoxII or other devices running Neutrino</H3>

<P>You may use the Ethernet port of an DBoxII or a similar device to capture 
MPEG2. Your set top box has to be running the Neutrino GUI. </P>

<H3>USB Capture Devices.</H3>

<P>The Plextor ConvertX PVR devices are supported through Linux drivers
available from 
<A HREF="http://www.plextor.com/english/support/LinuxSDK.htm">http://www.plextor.com/english/support/LinuxSDK.htm</A>. MythTV uses the
Plextor to capture hardware encoded MPEG-4, so the host CPU requirements are low.</P>
<P>Hauppauge WinTV-PVR-USB2 (driver available at 
<A HREF="http://www.isely.net/pvrusb2/">http://www.isely.net/pvrusb2/</A>)
emulates a PVR-x50 card.</P>

<H3>IP Recorder (RTSP, RTS, UDP)</H3>

<P>MPEG-2, MPEG-4 and H.264 internet TS stream recording is supported using
the IPTV recorder in MythTV. This recorder expects the channels to be supplied
as a m3u playlist. If your DSL/Fiber provider supplies television service,
but does not provide a m3u playlist for the channels, you can construct one
for your own use. You do not need to download it from the same server as the
streams themselves, and can also read it from a file if this is more convenient.</P>
<P><B>NOTE</B>: Some DSL providers only allow you to use one recorder at a
time, so you may need to limit yourself to one recorder in MythTV and turn
off any set top box the cable provider sold or rented to you with your
service. This limitation is independent of the bandwidth you have purchased.</P>

<H3>Hardware known NOT to work and other issues</H3>

<P>
<UL>
<LI>Hauppauge WinTV-D or -HD (no driver)</LI>
<LI>Hauppauge WinTV-USB series</LI>
<LI>Hauppauge WinTV-PVR-usb (model 602), or WinTV-PVR-PCI (model 880) cards (no driver - this is not the PVR-250/350
series of cards supported by the IvyTV driver)</LI>
<LI>ATI All-in-Wonder series</LI>
</UL>
</P>

<H3>Sound card</H3>

<P>The system needs a sound card or an on-board equivalent on the motherboard
to play back and in most cases, to record sound. Any sound card that can be
operated by the ALSA (Advanced Linux Sound Architecture) kernel modules will
work with MythTV.  However, some cards and drivers will provide better
quality or compatibility than others.  In particular, many audio
devices included on motherboards can be problematic.</P>
<P>The usual practice for capturing the audio associated with the video is to
run a cable from an audio output on the video capture card to the Line input
on a sound card. However, some video capture cards provide on-board audio
capabilities that work with the kernel <CODE>btaudio</CODE> module instead,
thereby eliminating the need for a cable.  This is useful if you will be
using multiple capture cards in a single chassis, since each capture card
will not need its own sound card.  Note that a separate sound card is still
required for playback when using <CODE>btaudio</CODE>, and that often the audio
recorded in this way will be mono only.  See the 
<A HREF="mythtv-HOWTO-23.html#btaudio">btaudio</A> section for more information.</P>
<P>
<FIGURE>
<EPS FILE="warning">
<IMG SRC="warning.png">
<CAPTION><B>NOTE</B>:  Analog video capture cards are the only ones which
require a soundcard for capturing audio.  DVB, HDTV, and other hardware
encoder cards all provide a combined audio / video stream.</CAPTION>
</FIGURE>
</P>
<P>
<FIGURE>
<EPS FILE="stop.eps">
<IMG SRC="stop.png">
<CAPTION><B>NOTE</B>:  Plugging a Line-level device into the Mic input is
not recommended.  Line-level devices have higher voltages and can damage the
sound card.  In addition, even if it doesn't break your card, you will be
getting Mono sound.  See the Linux MP3 HOWTO at 
<A HREF="http://www.tldp.org/HOWTO/MP3-HOWTO.html">http://www.tldp.org/HOWTO/MP3-HOWTO.html</A> for additional information.</CAPTION>
</FIGURE>
</P>

<H3>Video Display Card</H3>

<P>MythTV will work with just about any video card.  However, it is highly
recommended that you use a card which supports XVideo (XV) extensions. If
your card does not support XV, color conversion and scaling will be
performed by your CPU rather than the video card.  This is very CPU
and memory intensive and will often result in dropped frames and a
corresponding degradation of quality.  Check the X documentation
for details if you are uncertain about your preferred card.  You may
also run <CODE>xvinfo</CODE>; look for your video card to be listed as one
of the adapters.</P>

<P>If you want to use MythTV with a standard television, you will need a
physical connection from your video card to your TV set, which can either be
a TV-out port on the card itself or an external adapter that converts the
VGA signal to an appropriate video signal. "Appropriate" depends on a number
of factors, such as video standard (NTSC vs. PAL), the type of input
connection (Composite vs. SVideo), etc.</P>
<P>Note that with some video cards and X drivers, XVideo extensions are
only supported on the VGA output, and not on the TV output.</P>

<H3>Cards with TV-out</H3>

<P>The next section deals with a number of cards that are known to have
TV-out ports.  The list is unlikely to be complete, so if you know of
others, please post a message to the mythtv-users mailing list so the
information can be included in future versions of the HOWTO. The list is
organized by manufacturer.</P>
<P>Reports here are based on what users of the cards have posted on the
mythtv-users mailing list, so if you need configuration details, please
search the archives at 
<A HREF="http://www.gossamer-threads.com/lists/mythtv/">http://www.gossamer-threads.com/lists/mythtv/</A> using
the card name in your search string.</P>

<H3>ATI</H3>

<P>ATI makes many cards with TV-out capability, but only offers Linux
drivers for Radeon 8500 and above cards.  See the Drivers and Software
section of 
<A HREF="http://www.ati.com/">http://www.ati.com</A> for the
driver and additional information.</P>
<P>The enhanced ati.2 X driver created by the GATOS 
<A HREF="http://gatos.sourceforge.net">http://gatos.sourceforge.net</A>
project offers some support for TV-out on other ATI cards, but only in its
"experimental" version, available through CVS. There have been reports from
people who say they have made this driver work with one or another ATI card.
For example, Bruce Markey 
<A HREF="mailto:bjm@lvcm.com">mailto:bjm@lvcm.com</A> writes (on the
mythtv-users mailing list): "I got this to work. You can quote me on that.
I've used TV-out on several models of ATI cards both All-In-Wonder and
regular cards with TV-out." See the "Adventurous Setup" section of 
<A HREF="http://gatos.sourceforge.net/watching_tv.php">http://gatos.sourceforge.net/watching_tv.php</A> for details. Also see
<A HREF="http://www.retinalburn.net/linux/tvout.html">http://www.retinalburn.net/linux/tvout.html</A> for more information.</P>

<H3>NVIDIA</H3>

<P>Some NVIDIA cards with TV-out can be run using the standard nv driver in 
X, combined with the userspace application <B>nvtv</B> to control the TV-out 
port. See 
<A HREF="http://sourceforge.net/projects/nv-tv-out/">http://sourceforge.net/projects/nv-tv-out/</A> for details.  Recent
versions of the NVIDIA driver have better support for overscan and other
features useful with TV-Out, so the <B>nvtv</B> application may not be
required.</P>
<P>Some NVIDIA cards can be run with a proprietary NVIDIA X driver made
available by NVIDIA. See 
<A HREF="http://www.nvidia.com/object/unix.html">http://www.nvidia.com/object/unix.html</A> for more information.</P>
<P><B>NOTE</B>:  It's strongly recommended that you use the proprietary
NVIDIA drivers; they have excellent support for XvMC and ship with a good
configuration utility.  XvMC provides MPEG-2 hardware acceleration, which is
important if you want to display HDTV.</P>

<H3><A NAME="PVR-350"></A> Hauppauge PVR-350 </H3>

<P>MythTV supports the TV-out and MPEG-2 decoder functions in the IvyTV
driver.</P>
<P>The PVR-350 is unique amongst the Hauppauge PVR-x50 cards in that it also
supports audio output, but you need to connect that audio output to
something.  There are two courses of action you may take:
<OL>
<LI>Take the audio output from the PVR-350 and plug it into an input on a
sound card on your machine.  You may then use MythTV's internal audio
controls.</LI>
<LI>Take the audio output from the PVR-350 and connect it directly to your
television / audio system.  You must indicate that you are using external
audio control on the PVR-350 setup page.</LI>
</OL>
</P>

<H3>Other Options</H3>

<P>Some devices with on-board TV-out capability, such as Xboxes converted to 
Linux and some laptops can be used as MythTV frontends to display on a 
television screen. Please consult the mythtv-users mailing list for messages 
that report the details of these special arrangements.</P>

<H3>External Adapters</H3>

<P>External adapters convert standard VGA output to a form suitable for 
display on a television. The output format varies by region, since 
different countries have different TV standards. People on the mythtv-users 
list have mentioned these adapters:</P>
<P>
<UL>
<LI>AITech Web Cable Plus, powered by external transformer or takes power
from PS/2 keyboard connector, support resolutions up to 1024x768, outputs
composite and SVideo, provides position adjustment.</LI>
<LI>Averkey lite, powered by a USB port, has Composite, SVideo, YPbPr
outputs; pan, brightness, overscan/underscan controls; supports up to
1024x768 outputs; and supports PAL and NTSC.</LI>
<LI>ADS TV Elite XGA</LI>
<LI>AverKey iMicro (comments are generally favorable)</LI>
<LI>AITech Web Cable (comments are generally unfavorable, different than
the "Plus" version above)</LI>
<LI>TVIEW Gold (mentioned once, favorably)</LI>
</UL>
</P>

<H2><A NAME="ss3.2">3.2</A> <A HREF="mythtv-HOWTO.html#toc3.2">Software</A>
</H2>

<P>There are a few ways of installing programs on Linux systems; you can
either use a pre-compiled package, or install from a tarball after
satisfying any prerequisites.</P>
<P>
<FIGURE>
<EPS FILE="warning.eps">
<IMG SRC="warning.png">
<CAPTION><B>NOTE</B>: you must have the MySQL database software installed on a
system to store the master database.  This does not necessarily mean that
MySQL must run on one of the MythTV boxes.  The minimum MySQL version is 5.0.</CAPTION>
</FIGURE>
</P>

<H3><A NAME="precompiled"></A> Pre-compiled packages </H3>

<P>A number of people have created pre-compiled packages for MythTV that may
make your installation easier.</P>
<P>
<FIGURE>
<EPS FILE="stop.eps">
<IMG SRC="stop.png">
<CAPTION><B>BIG FAT WARNING</B>:  This HOWTO assumes that you have <EM>not</EM>
installed MythTV from a package.  All example command lines and file
locations are based on the MythTV tarball defaults.  Some packagers have
modified the filenames, binaries and file locations to match what is
commonly found in that distribution.  Any issues with MythTV installed via a
pre-compiled package <B>MUST</B> be raised with the packager.</CAPTION>
</FIGURE>
</P>
<P>If you use any of the pre-compiled packages you may not need to perform any
additional configuration steps in this HOWTO.  The next logical step is 
<A HREF="mythtv-HOWTO-6.html#mysql">configuring MySQL</A>, which you may or may not have to
perform.  See your package documentation.</P>

<H3><A NAME="atrpms"></A> Red Hat Linux / Fedora Core </H3>

<P>The definitive documentation on installing MythTV on Red Hat Linux /
Fedora Core can be found in Jarod Wilson's (
<A HREF="mailto:jcw@wilsonet.com">mailto:jcw@wilsonet.com</A>) HOWTO at 
<A HREF="http://wilsonet.com/mythtv/">http://wilsonet.com/mythtv/</A> Just
like 3rd-party packages, any 3rd-party documentation problems should be
brought up with the 3rd-parties (maintainer, lists, bugzillas etc.).  The
installation instructions which follow should be used as a guide only; refer
to Jarod's guide.</P>
<P>Red Hat Linux and Fedora Core packages for MythTV and all of its add-on
modules and some themes have been packaged by 
<A HREF="mailto:Axel.Thimm@ATrpms.net">mailto:Axel.Thimm@ATrpms.net</A> and
are available at 
<A HREF="http://ATrpms.net/topic/multimedia/">http://ATrpms.net/topic/multimedia/</A>. All of the prerequisites for
MythTV (such as XMLTV) are available as RPM packages. If you have problems
with the RPMs, please contact the ATrpms lists at 
<A HREF="http://lists.ATrpms.net/">http://lists.ATrpms.net/</A> or file a
bug against 
<A HREF="http://bugzilla.ATrpms.net/">http://bugzilla.ATrpms.net/</A>.</P>
<P>Given the large number of dependent RPMs you are advised to use tools like
apt or yum for automatic retrieval and installation of the required RPMs.
(
<A HREF="http://ATrpms.net/install.html">http://ATrpms.net/install.html</A>) In this case a
special meta-package called mythtv-suite will allow you to install all of
MythTV and its add-ons, plus all dependencies.</P>
<P>If you don't have <B>apt</B> or <B>yum</B> on your machine, download and
install the atrpms-kickstart package from 
<A HREF="http://ATrpms.net/name/atrpms-kickstart/">http://ATrpms.net/name/atrpms-kickstart/</A>.
Install the package with:
<BLOCKQUOTE><CODE>
<PRE>
# rpm -Uvh atrpms-kickstart*
</PRE>
</CODE></BLOCKQUOTE>

Then run:
<BLOCKQUOTE><CODE>
<PRE>
# apt-get update
# apt-get dist-upgrade
# apt-get update
</PRE>
</CODE></BLOCKQUOTE>

And finally:
<BLOCKQUOTE><CODE>
<PRE>
# apt-get install mythtv-suite
</PRE>
</CODE></BLOCKQUOTE>
        
These steps however, do NOT perform the installation of any drivers required
for <B>ALSA</B>, capture cards, <B>lirc kernel modules</B>, etc., nor do
they set up your MythTV database. Check 
<A HREF="http://ATrpms.net/topic/multimedia/">http://ATrpms.net/topic/multimedia/</A> for the drivers you
need.</P>

<H3>Mandriva</H3>

<P>Thac has created RPMs for MythTV for Mandriva which may
be obtained from 
<A HREF="http://rpm.nyvalls.se/">http://rpm.nyvalls.se/</A> If you have problems with the RPMs, please
send him email directly at 
<A HREF="thac@nyvalls.se">thac@nyvalls.se</A>.</P>
<H3>Debian</H3>

<P>Debian packages for MythTV and most of its add-on modules are maintained
by Christian Marillat 
<A HREF="mailto:marillat@free.fr">mailto:marillat@free.fr</A> and are available at 
<A HREF="http://www.debian-multimedia.org/">http://www.debian-multimedia.org/</A>. 
Installation instructions can be found on those pages as well. All of the
prerequisites for MythTV are available as Debian packages, most of them from
the official Debian archive.</P>
<P>If you have followed the instructions on the above page you should have added
<BLOCKQUOTE><CODE>
<PRE>
deb-src http://www.debian-multimedia.org sid main
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>to your <CODE>/etc/apt/sources.list</CODE> file.  Running <B>apt-get update</B> and then
executing <B>apt-get build-dep mythtv</B> should install all the
pre-requisites required to compile MythTV.</P>
<P>
<FIGURE>
<EPS FILE="warning.eps">
<IMG SRC="warning.png">
<CAPTION><B>NOTE</B>:  Due to the requirement for Qt 3.3+, there are no packages for
Debian woody/stable.</CAPTION>
</FIGURE>
</P>

<P>The Debian packages are configured such that MythTV programs should be
run as the <CODE>mythtv</CODE> user, which is automatically created during
installation.  This user has access to write new recordings to disk in the
default directory, read and write the database, access the audio and video
devices, and everything else that MythTV needs to do.</P>

<P>See <CODE>/usr/share/doc/<I>packagename</I>/README.Debian</CODE> for more
information, including copies of the MythTV documentation.  The
<CODE>mythtv-doc</CODE> package contains a copy of this HOWTO in
<CODE>/usr/share/doc/mythtv-doc</CODE>.</P>
<H3>Manual installation</H3>

<P>You may use the graphical tools that come with your distribution, or you
can use command-line utilities.  Either system will get the job done, and it
all depends on your comfort level with Linux.</P>
<P>In order to compile MythTV, we need to make sure that the software it needs
is installed.  This list includes <B>mysql</B>, <B>gcc</B>,
<B>freetype2-devel</B>, <B>xorg-xserver-devel</B>, <B>qt-devel</B> and
<B>lame</B>.  If you're going to use a remote control with MythTV, you're
going to need the <B>cdialog</B> package in order to compile
<B>lircd</B> if your distribution doesn't have a pre-packaged
<B>lirc</B>.  If you are using <B>XMLTV</B> as a grabber, you will need
<B>perl</B>.</P>
<P>
<HR>
<PRE>
NOTE:  Qt v3.3 or higher is required.

NOTE:  MythTV DOES NOT WORK with Qt4.

NOTE:  If you are going to be using RPMs to install various
components, you should be aware that not all packages include the necessary
headers for compiling.  If you're having trouble compiling, ensure
that you've installed the -devel version of a prerequisite.
</PRE>
<HR>
</P>

<H3><A NAME="CLIinstalltools_"></A> Command-line installation </H3>

<P> This section details the various methods for installing prerequisites
from the command line.</P>

<H3>Mandriva</H3>

<P><B>NOTE</B>:  The following instructions should be considered out of
date as of 2006-09-10.  If updated instructions are not submitted by the
release of v0.21 of MythTV they will be removed.</P>
<P><B>urpmi</B> is the simplest tool for installation of packages from the
command line, but properly configuring it can be difficult.  The
following website 
<A HREF="http://easyurpmi.zarb.org/">http://easyurpmi.zarb.org/</A> will allow you to choose
a mirror site and then present the command-line configuration text for that
mirror.  You will most likely need to add a "Contrib" mirror to your setup. 
If you add a site from the "Penguin Liberation Front", you will be able to
load the <CODE>lame</CODE> library without compiling from source.</P>
<P>Open a shell, and execute the following. You may get
asked a number of questions regarding dependencies.  It's best to answer
"YES".
<BLOCKQUOTE><CODE>
<PRE>
$ su
# urpmi mysql gcc gcc-c++ freetype2-devel cdialog alsa-utils
# urpmi XFree86-devel perl
# urpmi libqt3-devel libMesaGLU1-devel
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>
<HR>
<PRE>
NOTE for Mandriva 9.1+ users: execute the following command.

# urpmi libqt3-mysql
</PRE>
<HR>

However, you might get this when you execute the commands above:
<BLOCKQUOTE><CODE>
<PRE>
everything already installed
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>In that case, you're ready to move to the next 
<A HREF="mythtv-HOWTO-4.html#Setting_up_paths">section</A>.  Once you have completed installing the pre-requisites,
exit out of the shell and start a new one to ensure that any environment
variables setup by the installation have a chance to take effect.</P>

<H3>Gentoo. </H3>

<P><B>NOTE</B>:  MythTV does <EM>not</EM> run on Qt4.
If Qt has not been installed on your system: Edit
<CODE>/etc/make.conf</CODE> and locate the "USE" variable. If the line is
commented out, remove the comment. The line should have at least:
<BLOCKQUOTE><CODE>
<PRE>
USE="mysql alsa"
</PRE>
</CODE></BLOCKQUOTE>

Next you need to build Qt. If you don't plan on using the ebuilds as 
described in the Gentoo section then you also need to install lame.
<BLOCKQUOTE><CODE>
<PRE>
# emerge lame mysql qt
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>If you have already installed Qt: you will need to rebuild because the
default installation doesn't include MySQL support, a requirement for MythTV.  
To enable SQL support, add "mysql" to your USE variable in 
<CODE>/etc/make.conf</CODE> and rebuild Qt by running
<BLOCKQUOTE><CODE>
<PRE>
# emerge qt
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>All the necessary files will be downloaded and built. Even on a fast machine
this may take a lot of time if you need to do a full Qt build.</P>

<H3>Debian.</H3>

<P>Build-dependencies for MythTV can be satisfied by adding the following to
your <CODE>/etc/apt/sources.list</CODE>
<BLOCKQUOTE><CODE>
<PRE>
# Christian Marillat's packages (mplayer, lame)
deb http://www.debian-multimedia.org sid main
deb-src http://www.debian-multimedia.org sid main
</PRE>
</CODE></BLOCKQUOTE>

and executing:
<BLOCKQUOTE><CODE>
<PRE>
# apt-get build-dep mythtv
# apt-get source mythtv --compile
</PRE>
</CODE></BLOCKQUOTE>
</P>

<HR>
<A HREF="mythtv-HOWTO-4.html">Next</A>
<A HREF="mythtv-HOWTO-2.html">Previous</A>
<A HREF="mythtv-HOWTO.html#toc3">Contents</A>
</BODY>
</HTML>