Tech Support > Operating Systems > Linux / Variants > s-video out to tv
s-video out to tv
Posted by S. F. Thomas on November 20th, 2003


I have been trying to use my tv as a monitor for my (no-name) laptop
running suse 8.2 linux. (The purpose is to be able to view dvd played
on my laptop on a big tv screen, also to have a big-screen monitor for
presentations from my laptop). The laptop has an S-video out port for
just such a purpose. Thus far I have not been able to get it to work.

I have modified my XF86Config file to include the following snippet in
the "Screen" section:

------------------------------------
#Define TV-out:
Option "DPMS" "on"
Option "TVStandard" "NTSC"
Option "TVOutFormat" "SVIDEO"
Option "TwinView" "on"
Option "TwinViewOrientation" "Clone"
Option "ConnectedMonitor" "CRT, TV"
Option "SecondMonitorHorizSync" "30-50"
Option "SecondMonitorVertRefresh" "60-60"
Option "MetaModes" "1280x1024,800x600;
1024x768,800x600; 800x600,800x600; 640x480,640x480"
Option "ConnectedMonitor" "CRT, TV"
Option "CursorShadow" "on"
Option "CursorShadowAlpha" "32"
--------------------------------------

No success.

If some kind soul would let me know how to get this working under
Linux (Suse 8.2 in my case), or point me to a link with the
information, I'd appreciate it.

Thanks in advance.

Sidney

Posted by J.O. Aho on November 20th, 2003


S. F. Thomas wrote:
Remove all dubblicate entries in your config file. Remove the DPMS mode, as
this don't belong to the device-section but the monitor-section and don't take
any option.
Change your SecondMonitorVertRefresh to "60".

Laptops have a less powerfull nVidia chips, can be that your laptop don't
handle monitor and tv out at the same time, add one
"1280x1024,NULL;NULL,640x480" to your MetaModes list and see if it works.

You should use the TRUE/FALSE values instead of no/yes, as it's not always
sure that the no and yes will be translated to bool values.

You may need to use the following setting too:
Option "NoTwinViewXineramaInfo" "<BOOL VALUE>"


It can be good to have all the used screenmodes in MetaModes string in your
screen-section, some systems have had problems if not. don't forget that
"Depth 24" is the same as 32bits, "Depth 32" isn't supported as option.

To change resolution, you can use [CTRL]-[ALT]-[numpad +] and
[CTRL]-[ALT]-[numpad -], but some versions of XFree86 have this disabled (has
mostly only been devel versions).


//Aho


Posted by S. F. Thomas on November 21st, 2003


"J.O. Aho" <user@example.net> wrote in message news:<bpj7jo$1pmhms$1@ID-130698.news.uni-berlin.de>...
Thanks for the pointers. No success yet, unfortunately, but I think
I'm close, because when booting the laptop, the tv screen flickers for
a little bit, before however settling down to remain resolutely, and
maddeningly, blank.

You say above that the chip may not be powerful enough to run two
devices simultaneously. How to configure it so that it runs just one,
but defaults to the tv screen rather than the laptop? I'm reproducing
below my entire config file as it now stands. If you can take another
look and let me know what else might still be wrong, I'd appreciate
it. Btw it shows that the chip is an "SiS650", and the driver is named
"sis".

Any help would be much appreciated.

Sidney

PS. Here is the config file, minus the font-related stuff

---------------------------
<font-related stuff snipped>

Section "ServerFlags"
Option "AllowMouseOpenFail"
EndSection

Section "Module"
Load "glx"
Load "dbe"
Load "extmod"
Load "freetype"
Load "v4l"
Load "type1"
Load "speedo"
EndSection

Section "InputDevice"
Driver "Keyboard"
Identifier "Keyboard[0]"
Option "MapName" "Standard Keyboard [ pc104 ]"
Option "Protocol" "Standard"
Option "XkbLayout" "us"
Option "XkbModel" "pc104"
Option "XkbRules" "xfree86"
EndSection

Section "InputDevice"
Driver "mouse"
Identifier "Mouse[1]"
Option "Device" "/dev/mouse"
Option "Emulate3Buttons" "on"
Option "Name" "Autodetection"
Option "Protocol" "ps/2"
Option "Vendor" "Sysp"
EndSection

Section "Monitor"
Option "CalcAlgorithm" "CheckDesktopGeometry"
HorizSync 31-48
Identifier "Monitor[0]"
ModelName "1024X768@60HZ"
VendorName "--> VESA"
VertRefresh 50-60
UseModes "Modes[0]"
EndSection

Section "Modes"
Identifier "Modes[0]"
Modeline "800x600" 37.44 800 816 928 1072 600 600 607 626
Modeline "1024x768" 63.74 1024 1040 1216 1400 768 768 775 802
Modeline "1024x768" 65.00 1024 1048 1184 1344 768 771 777 806
-HSync -VSync
Modeline "640x480" 25.06 640 656 752 800 480 490 492 525
Modeline "800x600" 39.97 800 840 968 1056 600 601 605 628
Modeline "1024x768" 65.15 1024 1048 1184 1344 768 771 777 806
EndSection

Section "Screen"
DefaultDepth 16
SubSection "Display"
Depth 15
Modes "800x600"
EndSubSection
SubSection "Display"
Depth 16
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 24
Modes "800x600"
EndSubSection
SubSection "Display"
#Depth 32
#Modes "800x600"
EndSubSection
SubSection "Display"
Depth 8
Modes "800x600"
EndSubSection
Device "Device[0]"
Identifier "Screen[0]"
Monitor "Monitor[0]"
EndSection

Section "Device"
BoardName "SiS650"
BusID "1:0:0"
Driver "sis"
Identifier "Device[0]"
Screen 0
VendorName "SiS"
#Define TV-out:
Option "NoTwinViewXineramaInfo" "<BOOL VALUE>"
Option "TVStandard" "NTSC"
Option "TVOutFormat" "SVIDEO"
Option "TwinView" "TRUE"
Option "TwinViewOrientation" "Clone"
Option "ConnectedMonitor" "CRT, TV"
Option "SecondMonitorHorizSync" "30-50"
Option "SecondMonitorVertRefresh" "60"
Option "MetaModes" "1280x1024,NULL;
1024x768,NULL; 800x600,640x480; 640x480,640x480; NULL,640x480"
Option "ConnectedMonitor" "CRT, TV"
Option "CursorShadow" "TRUE"
Option "CursorShadowAlpha" "32"
EndSection

Section "ServerLayout"
Identifier "Layout[all]"
InputDevice "Keyboard[0]" "CoreKeyboard"
InputDevice "Mouse[1]" "CorePointer"
Option "Clone" "off"
Option "Xinerama" "off"
Screen "Screen[0]"
EndSection

Section "DRI"
Group "video"
Mode 0660
EndSection
--------------------------------

Posted by Kirth Gersen on November 21st, 2003


You did not define the second screen, as in:

Section "ServerLayout"
Identifier "<...>"
Screen 0 "Screen1600"
Screen 1 "Screen1024-TV" rightOf "Screen1600"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
......

Kirth



On Fri, 21 Nov 2003 10:00:29 -0800, S. F. Thomas wrote:


Posted by S. F. Thomas on November 22nd, 2003


Kirth Gersen <scopolXaXmine@xs4XaXll.nl> wrote in message news:<pan.2003.11.21.23.11.15.862416@xs4XaXll.nl>. ..

That, and some other things... Many thanks, I've been able to get it
working. In the end, the key was at the following website:
http://www.winischhofer.net/linuxsis630.shtml which is nothing short
of the horse's mouth, since it covers the sis driver that is working
with my no-name notebook. As is often the case with these things, one
thing leads to another, and with all the clues offered in response to
my query I was able to track down the source. So, a big thank-you to
Kirth, Aho, and to Thomas Winischhofer, the author of the sis driver.

For the reference of other people with notebooks running SiS hardware,
I am giving below the config file that works for me.

Thanks again,
Sidney

Here is the working XF86Config file (Caveat: I have not tried to
reduce it to bare essentials, I just wanted something that "works" and
this does, for me. Here are some notes that others might find useful:
Two screens and two monitors are defined, and appear to be required,
corresponding respectively to the LCD monitor and the TV. However,
only one works at a time, either the LCD or the TV, not both. As I
understand the logic of the situation, only one screen (the first)
screen should strictly be required, but X complains if the second is
not also defined. The first screen shows a default depth of 24, which
triggers 640x480 mode which works best with the tv. 1024x768 and
800x600 work also, but the metamodes line doesn't seem to translate
them into 640x480 as I expected, rather I get "fine print" on the tv
screen, and correspondlingly only a partial "footprint" on the tv
screen. So I have created two config files, one for use with the tv
screen at 640x480 resolution, the other for use with the LCD screen on
the notebook -- in the latter case, I use a default depth of 16, which
gives me a 1024x768 resolution which works best for the LCD. I have
something called "sisctrl" enabled, which is supposed to enable me to
change settings, including resolution, on-screen, but my suse 8.2
distro doesn't include the required program. I'm going to download it
however and give it a try. Perhaps with sisctrl I won't need two
versions of the config file.):

XF86Config.TV file:
--------------------------

<Files section snipped>

Section "ServerFlags"
Option "AllowMouseOpenFail"
EndSection

Section "Module"
Load "glx"
Load "dbe"
Load "extmod"
Load "freetype"
Load "v4l"
Load "type1"
Load "speedo"
EndSection

Section "InputDevice"
Driver "Keyboard"
Identifier "Keyboard[0]"
Option "MapName" "Standard Keyboard [ pc104 ]"
Option "Protocol" "Standard"
Option "XkbLayout" "us"
Option "XkbModel" "pc104"
Option "XkbRules" "xfree86"
EndSection

Section "InputDevice"
Driver "mouse"
Identifier "Mouse[1]"
Option "Device" "/dev/mouse"
Option "Emulate3Buttons" "on"
Option "Name" "Autodetection"
Option "Protocol" "ps/2"
Option "Vendor" "Sysp"
EndSection

Section "Monitor"
Option "CalcAlgorithm" "CheckDesktopGeometry"
HorizSync 31-48
Identifier "Monitor[0]"
ModelName "1024X768@60HZ"
VendorName "--> VESA"
VertRefresh 50-60
UseModes "Modes[0]"
EndSection

Section "Monitor"
# Option "CalcAlgorithm" "CheckDesktopGeometry"
HorizSync 30-50
Identifier "Monitor[1]"
ModelName "640X480@60HZ"
VendorName "SHARP-TV"
VertRefresh 60
UseModes "Modes[0]"
Option "DPMS" "FALSE"
EndSection

Section "Modes"
Identifier "Modes[0]"
Modeline "800x600" 37.44 800 816 928 1072 600 600 607 626
Modeline "1024x768" 63.74 1024 1040 1216 1400 768 768 775 802
Modeline "1024x768" 65.00 1024 1048 1184 1344 768 771 777 806
-HSync -VSync
Modeline "640x480" 25.06 640 656 752 800 480 490 492 525
Modeline "800x600" 39.97 800 840 968 1056 600 601 605 628
Modeline "1024x768" 65.15 1024 1048 1184 1344 768 771 777 806
EndSection

Section "Screen"
DefaultDepth 24
SubSection "Display"
Depth 15
Modes "800x600"
EndSubSection
SubSection "Display"
Depth 16
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 24
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 32
Modes "800x600"
EndSubSection
SubSection "Display"
Depth 8
Modes "800x600"
EndSubSection
Device "Device[0]"
Identifier "Screen[0]"
Monitor "Monitor[0]"
EndSection

Section "Screen"
DefaultDepth 16
SubSection "Display"
Depth 15
Modes "800x600"
EndSubSection
SubSection "Display"
Depth 16
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 24
Modes "800x600"
EndSubSection
SubSection "Display"
#Depth 32
#Modes "800x600"
EndSubSection
SubSection "Display"
Depth 8
Modes "800x600"
EndSubSection
Device "Device[0]"
Identifier "Screen[1]"
Monitor "Monitor[1]"
EndSection

Section "Device"
BoardName "SiS650"
BusID "1:0:0"
Driver "sis"
Identifier "Device[0]"
Screen 0
VendorName "SiS"
#Define TV-out:
#Option "NoTwinViewXineramaInfo" "<BOOL VALUE>"
Option "TVStandard" "NTSC-M"
Option "TVOutFormat" "SVIDEO"
Option "TwinView" "TRUE"
Option "TwinViewOrientation" "Clone"
Option "ConnectedMonitor" "CRT, TV"
Option "SecondMonitorHorizSync" "30-50"
Option "SecondMonitorVertRefresh" "60"
Option "MetaModes" "1280x1024,NULL;
1024x768,NULL; 800x600,800x600; 640x480,640x480"
Option "CursorShadow" "TRUE"
Option "CursorShadowAlpha" "32"
Option "ForceCRT1Type" "LCD"
Option "ForceCRT2Type" "TV"
# Option "ForceCRT2ReDetection" "TRUE"
Option "EnableSisCtrl"
EndSection

Section "ServerLayout"
Identifier "Layout[all]"
Screen 0 "Screen[0]"
Screen 1 "Screen[1]" rightOf "Screen[0]"

-------------------------------