LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   Dual Displays (https://www.linuxquestions.org/questions/linux-hardware-18/dual-displays-261037/)

systemparadox 11-30-2004 03:32 PM

Dual Displays
 
Umm, I would have thought it would be far easier to find info on this, but apparently not.

The basic question is: How do you set up dual monitors on Linux?

More detail follows...
I have an IBM ThinkPad T20 with S3 Savage-IX graphics card. The TFT is 1024x768. Under windows, I can have the tft and an external device display different things (rather than mirroring each other (like they do on older laptops)). I am running XFree86 Version 4.3.0 on Slackware 9.1 (kernel 2.6.8.1), using KDE 3.1/Gnome 2.4/Ratpoison/many other wm's.

Note that what I am trying to do is not really specific to this laptop/graphics card/whatever- this can apply to almost any setup with two monitors displaying different things.

I did try modifying the XF86Config file, but it doesn't seem to have done anything.
I may need some special thing for my gfx card, but until I know how to set up the dual monitors properly I won't know.

Thanks in advance
Simon

acid_kewpie 11-30-2004 04:40 PM

you're best bet is going over the xinerama howto and then fine tuning anythign by searching for pots here... i do a lot of dualhead too, and finegan has a 4 head machine even..... Whether you actually end up using teh Xinerama extensino or not, that doc will get you a long way.

systemparadox 12-04-2004 09:44 AM

Thanks, I think I have mostly set up the XF86Config properly, but I don't know how to reference the second monitor part of my card.

Here is the output of lspci:

00:00.0 Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)
00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
00:02.0 CardBus bridge: Texas Instruments PCI1450 (rev 03)
00:02.1 CardBus bridge: Texas Instruments PCI1450 (rev 03)
00:03.0 Ethernet controller: 3Com Corporation 3c556B Hurricane CardBus (rev 20)
00:03.1 Communication controller: 3Com Corporation Mini PCI 56k Winmodem (rev 20)
00:05.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator] (rev 01)
00:07.0 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 02)
00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01)
00:07.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 01)
00:07.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 03)
01:00.0 VGA compatible controller: S3 Inc. 86C270-294 Savage/IX-MV (rev 11)

And in case it helps, the bit for the gfx card (from 'lspci -v'):

01:00.0 VGA compatible controller: S3 Inc. 86C270-294 Savage/IX-MV (rev 11) (prog-if 00 [VGA])
Subsystem: IBM ThinkPad T20
Flags: bus master, 66Mhz, medium devsel, latency 64, IRQ 11
Memory at f0000000 (32-bit, non-prefetchable) [size=128M]
Expansion ROM at <unassigned> [disabled] [size=64K]
Capabilities: [dc] Power Management version 1
Capabilities: [80] AGP version 1.0

Another howto I managed to find said something about there being a second lspci entry for the second monitor- I only have one lspci entry which looks anything remotely to do with video. What do I put in the XF86Config file for the second graphics device?

The most promising links for info on this all point to here, the only problem with that being that it times out trying to get into the html dir:
http://www.botchco.com/alex/new-savage/html

And here's the gfx related stuff from my XF86Config:

Code:

# **********************************************************************
# Monitor section
# **********************************************************************

# Any number of monitor sections may be present

Section "Monitor"

    Identifier  "LCD"

# HorizSync is in kHz unless units are specified.
# HorizSync may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.

    HorizSync  31.5 - 50.0

#    HorizSync  30-64        # multisync
#    HorizSync  31.5, 35.2    # multiple fixed sync frequencies
#    HorizSync  15-25, 30-50  # multiple ranges of sync frequencies

# VertRefresh is in Hz unless units are specified.
# VertRefresh may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.

    VertRefresh 40-90

EndSection

Section "Monitor"
        Identifier "CRT"
        HorizSync 31.5 - 50.0
        VertRefresh 40-90
EndSection

# **********************************************************************
# Graphics device section
# **********************************************************************

# Any number of graphics device sections may be present

Section "Device"
    Identifier  "Savage-LCD"
    Driver      "savage"
    BusID      "PCI:1:0:0"
    Screen      0
    #VideoRam    4096
    # Insert Clocks lines here if appropriate
EndSection

Section "Device"
    Identifier  "Savage-CRT"
    Driver      "savage"
    BusID      "PCI:1:0:1"
    Screen      1
    #VideoRam    4096
EndSection

# **********************************************************************
# Screen sections
# **********************************************************************

# Any number of screen sections may be present.  Each describes
# the configuration of a single screen.  A single specific screen section
# may be specified from the X server command line with the "-screen"
# option.
Section "Screen"
    Identifier  "LCDScreen"
    Device      "Savage-LCD"
    Monitor    "LCD"

# If your card can handle it, a higher default color depth (like 24 or 32)
# is highly recommended.

#  DefaultDepth 8
#  DefaultDepth 16
  DefaultDepth 24
#  DefaultDepth 32

# "1024x768" is also a conservative usable default resolution.  If you
# have a better monitor, feel free to try resolutions such as
# "1152x864", "1280x1024", "1600x1200", and "1800x1400" (or whatever your
# card/monitor can produce)

    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
    Subsection "Display"
        Depth      32
        Modes "1024x768" "800x600" "640x480"
    EndSubsection

EndSection

Section "Screen"
    Identifier  "CRTScreen"
    Device      "Savage-CRT"
    Monitor    "CRT"
#  DefaultDepth 8
#  DefaultDepth 16
    DefaultDepth 24
#  DefaultDepth 32
    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
    Subsection "Display"
        Depth      32
        Modes "1024x768" "800x600" "640x480"
    EndSubsection

EndSection

# **********************************************************************
# ServerLayout sections.
# **********************************************************************

# Any number of ServerLayout sections may be present.  Each describes
# the way multiple screens are organised.  A specific ServerLayout
# section may be specified from the X server command line with the
# "-layout" option.  In the absence of this, the first section is used.
# When now ServerLayout section is present, the first Screen section
# is used alone.

Section "ServerLayout"

# The Identifier line must be present
    Identifier  "Simple Layout"

# Each Screen line specifies a Screen section name, and optionally
# the relative position of other screens.  The four names after
# primary screen name are the screens to the top, bottom, left and right
# of the primary screen.  In this example, screen 2 is located to the
# right of screen 1.

    Screen "LCDScreen"
    Screen "CRTScreen" RightOf "LCDScreen"

# Each InputDevice line specifies an InputDevice section name and
# optionally some options to specify the way the device is to be
# used.  Those options include "CorePointer", "CoreKeyboard" and
# "SendCoreEvents".

    InputDevice "Mouse1" "CorePointer"
    InputDevice "Mouse2" "SendCoreEvents"
    InputDevice "Keyboard1" "CoreKeyboard"

EndSection

I tried changing the busid for the Savage-CRT graphics device to the same as the LCD, but it complains that the entity is already being used.

Your help is very much appreciated, thankyou
Simon

systemparadox 12-05-2004 02:28 PM

ok the site has decided that it is going to work. I now have an updated savage driver, but I'm one minor XFree version too old :(. Time to upgrade...

systemparadox 12-05-2004 03:18 PM

arrghhhh!! only 37 megs left on root!!!!!

systemparadox 02-16-2006 03:34 PM

It works!!!

That's right folks- the S3 Savage and SuperSavage found in IBM ThinkPad T Series laptops (T20, T21, T22, T23) have linux drivers supporting independant dual displays (with xinerama).
The driver also supports mergedFB (get a twin screen OpenGL window!)(Should work without DRI, but will be far too slow). Useful if you want to dynamically switch between single and dual displays (uses Xrandr).

In addition, there are also DRI drivers for these cards. Unfortunately you have to get CVS versions of Xorg, MESA, DRM, DRI and the savage driver for it to work.

See:
http://www.thinkwiki.org/index.php?title=Savage
and links for info.

Simon


All times are GMT -5. The time now is 07:52 AM.