User:Cowbutt
From MythTV Official Wiki
Contents
Cowbutt's MythTV Page
With an eye on power consumption, I went for a combined frontend/backend implementation. I tried a quick run through with a scratch machine that I was no longer using. Once I'd determined, it'd probably be up for the job, I bought components specially.
Hardware Specification
- Intel Celeron 1.7GHz CPU
- 512MB RAM (originally 256MB)
- Gigabyte GA-8PE667 Ultra Motherboard (i845PE)
- Seagate ST3500630A PATA 500GB disc (OS, database, recordings)
- Seagate ST3300622A PATA 300GB disc (originally only disc; now music, emulator ROMs)
- LiteOn/JLMS XJ-HD165H DVD-ROM
- NEC ND-4570A DVD+/-RW
- Codegen ATX-9001 case
- 1*Hauppauge Nova-T DVB-T tuner (originally 2)
- 1*Hauppauge Nova-T-500 dual DVB-T tuner with Hauppauge infra-red remote control
- 1*Pace Bt878 Analogue NICAM/FM tuner (not currently used)
- 1*D-Link quad-port NIC
- GeForce4 MX 440 AGP 128MB fanless VGA card (bought used to replace failing cheaper nVidia card)
- home-built VGA-to-RGB SCART adaptor with integrated audio in/out and composite from SCART
- 2*PADIX/Rockfire PX-205 PSX-USB Bridge with two Logic-7 Playstation dual-shock gamepads
- Ruwido/Chicony KB-9820 infra-red PS/2 keyboard/mousepad
- Panasonic TX-28DTX11 100Hz DVB-T 16:9 TV
Software Specification
- Fedora Core 8 running 2.6.23.1-42.fc8 kernel and standard video4linux drivers
- MythTV 20.2 from ATrpms
- pdnsd caching DNS server
- privoxy ad-filtering HTTP proxy
- DHCP daemon
- netfilter/iptables firewall
- NTP server
- nVidia 96.43.01 drivers from ATrpms
- Xmame/Xmess 0.106, fceultra 0.98.12, VisualBoyAdvance 1.7.2, zsnes 1.52, dgen-sdl 1.23
- dvb-usb-dib0700-1.10.fw firmware for Nova-T-500
OS Configuration
Partitioning
/dev/sda1 2668MiB / ext3
/dev/sda2 2668MiB spare
/dev/sda3 2691MiB swap
/dev/sda4 - extended
/dev/sda5 410089MiB /myth/video jfs
/dev/sda6 23847MiB /tmp ext2
/dev/sda7 9547MiB /var ext3
/dev/sda8 19086MiB /usr ext3
/dev/sda9 6346MiB /home ext3
/dev/sdb1 2668MiB spare
/dev/sdb2 2668MiB spare
/dev/sdb3 2691MiB spare
/dev/sdb4 - extended
/dev/sdb5 74395MiB spare
/dev/sdb6 9547MiB spare
/dev/sdb7 1914MiB spare
/dev/sdb8 14316MiB spare
/dev/sdb9 76301MiB /myth/music ext2
/dev/sdb10 101670MiB /myth/emulators ext2
/etc/X11/xorg.conf
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 1.0 (buildmeister@builder3) Wed Dec 14 16:39:22 PST 2005
# XFree86 4 configuration created by pyxf86config
Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
# RgbPath is the location of the RGB database. Note, this is the name of the
# file minus the extension (like ".txt" or ".db"). There is normally
# no need to change the default.
# Multiple FontPath entries are allowed (they are concatenated together)
# By default, Red Hat 6.0 and later now use a font server independent of
# the X server to render fonts.
RgbPath "/usr/X11R6/lib/X11/rgb"
ModulePath "/usr/X11R6/lib/modules/extensions/nvidia"
ModulePath "/usr/X11R6/lib/modules/extensions"
ModulePath "/usr/X11R6/lib/modules"
ModulePath "/usr/lib/xorg/modules/"
EndSection
Section "ServerFlags"
Option "AllowMouseOpenFail"
EndSection
Section "InputDevice"
# Specify which keyboard LEDs can be user-controlled (eg, with xset(1))
# Option "Xleds" "1 2 3"
# To disable the XKEYBOARD extension, uncomment XkbDisable.
# Option "XkbDisable"
# To customise the XKB settings to suit your keyboard, modify the
# lines below (which are the defaults). For example, for a non-U.S.
# keyboard, you will probably want to use:
# Option "XkbModel" "pc102"
# If you have a US Microsoft Natural keyboard, you can use:
# Option "XkbModel" "microsoft"
#
# Then to change the language, change the Layout setting.
# For example, a german layout can be obtained with:
# Option "XkbLayout" "de"
# or:
# Option "XkbLayout" "de"
# Option "XkbVariant" "nodeadkeys"
#
# If you'd like to switch the positions of your capslock and
# control keys, use:
# Option "XkbOptions" "ctrl:swapcaps"
# Or if you just want both to be control, use:
# Option "XkbOptions" "ctrl:nocaps"
#
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "gb"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "yes"
EndSection
Section "Monitor"
# HorizSync 31.5 - 37.9
# VertRefresh 50.0 - 70.0
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Unknown monitor"
HorizSync 0.0 - 16.0
VertRefresh 49.0 - 62.0
ModeLine "800x576pali" 15.4 800 823 895 984 576 580 583 625 -hsync -vsync interlace
ModeLine "800x288pal-half" 15.4 800 823 895 984 288 290 292 313 -hsync -vsync
# ModeLine "768x576pali" 14.8 768 789 858 944 576 581 586 625 -hsync -vsync interlace
# 768x576@14.75 is 15.625kHz horiz sync
ModeLine "768x576pali" 14.75 768 789 858 944 576 581 586 625 -hsync -vsync interlace
ModeLine "768x288pal-half" 14.8 768 792 856 944 288 290 292 313 -hsync -vsync
# ModeLine "720x576pali" 13.9 720 744 808 888 576 580 583 625 -hsync -vsync interlace
# dvb is normally 720x576, 4:3 analogue is normally 768x576
# previous best
# 720x576 w/ 13.5MHz dotclock is 50.0000Hz, 15.6250kHz, checked with hacked xvidtune
# and manually: 864 * 15625 = 13.5M
# Good, but a bit too far to the right - AJB 20071110
# ModeLine "720x576pali" 13.5 720 722 786 864 576 581 586 625 -hsync -vsync interlace
# ModeLine "720x576pali" 13.5 720 727 791 864 576 581 586 625 -hsync -vsync interlace
# ModeLine "720x576pali" 13.5 720 737 801 864 576 581 586 625 -hsync -vsync interlace
ModeLine "720x576pali" 13.5 720 757 821 864 576 581 586 625 -hsync -vsync interlace
# worth trying if 720x576@13.5 flickers:
# from http://www.avforums.com/forums/showthread.php?t=136811&page=33
# ModeLine "720x576" 15.125 720 762 834 968 576 579 607 625 -hsync -vsync interlace
# from http://www.avforums.com/forums/showthread.php?t=136811&page=27
ModeLine "1024x576" 19.750 1024 1056 1152 1264 576 581 586 625 -hsync -vsync interlace
# ModeLine "720x288pal-half" 13.9 720 744 808 888 288 290 292 313 -hsync -vsync
# should be 13.875MHz for 15.625kHz horiz sync
ModeLine "720x288pal-half" 13.875 720 744 808 888 288 290 292 313 -hsync -vsync
# previously used for some oddball broadcasts
# 704x576 w/ 13.5MHz dotclock is 50.0000Hz, 15.6250kHz, checked with hacked xvidtune
ModeLine "704x576pali" 13.5 704 720 784 864 576 580 583 625 -hsync -vsync interlace
ModeLine "704x288pal-half" 13.5 704 720 784 864 288 290 292 313 -hsync -vsync
# appears to be closest to PAL spec, according to:
# http://www.gossamer-threads.com/lists/mythtv/users/191409?search_string=interlace;#191409
# http://www.gossamer-threads.com/lists/mythtv/users/100222?search_string=scart;#100222
# still flickers occasionally with 8776 drivers
# 720x576 w/ 13.875MHz dotclock is 49.98Hz according to xvidtune
# ModeLine "720x576pali" 13.875 720 744 808 888 576 581 586 625 -hsync -vsync interlace
# ModeLine "720x288pal-half" 13.875 720 744 808 888 288 290 293 313 -hsync -vsync
# ModeLine "704x576pali" 13.6 704 728 792 872 576 581 586 625 -hsync -vsync interlace
# ModeLine "704x288pal-half" 13.6 704 728 792 872 288 290 293 313 -hsync -vsync
# previously used for some oddball broadcasts
# ModeLine "704x576pali" 13.5 704 720 784 864 576 580 583 625 -hsync -vsync interlace
# ModeLine "704x288pal-half" 13.5 704 720 784 864 288 290 292 313 -hsync -vsync
ModeLine "648x576pali" 12.5 648 664 720 824 576 580 583 625 -hsync -vsync interlace
ModeLine "648x288pal-half" 12.5 648 664 720 824 288 290 292 313 -hsync -vsync
ModeLine "800x480ntsci" 15.1 800 808 879 960 480 484 487 525 -hsync -vsync interlace
ModeLine "800x240ntsc-half" 15.1 800 808 879 960 240 242 244 263 -hsync -vsync
ModeLine "720x480ntsci" 13.6 720 728 792 864 480 484 487 525 -hsync -vsync interlace
ModeLine "720x240ntsc-half" 13.6 720 728 792 864 240 242 244 263 -hsync -vsync
ModeLine "704x480ntsci" 13.3 704 712 776 848 480 484 487 525 -hsync -vsync interlace
ModeLine "704x240ntsc-half" 13.3 704 712 776 848 240 242 244 263 -hsync -vsync
ModeLine "657x480ntsci" 12.5 656 664 728 792 480 484 487 525 -hsync -vsync interlace
ModeLine "657x240ntsc-half" 12.5 656 664 728 792 240 242 244 263 -hsync -vsync
ModeLine "320x256pal" 10.9 320 352 368 400 256 261 264 269 -hsync -vsync doublescan
ModeLine "320x512pali" 5.5 320 352 368 400 512 523 527 539 -hsync -vsync interlace
ModeLine "320x200pal" 8.4 320 352 368 400 200 204 206 211 -hsync -vsync doublescan
ModeLine "320x400pali" 4.2 320 352 360 392 400 409 411 421 -hsync -vsync interlace
ModeLine "320x400ntsci" 5.1 320 352 368 400 400 409 411 421 -hsync -vsync interlace
ModeLine "320x200ntsc" 10.2 320 352 368 400 200 204 206 211 -hsync -vsync doublescan
ModeLine "352x288pald" 13.5 352 392 492 512 288 292 300 304 -hsync -vsync doublescan
ModeLine "352x288paldi" 13.5 352 392 492 512 288 292 300 304 -hsync -vsync interlace doublescan
Option "dpms"
EndSection
Section "Device"
# next line might make XvMC work
# or fix NV WAIT problems
# ...maybe, but makes picture bounce - AJB 20060403
Option "NvAgp" "1"
Option "UseEvents" "True"
# another thing that might help with NV WAIT - AJB 20060403
# Option "TVStandard" "PAL-I"
Identifier "Videocard0"
Driver "nvidia"
VendorName "Videocard vendor"
BoardName "NVIDIA GeForce 4 (generic)"
Option "RenderAccel" "off"
# Option "TVOutFormat" "COMPOSITE"
Option "ConnectedMonitor" "CRT"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 16
Modes "1024x576" "720x576pali" "720x288pal-half" "704x576pali" "704x288pal-half" "648x576pali" "648x288pal-half"
# Modes "720x576pali" "720x288pal-half" "704x576pali" "704x288pal-half" "648x576pali" "648x288pal-half"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x576" "720x576pali" "720x288pal-half" "704x576pali" "704x288pal-half" "648x576pali" "648x288pal-half"
# Modes "720x576pali" "720x288pal-half" "704x576pali" "704x288pal-half" "648x576pali" "648x288pal-half"
EndSubSection
EndSection
/etc/rc.d/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
# mtd needs mysqld to be up, so moved to mythbackend initscript
# AJB 20071106
#/usr/bin/mtd --daemon
setkeycodes e01e 120
/sbin/setpci -s 00:1f.1 latency_timer=b0 # Intel IDE
/sbin/setpci -s 02:0c.0 latency_timer=b0 # Promise IDE
# nvidia recommended setting as per <http://www.nvnews.net/vbulletin/showpost.php?p=854678&postcount=5>
# - AJB 20060403
/sbin/setpci -s 01:00.0 latency_timer=80
# 240*5s=20m
#hdparm -S 240 /dev/sdb
# AJB 20071105 - 2*30m=60m
hdparm -S 242 /dev/sdb
/etc/sysconfig/lircd
# Options to lircd
LIRCD_OPTIONS="-H dev/input -d /dev/input/by-path/pci-0000:02:03.2--event-ir"
/etc/lircd.conf
# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.8.0(userspace) on Sun Mar 5 23:39:07 2006
#
# contributed by Alex Butcher
#
# brand: Hauppage Nova-T 909 myconfig.conf
# model no. of remote control:
# devices being controlled by this remote:
#
begin remote
name myconfig.conf
bits 16
eps 30
aeps 100
one 0 0
zero 0 0
pre_data_bits 16
pre_data 0x8001
gap 135678
toggle_bit 0
begin codes
Go 0x0161
Power 0x0074
TV 0x0179
Videos 0x0189
Music 0x0188
Pictures 0x016F
Guide 0x016D
Radio 0x0181
UP 0x0067
LEFT 0x0069
RIGHT 0x006A
DOWN 0x006C
OK 0x001C
Back 0x00AE
Menu 0x008B
VolumeUp 0x0073
VolumeDown 0x0072
Prev-Ch 0x019C
ChannelUp 0x0192
ChannelDown 0x0193
Mute 0x0071
Record 0x00A7
Stop 0x0080
Replay 0x00A8
Play 0x00CF
Skip 0x00D0
PreviousTrack 0x00A5
Pause 0x0077
NextTrack 0x00A3
1 0x0002
2 0x0003
3 0x0004
4 0x0005
5 0x0006
6 0x0007
7 0x0008
8 0x0009
9 0x000a
Asterisk 0x0184
0 0x000b
Hash 0x0172
Red 0x018E
Green 0x018F
Yellow 0x0190
Blue 0x0191
end codes
end remote
$HOME/.mythtv/lircrc
# Power Button
begin
prog = irexec
#button = OFF
button = Power
#button = POWER # (for my RS15-2116 remote)
repeat = 0
config = /usr/local/bin/mythpowerbutton.sh
end
# ~/.mythtv/lircrc#
# MythTV native LIRC config file for
# the Hauppauge PVR 150 silver remote
#
# Modified from Jarod Wilson's which came from Jeff Campbell's
# and Brad Templeton's
# Modified still further by Robert Jones
# Here we have the jump point commands. They only work if you have
# defined function keys for these jump points. For me the most
# common command is the menu of recordings, so I put that on "videos"
# even though that's counter-intuitive
begin
prog = mythtv
button = TV
repeat = 3
config = F1
end
begin
prog = mythtv
button = Videos
repeat = 3
config = F2
end
# Not yet defined
begin
prog = mythtv
button = Music
repeat = 3
config = F3
end
begin
prog = mythtv
button = Pictures
repeat = 3
config = F4
end
begin
prog = mythtv
button = Guide
repeat = 3
config = F5
end
begin
prog = mythtv
button = Radio
repeat = 3
config = F6
end
begin
prog = mythtv
button = UP
repeat = 3
config = Up
end
begin
prog = mythtv
button = DOWN
repeat = 3
config = Down
end
begin
prog = mythtv
button = LEFT
repeat = 3
config = Left
end
begin
prog = mythtv
button = RIGHT
repeat = 3
config = Right
end
# Channel Up
begin
prog = mythtv
button = ChannelUp
repeat = 3
config = Up
end
# Channel Down
begin
prog = mythtv
button = ChannelDown
repeat = 3
config = Down
end
# OK/Select
begin
prog = mythtv
button = OK
config = Space
end
# Play
begin
prog = mythtv
button = Play
config = Return
end
# Stop
begin
prog = mythtv
button = Stop
config = I
end
# Escape/Exit/Back
begin
prog = mythtv
button = Back
config = Esc
end
# clashes with irexec definition - AJB 20060401
## Power Off/Exit
#begin
#prog = mythtv
#button = Power
#config = Esc
#end
# Pause
begin
prog = mythtv
button = Pause
repeat = 3
config = P
end
# Mute
begin
prog = mythtv
button = Mute
repeat = 3
config = |
end
# Fast forward (30 sec default)
begin
prog = mythtv
button = Skip
repeat = 3
config = >
end
# Rewind (10 sec default)
begin
prog = mythtv
button = Replay
repeat = 3
config = <
end
# Skip forward (10 min default)
begin
prog = mythtv
button = NextTrack
repeat = 3
config = End
end
# Skip backward (10 min default)
begin
prog = mythtv
button = PreviousTrack
repeat = 3
config = Home
end
# Record
begin
prog = mythtv
button = Record
repeat = 3
config = R
end
# Delete
begin
prog = mythtv
button = Red
repeat = 3
config = D
end
# Decrease play speed
begin
prog = mythtv
button = Green
repeat = 3
config = J
end
# Display EPG while in live TV,
# View selected show while in EPG
begin
prog = mythtv
button = Menu
repeat = 3
config = M
end
begin
prog = mythtv
button = VolumeUp
repeat = 3
config = )
end
begin
prog = mythtv
button = VolumeDown
repeat = 3
config = (
end
# Bring up OSD info
begin
prog = mythtv
button = Go
repeat = 3
config = I
end
# Change display aspect ratio
begin
prog = mythtv
button = Prev-Ch
repeat = 3
config = W
end
# double speed watch
begin
prog = mythtv
button = Yellow
repeat = 3
config = J
end
# change tuners
begin
prog = mythtv
button = Hash
repeat = 3
config = Y
end
# Bring up Time stretch
begin
prog = mythtv
button = Blue
repeat = 3
config = A
end
# Numbers 0-9
begin
prog = mythtv
button = 0
repeat = 3
config = 0
end
begin
prog = mythtv
button = 1
repeat = 3
config = 1
end
begin
prog = mythtv
button = 2
repeat = 3
config = 2
end
begin
prog = mythtv
button = 3
repeat = 3
config = 3
end
begin
prog = mythtv
button = 4
repeat = 3
config = 4
end
begin
prog = mythtv
button = 5
repeat = 3
config = 5
end
begin
prog = mythtv
button = 6
repeat = 3
config = 6
end
begin
prog = mythtv
button = 7
repeat = 3
config = 7
end
begin
prog = mythtv
button = 8
repeat = 3
config = 8
end
begin
prog = mythtv
button = 9
repeat = 3
config = 9
end
### MPlayer lirc setup
# Show OSD
begin
prog = mplayer
button = Menu
repeat = 3
config = osd
end
# Pause playback
begin
prog = mplayer
button = Pause
repeat = 3
config = pause
end
# Skip ahead a minute if playing
# If paused, resume playing
begin
prog = mplayer
button = Play
repeat = 3
config = seek +1
end
# Stop playback and exit
begin
prog = mplayer
button = Stop
repeat = 3
config = quit
end
# Mute
begin
prog = mplayer
button = Mute
repeat = 3
config = mute
end
# Seek back 10 seconds
begin
prog = mplayer
button = Replay
repeat = 3
config = seek -10
end
# Seek forward 30 seconds
begin
prog = mplayer
button = Skip
repeat = 3
config = seek +30
end
# Quit
begin
prog = mplayer
button = Back
repeat = 3
config = quit
end
# Seek forward 10 minutes
begin
prog = mplayer
button = NextTrack
repeat = 3
config = seek +600
end
# Seek backward 10 minutes
begin
prog = mplayer
button = PreviousTrack
repeat = 3
config = seek -600
end
# Toggle full-screen
begin
prog = mplayer
button = Red
repeat = 3
config = vo_fullscreen
end
begin
button = Volumeup
prog = mplayer
config = volume 1
repeat = 1
end
begin
button = VolumeDown
prog = mplayer
config = volume -1
repeat = 1
end
begin
button = ChannelUp
prog = mplayer
config = pt_step 1
end
begin
button = ChannelDown
prog = mplayer
config = pt_step -1
end
begin
button = Yellow
prog = mplayer
config = audio_delay +0.1
end
begin
button = Green
prog = mplayer
config = audio_delay -0.1
end
begin
button=Subtitles
prog=mplayer
config = sub_visibility
end
begin
button=Text
prog=mplayer
config=sub_select
end
begin
button=Blue
prog=mplayer
config=switch_audio
end
### Xine lirc setup
begin
prog = xine
button = Play
repeat = 3
config = Play
end
begin
prog = xine
button = Stop
repeat = 3
config = Stop
end
begin
prog = xine
button = Power
repeat = 3
config = Quit
end
begin
prog = xine
button = Pause
repeat = 3
config = Pause
end
begin
prog = xine
button = ChannelUp
repeat = 3
config = EventUp
end
begin
prog = xine
button = ChannelDown
repeat = 3
config = EventDown
end
begin
prog = xine
button = VolumeDown
repeat = 3
config = EventLeft
end
begin
prog = xine
button = VolumeUp
repeat = 3
config = EventRight
end
begin
prog = xine
button = OK
repeat = 3
config = EventSelect
end
begin
prog = xine
button = Back
repeat = 3
config = Menu
end
begin
prog = xine
button = Skip
repeat = 3
#config = SpeedFaster
config = SeekRelative+60
end
begin
prog = xine
button = Replay
repeat = 3
#config = SpeedSlower
config = SeekRelative-60
end
begin
prog = xine
button = VolumeUp
repeat = 3
config = Volume+
end
begin
prog = xine
button = VolumeDown
repeat = 3
config = Volume-
end
begin
prog = xine
button = Mute
repeat = 3
config = Mute
end
begin
prog = xine
button = Menu
repeat = 3
config = RootMenu
end
begin
prog = xine
button = NextTrack
repeat = 3
config = EventNext
end
begin
prog = xine
button = PreviousTrack
repeat = 3
config = EventPrior
end
begin
prog = xine
button = Go
repeat = 3
config = OSDStreamInfos
end
begin
prog = xine
button = Red
repeat = 3
config = Quit
end
/usr/local/bin/mythpowerbutton.sh
#!/bin/bash
PROG=mythfrontend
#PROG=gnome-session
STATUS=`ps -e | grep $PROG | grep -v grep | wc -l | awk '{print $1}'`
if [ `echo $DISPLAY | grep -c ":0"` -ge 1 ]
then
if [ $STATUS -eq 0 ]
then
echo "use mythconverg; update cardinput set startchan=1;" | mysql -u root --password=root
# xrandr -s 768x576
xrandr -s 1024x576 # AJB 20071104
#( $PROG & )
( $PROG >/dev/null 2>&1 & )
else
killall $PROG
echo "use mythconverg; update cardinput set startchan=1;" | mysql -u root --password=root
fi
fi
exit 0
MythTV Playback Settings
- Deinterlace, Linear Blend (interlaced output sometimes gets out-of-sync with TV)
- Use 1024x576 for UI, 720x576pali for playback
- disable OpenGL sync
- enable SyncToVBlank=1, XVideoTextureSyncToVBlank=1 and XVideoBlitterSyncToVBlank=1 in $HOME/.nvidia-settings-rc