01 Nov

using your TV as an external monitor for your computer

This took me a while to figure out. The scenario is that I have a TV in the main sitting-room, and my main computer is in the kitchen (it’s a small house…). I want to be able to watch my vids (video.google.com, youtube.com, dvd backups, etc) on my TV.

The hardware you need is a video card with a TV-out on it (this article uses the nvidia GeForce FX 5500), an s-video to scart connector, and appropriate cables for the audio and s-video connectors.

Connect the video card’s s-video connection to the Scart thing’s s-video (or Video, if that’s the cable you bought), and connect your audio card’s loudspeaker connection to the audio connectors on the Scart thing.

Once the hardware is all hooked up, you need to configure your Xorg to use your monitor as the main display (:0.0), and your TV as a second monitor (:0.1). Here is the content of my /etc/X11/xorg.conf file:

Section "ServerFlags"
       Option   "AllowMouseOpenFail" "true"
       Option   "DontZap"   "True"
       Option   "DontVTSwitch"   "False"
       Option   "DefaultServerLayout" "GeForce_FX_5200_AGP_TV"
Endsection

Section "ServerLayout"
       Identifier     "GeForce_FX_5200_AGP_TV"
       Screen       0 "Screen0" 0 0
       Screen       1 "Screen1" RightOf "Screen0"
       InputDevice    "Mouse0" "CorePointer"
       InputDevice    "Keyboard0" "CoreKeyboard"
       Option         "Xinerama" "off"
EndSection

Section "Files"
	ModulePath   "/usr/lib/xorg/modules/extensions/nvidia"
	ModulePath   "/usr/lib/xorg/modules"
	FontPath     "unix/:7100"
EndSection

Section "Module"
       Load  "dbe"
       Load  "glx"
       Load  "extmod"
       Load  "fbdevhw"
       Load  "record"
       Load  "freetype"
       Load  "type1"
EndSection

Section "Extensions"
       Option "Composite" "Enable"
EndSection

Section "InputDevice"
    Identifier     "Keyboard0"
    Driver         "kbd"
    Option         "XkbLayout" "us,bg"
    Option         "XkbVariant" ",phonetic"
    Option         "XKbOptions" "grp:alt_shift_toggle,grp_led:scroll"
EndSection

Section "InputDevice"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Device" "/dev/input/mice"
    Option         "Protocol" "IMPS/2"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
	Identifier   "Monitor0"
	VendorName   "Monitor Vendor"
	ModelName    "AOC Spectrum"
	DisplaySize  320	240
	HorizSync    30.0 - 72.0
	VertRefresh  50.0 - 160.0
	Option	    "dpms"
EndSection

Section "Monitor"
       Identifier   "TV"
       VendorName   "Phillips"
       ModelName    "TV"
       HorizSync    30-50
       VertRefresh  60
       Option       "dpms"
EndSection

Section "Device"
       Identifier   "GeForce FX 5200 AGP"
       Driver       "nvidia"
       Option       "UseEdidFreqs" "True"
       VendorName   "GeForce FX 5200"
       BoardName    "GeForce FX 5200"
       BusID        "PCI:1:0:0"
       Option       "NoLogo" "True"
       Option       "TVOverScan" "1.0"
       Option       "NvAGP" "3"
       Option       "ConnectedMonitor" "CRT,TV"
       Option       "RenderAccel" "true"
       Screen 0
EndSection

Section "Device"
       Identifier   "GeForce FX 5200 TV"
       Driver       "nvidia"
       Option       "UseEdidFreqs" "True"
       VendorName   "GeForce FX 5200"
       BoardName    "GeForce FX 5200"
       BusID        "PCI:1:0:0"
       Option       "NoLogo" "True"
       Option       "TVOverScan" "1.0"
       Option       "NvAGP" "3"
       Option       "ConnectedMonitor" "CRT,TV"
       Option       "TVStandard" "PAL-I"
       Option       "TVOutFormat" "COMPOSITE"
       Option       "RenderAccel" "true"
       Screen 1
EndSection

Section "Screen"
    Identifier   "Screen0"
       Device       "GeForce FX 5200 AGP"
       Monitor      "Monitor0"
    DefaultDepth     24
    Subsection "Display"
               Depth       24
               Modes       "1680x1050" "1280x1024" "1280x960" "1024x768" "800x600" "640x480" "400x300"
    EndSubsection
EndSection

Section "Screen"
    Identifier   "Screen1"
    Device       "GeForce FX 5200 TV"
    Monitor      "TV"
    DefaultDepth 24
    Subsection "Display"
               Depth       8
               Modes       "1024x768" "800x600" "640x480"
    EndSubsection
    Subsection "Display"
               Depth       16
               Modes       "1024x768" "800x600" "640x480"
    EndSubsection
    Subsection "Display"
               Depth       24
               Modes       "1024x768" "800x600" "640x480"
    EndSubsection
EndSection

download it here

When you restart your X server, you should see your normal desktop (otherwise, somethings wrong – fix it, and comment about your fix!)

When you run into your TV room and change channel to your AV channel (usually 0 or below). You should see a pretty plain desktop. Note that my setup above is specific to Ireland (PAL-I), and other countries using the above may see their desktop in black and white, or broken up and flickering. If it’s in black/white, then change the “-I” in PAL-I to whatever your local format is (BG, DE, etc). If it’s flickering madly, you probably need NTSC instead.

Okay – it’s all set up!

There are two main ways now to use this – piping the video onto display :0.1, or using the :0.1 desktop directly.

To use the desktop directly, you can use x11vnc, which allows you to export the desktop to a VNC session, which can then be connected to and used from another machine. Anything you do on the local VNC client will be shown on the TV as well.

To do that, open a console window using the desktop user’s account, and type:

x11vnc -display :0.1

The other way is useful if you’re sitting in the sitting-room with a laptop on your lap, and want to play a video without going through the whole VNC thing.

Open a console on your laptop and ssh to the main computer, logging in as the desktop user. Then find the video you wand to display, and open it like this:

DISPLAY=:0.1 mplayer -fs "/archive/films/t/they came from beyond space (public domain, 1967).avi"

That’s quite a good film, by the way – download it here.

I hope this was useful – it’s probably the longest post I’ve written!

6 thoughts on “using your TV as an external monitor for your computer

  1. Hi,

    I am using a geforce7100gs card and tried to connect to the tv with svideo caoonection – tried pretty much of setup but the video on the TV is black and white also little blurred. Checked the PAl settings also – seems to be coorect . any suggestions u have- I am running win vista

    Darsan

  2. Darsan – I have no idea. I don’t use Windows, so cannot really help there. black and white video, though, suggests that your settings are not correct – Make sure it’s the correct variant of PAL. You would be better off asking in a Windows forum, though.

  3. Just the article I was looking for.

    I have the exact same requirement but my TV does have an S-Video in slot. SO can I use the TV as PC display without the s-video to scart connector?

    Thanks a lot for the amazing article, couldn’t have asked for more.

  4. yes, you should be able to. I’m not sure how you would hook the audio in, but I think i remember seeing a TV with an S-video port and some audio inputs as well.

Comments are closed.