LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   Separate X Screens - is this possible with Intel HD Graphics? (https://www.linuxquestions.org/questions/linux-hardware-18/separate-x-screens-is-this-possible-with-intel-hd-graphics-4175563730/)

Shadow_7 01-14-2016 10:08 AM

You can partition out your X sessions with Xephyr or Xnest. I tend to do 3x Xephyr screens and Xdmx them to break my 1920x1080 into 3x 640x1080 stacked vertically. This gives me 360 lines of code when using a bitmapped 8x9 font in an xterm (or urxvt). 405 lines if I use an 8x8 font (80 columns per segment).

I suggest xrandr mostly because /etc/X11/xorg.conf is mostly IGNORED in distros now. Various other things in /etc/X11/ or /usr/share/X11/xorg.conf.d/ and whatnot overrides most of what you'd put there anyway. With xinput being another option to do things like enable 3 button emulation for your two button mouse/track ball. Since the xorg.conf for that is mostly ignored too.

taylorkh 01-15-2016 02:06 PM

Thanks Emerson.

I do not think I want/need to run two instances of X. I have seen xrandr discussed elsewhere and it is been recommended (I think) in a thread on the freedesktop.org mailing list. I have to re-re-read that and figure out everything I have been told.

Thanks colorpurple21859,

The Intel computer does NOT have dual cards. NEITHER does the Nvidia machine. The one Nvidia card has only one bus address. Here is a section from the xorg.conf
Code:

Section "Device"
    Identifier    "Device0"
    Driver        "nvidia"
    VendorName    "NVIDIA Corporation"
    BoardName      "Quadro K420"
    BusID          "PCI:1:0:0"
    Screen          0
EndSection

Section "Device"
    Identifier    "Device1"
    Driver        "nvidia"
    VendorName    "NVIDIA Corporation"
    BoardName      "Quadro K420"
    BusID          "PCI:1:0:0"
    Screen          1
EndSection

I believe it is a function of the Nvidia driver to split the card into two screens based upon the instructions from xorg.conf.

I hate Windoze too Ihatewindows522,

Please have a look at this page http://jsmylinux.no-ip.org/basic-inf...dual-monitors/ The last layout described as "Individual Panels" is exactly what I want. It also shows instructions for how to achieve this with an Nvidia card using nvidia-settings. I would add the caution NOT to Merge changes with the existing (xorg.conf) file. I have hosed myself by doing that.

Thanks for the link to Multiseat. That seems to be the mirror image of what I want. I want to control multiple (sessions, computers, users etc.) using ONE keyboard. I typically have two or three virtual machines running on different workspaces on my two monitors for specific purposes.

And finally Thanks again Shadow_7. Xephyr and Xnest LOOKS similar to what happens when I run virtual machines on my system. I guess with Xephyr or Xnest the windows all belong to the host OS.

I have to end with a little story inspired by your description of your coding setup. Back about 30 years ago the company I worked for built a new data center and were giving employee tours. It was quite a think at the time. 3 water cooled IBM mainframes and two air cooled Amdahls. The IT fellow giving the tour was amazed that water could flow through pipes and cool his computers. He took us all the way from the cooling tower, through the pump room, across the computer room (pulling up floor tile here and there so we could see the pipes) to the computer and back to the cooling tower. My buddy and I had both operated nuclear plants in the Navy and worked with commercial nuclear generating plants. Water flows through pipes - that is what they are for. We though his performance was quite amusing. No magic but the computers were neat. However, the thing I found neatest was a monitor in the operations center. It was gas plasma - the beautiful neon orange glowing display type - about 25 or 30" square. It was divided into FOUR 18 column/25 line sections. WOW! I would have loved on of those - especially considering the oscilloscope like monitor in my Osborne :D

Ken

Shadow_7 01-15-2016 10:31 PM

Xephyr is an X session that runs under your current X but has it's own DISPLAY value. It's intended to test apps that need to run on odd screen sizes (like cell phones). But you can use it for a variety of things. Although keyboard interactions get a bit odd since your DE / WM can have hotkeys that override the Xephyr session. And you can even run a different DE / WM in the Xephyr concurrent with your regular X session. Something like "xterm -display :1" to send an xterm to the one with that display value. With "export DISPLAY=:1" under the xterm to launch X apps under the Xephyr while in the Xephyr. Without using a window manager or desktop environment. If you do custom fonts after starting X, you'll need to re-cache those in the Xephyr. And since it's a different X session, the clipboard stuff doesn't talk across sessions.

As far as actual screens, most GPUs these days are dual head (or more). Although in the case of laptops, the dual is the laptops LCD and the HDMI out. The nvidia option has nvidia-config or nvidia-xconfig to configure screens or something like that. The amd option has amdcccle and whatever the new stuff uses. With xrandr and libxca for various oddities. Even though your GPU only has one listing in lspci, it's probably still dual head. Even embedded things will have dual head GPUs, although no actual hardware to make the 2nd screen attach.

Ihatewindows522 01-19-2016 08:19 AM

Hmmm...
@taylorkh, this:
Quote:

Individual Panels setting for Nvidia. This is the most productive setting for me. It allows me to have two different desktops running at the same time and they do not interfere with each other. My mouse moves freely between the two monitors and which ever monitor my mouse is on my keyboard works on that monitor. You can not drag windows over to the right monitor however the right monitor can open and run anything of the left monitor but only one program at a time. I couldn't run Firefox on both monitors using the panel, I could however access the server desktop and then run a second Firefox as it is two different computers.
sounds a lot like exactly what I said (or at least tried to say) about how Unity/GNOME handles multiple displays. You can move your mouse freely between the two displays, your keyboard works on the display where your mouse is on, you CAN drag windows between them, and you can open and run anything on either display PERIOD. The nVIDIA display driver allows you to do the exact same thing. Ultimately it's a matter of whether you want to use the proprietary or open source driver.

taylorkh 01-19-2016 08:58 AM

This is making my head hurt :banghead: I have asked my simple "Can Intel video do this?" question here and in some other forums and mailing lists. No one seems to know. However, I have been overwhelmed with other neat possibilities.

As to the quote from the link I provided... I CAN run Firefox on both monitors from the panels. I have two separate Firefox profiles and call the profiles explicitly in the launcher. My right monitor launcher contains
Code:

firefox -P "yesterday"
The profile "yesterday" is a backup copy which I make each evening as part of my housekeeping/backup script process.

The different "seats" option which you mentioned is interesting. I am not sure where I could benefit from being logged on as different users. I generally do that on a virtual machine or a remote machine connected with ssh or a remote desktop viewer. As far as the compute I am sitting at... I will think on that.

Regarding the normal way of configuring two monitors - as a single large work area... The problem I find with that is... if I have a program running on each monitor and I need to move to a different workspace on one monitor it also changes the workspace on the second monitor - and I loose access to the program running there. With my separate X screens I can have 16 permutations - 4 workspaces on each monitor. And I have gotten used to that capability.

Thanks for your replies,

Ken

Shadow_7 01-19-2016 11:45 AM

If you're asking if intel can run startx -- :1 && startx -- :2 for each screen attached to a single GPU. I'd say NO, but I didn't design the hardware or write the driver so probably the wrong person to ask. Is there some other hardware that you can do this type of thing? If so, then how, a demo / tutorial so us with Intel GPUs could "TRY" it and see. Perhaps wayland or mir might have this type of built in segmentation, but I just don't know (yet). You can emulate it with Xephyr, but not without it's quirks.

Otherwise various window managers / desktop environments can pseudo do this type of thing. I use cwm and it doesn't have workspaces. But you can group applications together and minimize / restore them with key combos for pseudo workspaces. Various networking options if each screen is it's own computer. And many exotic configurations are possible. Perhaps your wm/de has some form of pinning so when you change workspaces the things that you want to persist, do.

taylorkh 01-19-2016 12:05 PM

Quote:

Is there some other hardware that you can do this type of thing?
The nvidia-settings utility - part of the Nvidia driver - allows me to setup separate X screens. No startx --:1 && startx --:2 needed. The utility creates an xorg.conf which does the job. There does not seem to be a similar utility for Intel and even after replacing various Nvidia specific items in xorg.conf with Intel parameters (as best I can guess them) I cannot achieve the desired result.

At the bottom of this link http://jsmylinux.no-ip.org/basic-inf...dual-monitors/ is the step by step process in nvidia-settings. Here is an xorg.conf which was created by the utility
Code:

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 352.21  (buildd@lgw01-25)  Thu Jul 23 11:50:58 UTC 2015

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

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier    "Mouse0"
    Driver        "mouse"
    Option        "Protocol" "auto"
    Option        "Device" "/dev/psaux"
    Option        "Emulate3Buttons" "no"
    Option        "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier    "Keyboard0"
    Driver        "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier    "Monitor0"
    VendorName    "Unknown"
    ModelName      "XHD 15''"
    HorizSync      24.0 - 62.0
    VertRefresh    56.0 - 77.0
    Option        "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier    "Monitor1"
    VendorName    "Unknown"
    ModelName      "Samsung SyncMaster"
    HorizSync      30.0 - 81.0
    VertRefresh    56.0 - 75.0
    Option        "DPMS"
EndSection

Section "Device"
    Identifier    "Device0"
#    Driver        "intel"
#    VendorName    "INTEL Corporation"
#    BoardName      "HD"
#    BusID          "PCI:0:2:0"
    Driver        "nvidia"
    VendorName    "NVIDIA Corporation"
    BoardName      "GeForce 6200"
    BusID          "PCI:1:0:0"
    Screen          0
EndSection

Section "Device"
    Identifier    "Device1"
#    Driver        "intel"
#    VendorName    "INTEL Corporation"
#    BoardName      "HD"
#    BusID          "PCI:0:2:0"
    Driver        "nvidia"
    VendorName    "NVIDIA Corporation"
    BoardName      "GeForce 6200"
    BusID          "PCI:1:0:0"
    Screen          1
EndSection

Section "Screen"
    Identifier    "Screen0"
    Device        "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option        "Stereo" "0"
#    comment next 2 lines for Intel
    Option        "nvidiaXineramaInfoOrder" "CRT-0"
    Option        "metamodes" "VGA-0: nvidia-auto-select +0+0"
    Option        "SLI" "Off"
    Option        "MultiGPU" "Off"
    Option        "BaseMosaic" "off"
    SubSection    "Display"
        Depth      24
    EndSubSection
EndSection

Section "Screen"
    Identifier    "Screen1"
    Device        "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option        "Stereo" "0"
#    comment next line for Intel
    Option        "metamodes" "DVI-I-0: nvidia-auto-select +0+0"
    Option        "SLI" "Off"
    Option        "MultiGPU" "Off"
    Option        "BaseMosaic" "off"
    SubSection    "Display"
        Depth      24
    EndSubSection
EndSection

Ken

colorpurple21859 01-19-2016 12:17 PM

The device section of your xorg.conf also shows it set up with 2 different graphics cards one intel one nvidia, not one graphic card.

taylorkh 01-19-2016 02:08 PM

The Intel parameters are commented out. I had put them in when trying to hammer this into an xorg.conf for use on the Intel containing PC. This was not the original file from the Nvidia PC. My error. Still it shows the Nvidia created lines.

Ken

steve_j 02-19-2016 11:35 AM

Possible solution
 
I found this thread after spending hours trying to solve the same problem, and I may have found the solution.

I have a Dell Precision system with nvidia graphics, and have exactly the config the OP describes, two separate servers on two separate monitors. It's for the same reason, so that I can flip between workspaces on one screen without disturbing the other. In my case it's Solaris, not Linux, but the xorg.conf setup is much the same.

Now I'm trying to set this up on a Lenovo Thinkcentre M93p, with intel HD graphics and still under Solaris, and have hit the same problem. It's easy to get the "one big workspace across all screens" setup to work, but not the two separate servers. I finally found another post that told me how it should work. I'll post the link in my next post, I tried here & got told that I can't put URLs in a first post (and it then threw my whole post away, which was unfriendly!). This is a second try.

Unfortunately I can't test this, due to a bug on the Solaris driver which is being fixed, but it may help. If it works for you I know it should work for me later.

The trick is to put these two lines in each of your Display sections:

Code:

    Option        "ZaphodHeads" "DP1"
    Option        "AccelMethod" "sna"

to give something like:

Code:

Section "Device"
    Identifier    "Device0"
    Driver        "intel"
    Option        "monitor-DP1" "Monitor0"
    Option        "ZaphodHeads" "DP1"
    Option        "AccelMethod" "sna"
    BusID          "PCI:0:2:0"
    Screen 0
EndSection

The "BusID" line is apparently required, the "monitor-DPx" is optional. The value for the "ZaphodHeads" option is the physical port on the system, in my case I have two DisplayPort conenctors, so would use DP1 and DP2, others may be VGA1/LVDS (on a laptop) or perhaps HDMI1/HDMI2.

The line
Option "AccelMethod" "sna"
is required, which is where I get stuck. With those lines in xorg.conf I see from the log that it works, it sets up two screens (the error "Screen 1 deleted because of no matching config section." goes away :) ).

Unfortunately when Xorg calls into sna it gets a Segmentation Fault and exits, but that's a known issue with this Solaris release, and will hopefully get fixed soon. Until then I can't actually test this, but I hope it will work for you.

steve_j 02-19-2016 02:20 PM

Useful URL
 
A follow-up now that I'm allowed to post :)
This is the link I got info from:

http://web.archive.org/web/201304290...th_ZaphodHeads

taylorkh 02-19-2016 06:38 PM

Thank you steve_j,

I have not played with this issue for a while. I will take your recommendations and see what I can do.

Ken

Shadow_7 02-21-2016 07:14 PM

You might try starting X with -xinerama. I think xinerama is the part that combines multiple screens into one :#. And passing -xinerama might disable that feature. At least according to man xserver. As I recall my old 800MHz vaio that did give the external display it's own :#. And having to fiddle with settings for aiglx, xinerama, and something else for cloning. But that was over a decade ago so the gray matter might be a little fuzzy.

steve_j 02-22-2016 03:12 AM

The problem with xinerama is that it combines both screens into a single enlarged display. i.e. if you have two monitors each, say, 1920x1080, xinerama gives you a single screen 3840x1080. That is the default behaviour, but isn't what we want, we want two separate screens, each 1920x1080, so that selecting a different workspace on screen one doesn't disturb screen two, which has it's own session, panels, workspaces, etc. and yet still shares mouse and keyboard. This is trivially easy to setup with Nvidia graphics.
Xinerama lets you create windows that span both screens, drag windows between screens, etc., but if you select a different workspace it will affect both screens, and popups on one screen can steal focus from the other.

taylorkh 02-22-2016 06:44 PM

Hello again steve_j,

I am studying the link you provided. I had never used the Wayback Machine on archive.org. I usually look at the videos. A worse time killer than youtube but the material is definitely better. Fantastic historical stuff. Here is one of my favorites - from the days of iron men and wooden computers - when a day's work was a day's WORK https://archive.org/details/WeldingTheBigRing1904 But I digress...

I have a couple of to-dos before I can continue my experimenting.

I have to get another HDMI to VGA adapter (or take the wife's PC off line and "borrow" that one - new one is on the way from evilbay)

I have to determine if the processor in my test PC is Sandy Bridge or higher.

This tidbit may help
Quote:

Note that the 'Option "AccelMethod" "sna"' is required on intel chipsets in order to use ZaphodHeads. This is not well documented.
I will advise when I have more information to report.

Ken

p.s. I am watching Welding the big ring with Pink Floyd's Dark Side of the Moon playing in the background. Any Colour You Like works quite well. Not as good as the Wizard of Oz but cool never the less.


All times are GMT -5. The time now is 01:16 PM.