HOWTO X Window through Hauppauge 350 TV Out
From Gentoo Linux Wiki
| Installation • Kernel & Hardware • Networks • Portage • Software • System • X Server • Gaming • Non-x86 • Emulators • Misc |
|
|
|
Installation
Tips/Tweaking Usage |
| edit |
Contents |
[edit] Introduction
This howto won't explain how to get your card working, installed, or configured correctly. The assumption here is that you have managed to get past the numerous hurdles involved in getting the Hauppauge TV card up and running and now you would like to run a window manager through your TV. I'm using it to pipe WinTV into my television as opposed to using whatever native TV out capabilities your main graphics card may have.
The first and most confusing step is to ensure that you have the correct driver available which Xorg can use to recognize the TV out on your card and use it as a proper device. I was unable to find the correct file in the media-tv/ivtv portage emerge so I used the driver from the http://ivtv.writeme.ch/ website. The latest stable version as of this writing is 0.2.0.
[edit] Get the driver
NOTE: This page seems very out of date, current (9/25/2006) version of ivtv is ivtv-0.7.0. This page seems to have related information that's more up-to-date. -m
UPDATED INFO: I don't have time to rework this section right now, but the current (5/2006) version of ivtv is 0.4.4, and the X driver (which is a separate download now) is 0.10.6. Both downloads can be found at http://ivtvdriver.org/index.php/Download
- end updated info -
cd /tmp wget http://easynews.dl.sourceforge.net/sourceforge/ivtv/ivtv-0.2.0-rc3k.tgz tar zxvf ivtv-0.2.0-rc3k.tgz cd ivtv-0.2.0-rc3k/utils/ install -c -m 0755 ivtvdev_drv_o /usr/X11R6/lib/modules/drivers/ivtvdev_drv.o
If you're running amd64 (like me), you might be interested in a precompiled ivtvdev xdriver, thankfully you can do the following:
cd /tmp wget http://www.mail-archive.com/ivtv-users@ivtvdriver.org/msg00496/ivtv-xorg.tar.bz2 tar xvjf ivtv-xorg.tar.bz2 cp usr/lib64/modules/drivers/* /usr/lib64/modules/drivers/
- It would be great if someone could host this in a more permanent location
If you are using a non-standard installation, the driver directory may be different:
cp usr/lib64/modules/drivers/* /usr/lib/xorg/modules/drivers
[edit] Single Monitor Configuration
First determine what framebuffer your card is using:
cat /proc/fb
Mine returns:
0 VESA VGA 1 iTVC15 TV out
You will need to replace the lines in the xorg.conf with your appropriate FB device.
I'm going to include the entire contents of my xorg.conf as it can be confusing determining dependencies if you can't see the whole thing.
Note: If you only see the VESA framebuffer, make sure you have the ivtv-fb.ko module loaded.
| File: /etc/X11/xorg.conf |
Section "Module"
Load "dbe"
SubSection "extmod"
Option "omit xfree86-dga"
EndSubSection
Load "type1"
Load "freetype"
Load "glx"
EndSection
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/share/fonts/misc/"
FontPath "/usr/share/fonts/TTF/"
FontPath "/usr/share/fonts/Type1/"
FontPath "/usr/share/fonts/75dpi/"
FontPath "/usr/share/fonts/100dpi/"
EndSection
Section "ServerFlags"
EndSection
Section "InputDevice"
Identifier "Keyboard1"
Driver "kbd"
Option "AutoRepeat" "500 30"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "ExplorerPS/2"
Option "Device" "/dev/input/mice"
Option "Buttons" "7"
Option "ZAxisMapping" "4 5"
EndSection
####HERE ARE THE RELEVANT SECTIONS FOR THIS HOWTO
Section "Monitor"
Identifier "NTSC Monitor"
HorizSync 30-68
VertRefresh 50-120
Mode "720x480"
DotClock 34.564
HTimings 720 752 840 928
VTimings 480 484 488 504
Flags "-HSync" "-VSync"
EndMode
EndSection
Section "Device"
Identifier "Hauppauge PVR 350 iTVC15 Framebuffer"
Driver "ivtvdev"
### change fb1 to whatever your card grabbed when you typed cat /proc/fb
Option "fbdev" "/dev/fb1"
Option "ivtv" "/dev/fb1"
### change the BusID to whatever is reported by lspci
### converted from hex to decimal
BusID "PCI:0:10:0" # lspci says 00:0a.0
### More examples
#BusID "PCI:0:8:0" # lspci says 00:08.0
#BusID "PCI:1:14:0" # lspci says 01:0e.0
#BusID "PCI:0:5:1" # lspci says 00:05.1
EndSection
Section "Screen"
Identifier "Screen0"
Device "Hauppauge PVR 350 iTVC15 Framebuffer"
Monitor "NTSC Monitor"
DefaultDepth 24
DefaultFbbpp 32
Subsection "Display"
Depth 24
FbBpp 32
Modes "720x480"
EndSubsection
EndSection
|
[edit] Dual Monitor Configuration
This is still a work in progress as I have yet to get it to work 100% (7-17-06)
This will hopefully show you how to set up a configuration where you can still have one monitor functioning as a regular computer and have the 350 output to a TV Screen.
Note - I cut out some of the irrelevant stuff to make this a little shorter
| File: /etc/X11/xorg.conf |
Section "Device"
Identifier "Nvidia"
Driver "nvidia"
#VideoRam 65536
# Insert Clocks lines here if appropriate
EndSection
Section "Device"
Identifier "Hauppauge PVR 350 iTVC15 Framebuffer"
Driver "ivtvdev"
Option "fbdev" "/dev/fb0" # <-- modify if using another device
BusID "PCI:0:11:0" # get the ID with lspci convert the value from hexa to decimal
EndSection
Section "Screen"
Identifier "Screen 1"
Device "Nvidia"
Monitor "My Monitor"
DefaultDepth 24
EndSection
Section "Screen"
Identifier "TVScreen"
Device "Hauppauge PVR 350 iTVC15 Framebuffer"
Monitor "NTSC Monitor"
DefaultDepth 24
DefaultFbbpp 32
Subsection "Display"
Depth 24
FbBpp 32
Modes "720x480"
EndSubsection
EndSection
Section "ServerLayout"
Identifier "Simple Layout"
Screen 0 "Screen 1"
Screen 1 "TVScreen" RightOf "Screen 1"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection
|
This creates two screens which are next to each other. Note - you can't drag windows between the monitor and the TV screen because Xinerama isn't running.
At this point, if you restart X, you should get X on the TV screen as well. To start mythtv on that, do
export DISPLAY=:0.1 mythfrontend
Mythtv SHOULD start up on the TV screen. Although as of right now, it's all black and blotchy for me, so I'm trying to work that out.

