|
nVidia TV-out
27 April 2004
Status
- TV-out works fine from the S-Video cable, using a configuration in X11 (nvtv not needed)
- S-video to composite conversion doesn't work (but might work with tweaking)
Software and guides
NVTV
The nvtv
project is still alive and kicking (new files released March 2004)
-- check out their forum.
It's a Debian package!
Tool to control TV chips on NVidia cards under
Linux This is a program to control the TV encoder chips on NVidia
cards under Linux, in order to get tv-out with a wide range of
resolutions and sizes, including "overscan" modes.
The developer, Dirk
Thierbach
<dthierbach@users.sourceforge.net>, a young mathematician, is
also a rivatv developer -- the nvtv code derives in large part from
this project.
Nvtv works with nVidia's binary driver and also with the free nv
drivers. The executable is called tvtools. The Debian package appears
to be fully up-to-date (see changelog),
maintained by Roberto Lumbreras <rover@debian.org>
The nvtv package issues this on installation:
Starting NVidia TV-Out server: nvtvd
This allows you to run the gui as a normal user -- just issue nvtv. All
the variables are there! It's amazing how hard it is to find out what's
available in Linux, even in Debian. I even had this package installed
and had no idea it had a gui. The daemon appears to be a novelty.
See man page for commands and /usr/share/doc/nvtv/USAGE.gz for details
-- it's unzipped at /usr/share/doc/nvtv/USAGE.
With regard to the composite issue, the man page says that the option
--connector has the parameter CONVERT, which "compensates for cheap
SVideo to composite converter cables that don't merge both lines". This
could be the solution to the problem.
Basic TV-out configuration
startx -- -logverbose 5
The monitor detection system relies in i2c -- which you
currently have installed (2.6.5), but make sure you have all parts
needed.
In the X11 configuration file, add this:
Option "TVStandard"
"NTSC-M"
Option "TVOutFormat" "SVIDEO"
Option "TwinView"
Option "TwinViewOrientation" "Clone"
Option "SecondMonitorHorizSync" "30 - 50"
Option "SecondMonitorVertRefresh" "60"
Option "MetaModes" "640x480,640x480"
#Option "MetaModes" "1024x768,1024x768"
Source.
Also try this:
Option "TVOverScan" "1.0"
Legal values are decimal values in the range 1.0 (which means overscan
as much as possible: make the image as large as possible) and 0.0
(which means disable overscanning: make the image as small as
possible). Overscanning is disabled (0.0) by default. Source
There may be a problem with the 5336 driver and TV-out on P4 -- see discussion.
See also a possible
problem using the TV in twinview.
Sophisticated TV-out configuration
Here's a cool setup for starting a second X-windows server that plays a
movie and then exits.
TV-Out
mit nVidia Grafikarten
And this variant of the above (source):
- You don switch your existing X-server to the TV
- instead you start another one (accessible with alt+F8 when its
started, switch back using alt+F7)
- configure your /etc/X11/XF86Config(-4)
mine looks like this:
__________________________________________________ _________
############## Changelog ##################################
# 14.02.2004: added Monitor off feature: in Monitor Section and Server
Layout Section
#
#
#
#######################################################
Section "Module"
# This loads the DBE extension module.
Load "dbe" # Double buffer extension
# This loads the miscellaneous extensions module, and disables
# initialisation of the XFree86-DGA extension within that module.
SubSection "extmod"
Option "omit xfree86-dga" # don't initialise the DGA extension
EndSubSection
# This loads the Type1 and FreeType font modules
Load "type1"
Load "freetype"
# This loads the GLX module
Load "glx"
EndSection
# **************************************************
********************
# Files section. This allows default font and rgb paths to be set
# **************************************************
********************
Section "Files"
FontPath "/usr/X11R6/lib/X11/fonts/local"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo"
FontPath "/usr/X11R6/lib/X11/fonts/truetype"
RgbPath "/usr/X11R6/lib/X11/rgb"
EndSection
# **************************************************
********************
# Server flags section.
# **************************************************
********************
Section "ServerFlags"
EndSection
# **************************************************
********************
# Input devices
# **************************************************
********************
# **************************************************
********************
# Core keyboard's InputDevice section
# **************************************************
********************
Section "InputDevice"
Identifier "Keyboard1"
Driver "Keyboard"
Option "AutoRepeat" "500 30"
# Option "XkbDisable"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc105"
Option "XkbLayout" "de"
EndSection
# **************************************************
********************
# Core Pointer's InputDevice section
# **************************************************
********************
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "ExplorerPS/2"
Option "Device" "/dev/psaux"
Option "ZAxisMapping" "6 7"
Option "Buttons" "7"
Option "Resolution" "1500"
Option "Emulate3Buttons"
# Option "Emulate3Timeout" "50"
EndSection
# **************************************************
********************
# Monitor section
# **************************************************
********************
# Any number of monitor sections may be present
Section "Monitor"
Identifier "CTX VL710"
HorizSync 31.5-96
Modeline "1152x864" 120.00 1152 1208 1336 1488 864 865 868 896 +hsync
+vsync
VertRefresh 60-120
Option "DPMS"
EndSection
Section "Monitor"
Identifier "Monitor[1]"
ModelName "PAL TV"
VendorName "SONY"
VertRefresh 60
HorizSync 30-50
EndSection
# **************************************************
********************
# Graphics device section
# **************************************************
********************
Section "Device"
Identifier "GF4 Ti-4200"
Driver "nvidia"
VideoRam 131072
Option "NvAGP" "1"
Option "NoLogo" "True"
Option "HWCursor" "True"
Option "CursorShadow" "on"
Option "CursorShadowAlpha" "32"
Option "CursorShadowXOffset" "2"
Option "CursorShadowYOffset" "2"
EndSection
Section "Device"
BoardName "GF4 Ti-4200"
BusID "1:0:0"
Driver "nvidia"
Identifier "Device[1]"
Screen 0
VendorName "Nvidia"
Option "NoLogo" "on"
Option "CursorShadow" "on"
Option "CursorShadowAlpha" "32"
Option "CursorShadowXOffset" "2"
Option "CursorShadowYOffset" "2"
Option "TVOutFormat" "COMPOSITE"
Option "TVStandard" "PAL-B"
Option "ConnectedMonitor" "TV"
EndSection
# **************************************************
********************
# Screen sections
# **************************************************
********************
Section "Screen"
Identifier "Monitor"
Device "GF4 Ti-4200"
Monitor "CTX VL710"
DefaultDepth 24
Option "ConnectedMonitor" "CRT"
Subsection "Display"
Depth 8
Modes "640x480" "800x600" "1024x768" "1280x1024"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 16
Modes "1152x864" "1280x1024" "1024x768"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 24
Modes "1152x864" "1280x1024" "1024x768"
Virtual 1152 864
ViewPort 0 0
EndSubsection
EndSection
Section "Screen"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "800x600"
EndSubSection
Device "Device[1]"
Identifier "TV"
Monitor "Monitor[1]"
EndSection
# **************************************************
********************
# ServerLayout sections.
# **************************************************
********************
Section "ServerLayout"
Identifier "Simple Layout"
Screen "Monitor"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
Option "Offtime" "15"
EndSection
__________________________________________________ __________
Make your appropriate changes and save it. Then restart X!
You should now be able to start another X Server. Much easier is to
just start a Movie with this script here:
______________________________________________ __________
#!/bin/bash
X -screen TV :1 -ac & sleep 2; DISPLAY=:1 xine --fullscreen "$1"
&& kill
`ps aux | awk '/X\ -screen/ {print $2}' `
__________________________________________________ __________
Save the text above to a file and make it executable using
# chmod u+x filename
Then start the script using:
# filename /path/to/movie/moviefilename.extension
Just kill the TV-Out with ctrl+alt+backspace, you will return to your
first X-Server. Or use Alt+F7 and Alt+F8 to switch between both.
Someone responded,
I'm using a similar method to watch movies, my script
is:
#!/bin/sh
unset DISPLAY
unset XAUTHORITY
xinit $* -- :1 -screen Screen1
When i switch to TV out, my LCD goes blank
27 April 2004 update
1. nvtvd starts on boot, from /etc/init.d/nvtvd. X11 is started with the twinview configuration for the Dell monitor:
Section "Device"
Identifier "nVidia[0]"
Driver "nvidia"
BoardName "NV17 GeForce4 420 Go 32M"
Option
"NoLogo"
"On"
BusID "PCI:1:0:0"
EndSection
Section "Screen"
Identifier "Screen[0]"
Device "nVidia[0]"
Monitor "Monitor[0]"
Option "TwinView"
Option "MetaModes" "1600x1200, 1280x854 +0+1200; 1600x1200 +0+0, 1280x854
nvtv -l
Null chip: create
Modes for Unknown chip (0:A0) on GeForce4 420 Go 32M (01:00.00)
Note that if I disconnect the external monitor I get this:
nvtv -l
Fatal: No encoder chip found, and none specified.
With the external monitor connected:
nvtv -P
NVTV 0.4.6 Probe
GeForce4 420 Go 32M (01:00.00) (0176) io=0xE9000000
Null chip: create
MC_boot=017600A5 FB_boot=00000000 FB_conf=08C10001 EXT_boot=80D3ECB5
PCRTC 1/2:
Assoc = 00001110 Config = 00000002
PRAMDAC 1/2:
PLL coeff = 30000F00 0x524 =
00010040 VPLL = 00010C01 / 00024706
Gen Ctrl = 20100130 Test Ctrl = F0000000 TV Setup = 00000000
FP Test = 00000000 TG Ctrl = 11000011 FP Debug = 01101111
TV blank = v= 00000000-00000000 h= 00000000-00000000 40000000
TV slave = v= 00000000-00000000 h= 00000000-00000000 00000000,00000000
TV slave' = 00000000
PCRTC 2/2:
Assoc = 00000000 Config = 00000002
PRAMDAC 2/2:
PLL coeff = 00000000 0x524 =
00000000 VPLL = 0007F7DE / 00077EFD
Gen Ctrl = 20100130 Test Ctrl = F0010000 TV Setup = 00000001
FP Test = 00000000 TG Ctrl = 11000011 FP Debug = 21101191
TV blank = v= 00000000-00000000 h= 00000000-00000000 40000000
TV slave = v= 00000000-00000000 h= 00000000-00000000 00000000,00000000
TV slave' = 00000000
CRT registers 1/2:
00: 09 C7 C7 8D D1 09 E0 10 00 40 0D 0E 00 00 3F FF
10: B0 83 AF 80 00 AF E1 E3 FF 60 38 13 3C 00 00 03
20: B0 FE 00 A3 00 0F 30 A5 03 00 00 70 00 11 00 01
30: FE 60 00 00 02 10 3E 31 00 FF 03 23 D8 00 3E 31
40: 00 00 00 01 00 80 00 00 00 54 00 41 00 55 06 00
50: 3E 31 0C 40 00 00 14 00 BF 00 00 00 00 56 A2 00
60: 5F 4F 50 62 5C 5D 00 01 0B 02 8F 01 08 02 08 02
70: 0C 09 5F 4F 50 62 54 60 00 00 BF 01 8F 01 96 01
80: 9C 01 B9 9E 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
CRT registers 2/2:
00: F9 9F 9F 9F D8 59 7A FF 00 60 0D 0E D0 00 3F FF
10: 77 88 55 80 00 77 7B E3 FF 60 B8 93 3C 00 00 03
20: B0 FE 00 A3 00 10 20 A5 83 00 00 00 00 30 00 01
30: FE 60 00 03 02 02 31 30 00 FF 00 11 00 00 02 30
40: 00 00 00 01 00 80 00 00 00 00 00 00 10 11 02 00
50: 32 30 08 00 00 40 00 00 FF 00 00 00 00 12 A2 00
60: 5F 4F 50 62 5C 5D 00 01 0B 02 8F 01 08 02 08 02
70: 0C 09 5F 4F 50 62 54 60 00 00 BF 01 8F 01 96 01
80: 9C 01 B9 9E 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ATTR registers 1/2:
00: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10: 01 00 0F 00 00 05 0F 07 09 09 0F 0B 0C 0D 0F 0F
ATTR registers 2/2:
00: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10: 01 00 0F 00 00 05 0F 07 09 09 0F 0B 0C 0D 0F 0F
SEQ registers 1/2:
00: 03 01 0F 00 0E 00 00 00 03 01 0F 00 0E 00 00 00
GR registers 1/2:
00: 00 00 00 00 00 40 05 0F FF 00 00 00 00 00 00 00
MISC registers 1/2:
input0=70 vse=01 feat=00 misc=2B
SEQ registers 2/2:
00: 03 01 0F 00 0E 00 00 00 03 01 0F 00 0E 00 00 00
GR registers 2/2:
00: 00 00 00 00 00 40 05 0F FF 00 00 00 00 00 00 00
MISC registers 2/2:
input0=70 vse=01 feat=00 misc=EB
I2C Devices: 0:A0
2. nvtv starts on boot, X11 starts with this:
Section "Device"
Identifier "nVidia[0]"
Driver "nvidia"
BoardName "NV17 GeForce4 420 Go 32M"
BusID "PCI:1:0:0"
Option "NoLogo"
Option "NvAGP" "3"
Option "RenderAccel"
Option "ConnectedMonitor" "TV,DFP"
Option "TwinView"
Option "TVStandard" "NTSC-M"
Option "TVOutFormat" "SVIDEO"
# Option "TVOutFormat" "Composite"
Option "SecondMonitorHorizSync" "28 - 85"
Option "SecondMonitorVertRefresh" "0 - 70"
Option "MetaModes" " 800x600, 1280x854 +0+600; 800x600 @1280x600 +0+0, 1280x854; , 1280x854; 800x600 @1280x600 , "
nvtv segfaults -- see strace
nvtv -l -- says no encoder chip found
|
|