Diff for "NvidiaTVOut"


Differences between revisions 1 and 9 (spanning 8 versions)
Revision 1 as of 2005-07-23 12:22:21
Size: 945
Editor: gw
Comment:
Revision 9 as of 2006-01-21 22:40:08
Size: 6697
Editor: zux221-111-188
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
== Using TwinView ==
Line 13: Line 14:
Add the following to the Device section of your xorg.conf file and save it: Add the following to the {{{Device}}} section of your xorg.conf file and save it:
Line 24: Line 25:
If your TV uses PAL change {{{"NTSC-M"}}} to {{{"PAL-G"}}} If your TV uses PAL change {{{"NTSC-M"}}} to {{{"PAL-B"}}}, or other TVStandard. A modestly comprehensive list is available below.
Line 28: Line 29:

== A more complicated way ==
Some cards are not able to use twinview, or you might not have much luck with the above. An alternative is to edit your '''/etc/X11/xorg.conf''' file as detailed below. An advantage of this way is that you can have your desktop on your monitor while playing a movie on your television.

First, backup your original xorg.conf.
{{{
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
}}}

Opening up the file with the command {{{sudo gedit /etc/X11/xorg.conf}}}, you will first need to edit the {{{Device}}} section.

{{{
Section "Device"
        Identifier "Device0"
        Driver "nvidia"
        Screen 0
        Option "NoLogo" "true"
        Option "RenderAccel" "true"
        BusID "PCI:02:09:0"
EndSection

Section "Device"
        Identifier "Device1"
        Driver "nvidia"
        Screen 1
        BusID "PCI:02:09:0"
EndSection
}}}

The {{{NoLogo}}} and {{{RenderAccel}}} options are completely optional, but it is very important that you put in the {{{BusID}}}. You can find this using {{{lspci}}} or checking the contents of '''/var/log/Xorg.0.log'''.

Next, find the {{{Monitor}}} section and edit it as in the following example.
{{{
Section "Monitor"
        Identifier "Monitor" #CRT
        HorizSync 30-70
        VertRefresh 50-140
        Option "DPMS"
EndSection

Section "Monitor"
        Identifier "Television" #TV
        HorizSync 30-50
        VertRefresh 60
EndSection
}}}
The Nvidia documentation suggest that you can use {{{HorizSync}}} values for your TV of 30-50, but I had no luck with that. Running {{{startx}}} with verbose logging can give you the correct values for your television if neither work for you. For your monitor, you can find additional information [:FixVideoResolutionHowto:here]

Next, find the {{{Screen}}} section and edit it as in the following example. Naturally, you'll have to supply your own {{{Modelines}}} depending what what resolutions you want / are supported. This example is about as generic as you can get, however, and will work on many TV and CRT combinations.
{{{
Section "Screen"
        Identifier "Screen0"
        Device "Device0"
        Monitor "Monitor"
        DefaultDepth 24
        Option "ConnectedMonitor" "CRT"
        SubSection "Display"
                Depth 24
                Modes "1024x768" "800x600" "640x480"
        EndSubSection
EndSection

Section "Screen"
        Identifier "Screen1"
        Device "Device1"
        Monitor "Television"
        DefaultDepth 24
        Option "TVOutFormat" "SVIDEO"
        Option "TVStandard" "NTSC-M"
        Option "ConnectedMonitor" "TV"
        SubSection "Display"
                Depth 24
                Modes "640x480"
        EndSubSection
EndSection
}}}
Other {{{TVOutFormat}}} values can be {{{COMPOSITE}}} or {{{S-VIDEO}}}, depending on what version of the nvidia drivers you are using (S-VIDEO does ''not'' work with the 1.0-7667 drivers, do not use the hyphen). The proper value for {{{TVStandard}}} can be found in the table below.

On my system it was necessary to explicitly set what 'head' that was used with the ConnectedMonitor option. For example 'CRT-0' and 'TV-0'. This is also documented under [http://archive.avsforum.com/avs-vb/history/topic/438201-1.html Multiple X Screens with Nvidia cards]

Finally, find the {{{ServerLayout}}} section and set it up as follows. If you prefer, you can use {{{leftof}}} instead of {{{rightof}}}. Other options can be found in the xorg.conf man page.

{{{
Section "ServerLayout"
        Identifier "Basic Layout"
        Screen 0 "Screen0"
        Screen 1 "Screen1" rightof "Screen0"
        InputDevice "Generic Keyboard"
        InputDevice "Configured Mouse"
EndSection
}}}

Now simply restart the X server, and it might actually work. If it doesn't, all errors will be in '''/var/log/Xorg.0.log''', allowing you to find error messages and make the suggested changes.


= Finding your TVStandard =
Due to various historical reasons, there are two main standards; NTSC in the Americas and Japan, and PAL in Europe and much of the rest of the world. Nvidia also supports HDTV standareds such as 1080i and 720p. This list can also be found in Nvidia's [ftp://download.nvidia.com/XFree86/Linux-x86/1.0-7667/README.txt ReadMe]



||PAL-B||Belgium, Denmark, Finland, Germany, Guinea, Hong Kong, India, Indonesia, Italy, Malaysia, The Netherlands, Norway, Portugal, Singapore, Spain, Sweden, and Switzerland||
||PAL-D||China and North Korea||
||PAL-G||Denmark, Finland, Germany, Italy, Malaysia, The Netherlands, Norway, Portugal, Spain, Sweden, and Switzerland||
||PAL-H||Belgium||
||PAL-I||Hong Kong, Ireland, and United Kingdom||
||PAL-K1||Guinea||
||PAL-M||Brazil||
||PAL-N||France, Paraguay, and Uruguay||
||PAL-NC||Argentina||
||NTSC-J||Japan||
||NTSC-M||Canada, Chile, Colombia, Costa Rica, Ecuador, Haiti, Honduras, Mexico, Panama, Puerto Rico, South Korea, Taiwan, United States of America, and Venezuela||
||HD480i||480 line interlaced||
||HD480p||480 line progressive||
||HD720p||720 line progressive||
||HD1080i||1080 line interlaced||
||HD1080p||1080 line progressive||
||HD576i||576 line interlace||
||HD576p||576 line progressive||


Credits:
 * [http://www.ubuntuforums.org/showthread.php?t=50749&highlight=simultaneously+monitor+TV kayas80]
 * [ftp://download.nvidia.com/XFree86/Linux-x86/1.0-7667/README.txt Nvidia ReadMe]

With this howto for your Nvidia graphic card, you can view X simultaneously on your monitor and TV.

Using TwinView

Backup your xorg.conf

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

Edit your xorg.conf

sudo gedit /etc/X11/xorg.conf

Add the following to the Device section of your xorg.conf file and save it:

Option "TwinView" "true"
Option "TwinViewOrientation" "Clone"
Option "TVOutFormat" "COMPOSITE"
Option "TVStandard" "NTSC-M"
Option "SecondMonitorHorizSync" "30-50"
Option "SecondMonitorVertRefresh" "60"
Option "MetaModes" "1024x768,1024x768;800x600,800x600;640x480,640x480;    512x384,512x384"

If you are using an S-Video cable change "COMPOSITE" to "S-VIDEO" If your TV uses PAL change "NTSC-M" to "PAL-B", or other TVStandard. A modestly comprehensive list is available below. You may also change MetaModes to whatever is appropriate for your system!

Now you need to restart X

A more complicated way

Some cards are not able to use twinview, or you might not have much luck with the above. An alternative is to edit your /etc/X11/xorg.conf file as detailed below. An advantage of this way is that you can have your desktop on your monitor while playing a movie on your television.

First, backup your original xorg.conf.

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

Opening up the file with the command sudo gedit /etc/X11/xorg.conf, you will first need to edit the Device section.

Section "Device"
        Identifier      "Device0"
        Driver          "nvidia"
        Screen 0
        Option  "NoLogo"        "true"
        Option  "RenderAccel"   "true"
        BusID   "PCI:02:09:0"
EndSection

Section "Device"
        Identifier      "Device1"
        Driver "nvidia"
        Screen 1
        BusID   "PCI:02:09:0"
EndSection

The NoLogo and RenderAccel options are completely optional, but it is very important that you put in the BusID. You can find this using lspci or checking the contents of /var/log/Xorg.0.log.

Next, find the Monitor section and edit it as in the following example.

Section "Monitor"
        Identifier      "Monitor" #CRT
        HorizSync       30-70
        VertRefresh     50-140
        Option          "DPMS"
EndSection

Section "Monitor"
        Identifier "Television" #TV
        HorizSync 30-50
        VertRefresh 60
EndSection

The Nvidia documentation suggest that you can use HorizSync values for your TV of 30-50, but I had no luck with that. Running startx with verbose logging can give you the correct values for your television if neither work for you. For your monitor, you can find additional information [:FixVideoResolutionHowto:here]

Next, find the Screen section and edit it as in the following example. Naturally, you'll have to supply your own Modelines depending what what resolutions you want / are supported. This example is about as generic as you can get, however, and will work on many TV and CRT combinations.

Section "Screen"
        Identifier      "Screen0"
        Device          "Device0"
        Monitor         "Monitor"
        DefaultDepth    24
        Option  "ConnectedMonitor" "CRT"
        SubSection "Display"
                Depth           24
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
EndSection

Section "Screen"
        Identifier      "Screen1"
        Device          "Device1"
        Monitor         "Television"
        DefaultDepth    24
        Option  "TVOutFormat" "SVIDEO"
        Option  "TVStandard" "NTSC-M"
        Option  "ConnectedMonitor" "TV"
        SubSection "Display"
                Depth 24
                Modes "640x480"
        EndSubSection
EndSection

Other TVOutFormat values can be COMPOSITE or S-VIDEO, depending on what version of the nvidia drivers you are using (S-VIDEO does not work with the 1.0-7667 drivers, do not use the hyphen). The proper value for TVStandard can be found in the table below.

On my system it was necessary to explicitly set what 'head' that was used with the ConnectedMonitor option. For example 'CRT-0' and 'TV-0'. This is also documented under [http://archive.avsforum.com/avs-vb/history/topic/438201-1.html Multiple X Screens with Nvidia cards]

Finally, find the ServerLayout section and set it up as follows. If you prefer, you can use leftof instead of rightof. Other options can be found in the xorg.conf man page.

Section "ServerLayout"
        Identifier      "Basic Layout"
        Screen 0        "Screen0"
        Screen 1        "Screen1" rightof "Screen0"
        InputDevice     "Generic Keyboard"
        InputDevice     "Configured Mouse"
EndSection

Now simply restart the X server, and it might actually work. If it doesn't, all errors will be in /var/log/Xorg.0.log, allowing you to find error messages and make the suggested changes.

Finding your TVStandard

Due to various historical reasons, there are two main standards; NTSC in the Americas and Japan, and PAL in Europe and much of the rest of the world. Nvidia also supports HDTV standareds such as 1080i and 720p. This list can also be found in Nvidia's [ftp://download.nvidia.com/XFree86/Linux-x86/1.0-7667/README.txt ReadMe]

PAL-B

Belgium, Denmark, Finland, Germany, Guinea, Hong Kong, India, Indonesia, Italy, Malaysia, The Netherlands, Norway, Portugal, Singapore, Spain, Sweden, and Switzerland

PAL-D

China and North Korea

PAL-G

Denmark, Finland, Germany, Italy, Malaysia, The Netherlands, Norway, Portugal, Spain, Sweden, and Switzerland

PAL-H

Belgium

PAL-I

Hong Kong, Ireland, and United Kingdom

PAL-K1

Guinea

PAL-M

Brazil

PAL-N

France, Paraguay, and Uruguay

PAL-NC

Argentina

NTSC-J

Japan

NTSC-M

Canada, Chile, Colombia, Costa Rica, Ecuador, Haiti, Honduras, Mexico, Panama, Puerto Rico, South Korea, Taiwan, United States of America, and Venezuela

HD480i

480 line interlaced

HD480p

480 line progressive

HD720p

720 line progressive

HD1080i

1080 line interlaced

HD1080p

1080 line progressive

HD576i

576 line interlace

HD576p

576 line progressive

Credits:


CategoryHardware CategoryDocumentation

NvidiaTVOut (last edited 2009-04-30 03:21:58 by adsl190-027000006)