This guide works on Ubuntu Breezy and Ubuntu Dapper. Now it works also with driver 8762
NOTE: this guide has been translated into German by cfBuba:
http://www.ubuntu-forum.de/thread.php?threadid=13096
This guide is inspired to Promethe's, who I really want to thank because I have managed to get my TV-OUT to work thanks to his guide: HOWTO: TV-out in Hoary (nVidia?)
My guide is aimed at newbies who want to enable the TV-OUT port of their Nvidia graphic card. It works ONLY if you have a Nvidia card and it requires the Nvidia proprietary drivers.
If you need a guide to the installation of the Nvidia drivers your can try mine:
Guide for Breezy
Guide for Dapper
If you have problems with the resolution of your main Monitor: HOWTO: change resolution/refresh rate in Xorg
Make a backup of your xorg.conf
Code:
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
.
Edit your xorg.conf
If you use GNOME
Code:
sudo gedit /etc/X11/xorg.conf
OR if you use KDE
Code:
sudo kedit /etc/X11/xorg.conf
OR (this will work on every graphical interface)
Code:
sudo nano /etc/X11/xorg.conf
Get to the “Monitor” section and change the name (i.e. the identifier) of your current monitor to “Monitor[0]” and make it look like the following example:
Before:
Code:
Section "Monitor"
Identifier "AL1715"
Option "DPMS"
EndSection
After:
Code:
Section "Monitor"
Identifier "Monitor[0]" #CRT
Option "DPMS"
HorizSync 31.5-80
VertRefresh 56.3-75
EndSection
In my case the monitor had been detected by Ubuntu as "AL1715" therefore no refresh parameters were set (because that name corresponded to a particular profile)
If your monitor already has the its HorizSync and VertRefresh leave them as they are.
If it doesn't have them then you will have to put them manually as in the previous example (you can find the frequencies of vertical and horizontal refresh for your monitor in its manual or on the internet, in the website of its manufacturer)
Now you have to add your TV as the second monitor. You have to add the following lines under the section of the 1st monitor.
Code:
Section "Monitor"
Identifier "Monitor[1]" #TV
HorizSync 30-50
VertRefresh 60
EndSection
If you wish, you can change the HorizSync and VertRefresh, but those values should work fine on most new TVs.
Get to the "Device" section.
Now you have to change the name (i.e. the identifier) of your primary device (i.e. your graphic card) to "Device[0]" and add the parameter “screen 0” as in the (2nd) example:
Before:
Code:
Section "Device"
Identifier "NVIDIA Corporation NV34 [GeForce FX 5500]"
Driver "nvidia"
BusID "PCI:1:0:0"
EndSection
After:
Code:
Section "Device"
Identifier "Device[0]"
Driver "nvidia"
BusID "PCI:1:0:0"
screen 0
EndSection
Now you have to add the TV-OUT as a device below your Device[0] and add all the options listed below. Make it look EXACTLY like this example:
Code:
Section "Device"
Driver "nvidia"
Identifier "Device[1]"
Screen 1
Option "TVOutFormat" "Composite" #or SVIDEO etc
Option "TVStandard" "PAL-G" #or NTSC etc
Option "ConnectedMonitor" "Monitor[1]"
BusID "PCI:1:0:0" #adjust using 'lspci' or cat /proc/pci
EndSection
You might want to change 2 things in the example above:
1)You can change "Composite" to “SVIDEO” (according to the type of video cable you use)
2)You can change your TVstandard from “PAL-G” to “NTSC-M” or "NTSC-J" according to your tv.
If you did everything correctly you should have two Section “Device” like in the example below:
Code:
Section "Device"
Identifier "Device[0]"
Driver "nvidia"
BusID "PCI:1:0:0"
screen 0
EndSection
Section "Device"
Driver "nvidia"
Identifier "Device[1]"
Screen 1
Option "TVOutFormat" "Composite" #or SVIDEO etc
Option "TVStandard" "PAL-G" #or NTSC-M etc
Option "ConnectedMonitor" "Monitor[1]"
BusID "PCI:1:0:0" #adjust using 'lspci' or cat /proc/pci
EndSection
Get to the “Screen” section and change Identifier, Monitor and Screen like in the (2nd) example below:
Before:
Code:
Section "Screen"
Identifier "Default Screen"
Device "NVIDIA Corporation NV34 [GeForce FX 5500]"
Monitor "AL1715"
etc.
After:
Code:
Section "Screen"
Identifier "Screen[0]"
Device "Device[0]"
Monitor "Monitor[0]"
[Of course the Screen section is longer than the one in the example (it contains your screen resolution, etc.)]
Now you have to put another section under the previous. Make the new section look EXACTLY like the following example:
Code:
Section "Screen"
Device "Device[1]"
Identifier "Screen[1]"
Monitor "Monitor[1]"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1024x768_60"
EndSubSection
EndSection
NOTE if your TV does not support a refresh rate of 60Hz you might want to set this line "Modes "1024x768_60"" as "Modes "1024x768_50"" in order to set the refresh rate to 50Hz
If you did everything correctly you should have two Section “Screen” like in the example below (OF COURSE the resolutions you have in your xorg.conf are likely to be different from mine, therefore leave them as they are):
Code:
Section "Screen"
Identifier "Screen[0]"
Device "Device[0]"
Monitor "Monitor[0]"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
EndSection
Section "Screen"
Device "Device[1]"
Identifier "Screen[1]"
Monitor "Monitor[1]"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1024x768_60"
EndSubSection
EndSection
Now you have to change your "ServerLayout" section and make it look like the following example:
Code:
Section "ServerLayout"
Identifier "Simple Layout"
Screen 0 "Screen[0]"
Screen 1 "Screen[1]" RightOf "Screen[0]"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection
Then change the two words in red and blue in the previous example with the ones you can find in your “InputDevice" section (which I will put in red and blue respectively):
In my case the "InputDevice" Section is the following:
Code:
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "keyboard"
Option "CoreKeyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc105"
Option "XkbLayout" "gb"
EndSection
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
Option "ZAxisMapping" "4 5"
EndSection
Therefore in my case the result would be the following:
Code:
Section "ServerLayout"
Identifier "Simple Layout"
Screen 0 "Screen[0]"
Screen 1 "Screen[1]" RightOf "Screen[0]"
InputDevice "Configured Mouse" "CorePointer"
InputDevice "Generic Keyboard" "CoreKeyboard"
EndSection
Ok, now save your xorg.conf and exit.
Now, let's try it.
Plug in the video cable (make sure that both your TV and your graphic card are linked by this cable)
Log out
Restart your computer.
Then log in and you will be able to see your desktop on your TV screen (ONLY after you login). Keep in mind that it is not a clone of your current desktop. It has its own resolution and you can use it INDEPENDENTLY from the desktop you can see on your main monitor.
For example you can watch a film (in full screen) on your TV screen while writing a text or surfing the web on your main monitor.
Here's how it works:
Move your mouse to the extreme right part of the screen until it disappears from your main monitor. You will now be able to see the cursor on your TV. From there you can use the cursor to open the files you need etc.
If you need to use the mouse cursor in your 1st desktop you have to move it to the extreme left of the screen until it disappears from your TV and reappears on your main Monitor.
Enjoy!
Alberto
Bookmarks