udlfb

added udlfb to /etc/modules, and it know loads at the startup.

Now I wonder how to extend the desktop to the udlfb

That would depend on what you mean by extend the desktop. If the desktop uses the nVidia driver you won’t be able to use with another driver…frame buffers and hardware accelerated have a tendency to be one or the other, but not mixed.

How do I realize the second option? in which I have framebuffers forming an extended desktop

Unfortunately I’ve never worked with udlfb, so you’d probably have to consult documentation on that specific software. I’d guess you would end up doing something like replacing the nVidia X11 driver with nouveau or udlfb. Keep in mind you’ll be disabling CUDA and GPU hardware acceleration by doing that.

Hmmm, this is getting interesting. I do not want to disable those… as I am planning to get advantage of it. I will think of another way in this case.

Thanks!

I can have two displays working with lightdm as an extended screen with below configuration file. However, I can only move mouse cursor in between displays, I can not get a window from one screen to an another. Cursor is a cross, when I moved my mouse to framebuffer device. If I have framebuffer as the main screen, and HDMI as the seperate one: I can not pass the login screen. Otherwise, I can pass the login screen but only thing I can do with the framebuffer is to move cursor to that screen. Any speculations/comments/suggestions are welcomed.

Here is my /usr/share/X11/xorg.conf.d/99-fbdev.conf:

Section "Module"
       Disable     "dri"
       SubSection  "extmod"
       Option  "omit xfree86-dga"
       EndSubSection
   EndSection
   
   Section "Device"
       Identifier  "Tegra0"
       Driver      "nvidia"
       Option      "AllowEmptyInitialConfiguration" "true"
       EndSection
   
   Section "Device"
       Identifier "displaylink0"
       Driver     "fbdev"
       Option     "fbdev" "/dev/fb1"
   EndSection
   
   Section "Monitor"
       Identifier "DSI-0"
       Option    "Ignore"
   EndSection
   
   Section "Monitor"
       Identifier "DSI-1"
      Option    "Ignore"
   EndSection
   
   Section "Screen"
      Identifier "screen0"
      Device     "Tegra0"
      Monitor    "DSI-0"
   EndSection
   
   Section "Screen"
      Identifier "screen1"
      Device     "displaylink0"
      Monitor    "DSI-1"
   EndSection
   
   Section "ServerLayout"
      Identifier "OneDesk"
      Screen 0 "screen0" 0 0
      Screen 1 "screen1" RightOf "screen0"
    EndSection

I don’t know enough of X11 to make use of the config you gave, but X11 can run in multiple modes. Multiple monitors can be part of a single display, or each monitor can be a separate desktop.

In the case of an extended multiple display as a single desktop, there is a single video driver…for example, right now I run two monitors on my x86_64 desktop using two DVI outputs on a single nVidia video card…memory within the video card acts as a single desktop with a view port slicing and dicing to actual monitors. This would not be possible if two separate drivers wanted to do the same thing, as neither would have access to the memory of the other…in essence two separate video drivers extending a desktop would mean one driver running simultaneously with half the buffer while the other driver runs the other half…so in the case of multiple X11 display using separate drivers each driver must take turns if they use the same video hardware.

Multiple desktops where none of the desktops share access is actually one of the reasons X11 was invented in the first place. There were mainframes with the ability to serve multiple users with each user logged in at a separate work station, and needing graphical display. X11 does not differentiate whether multiple people are logged in at separate work stations versus if it is the same person at different work stations or the same person logged in at a single work station using multiple monitors (or even one monitor but swapping current display to a different login based on keystrokes like ctrl-alt-F1 or ctrl-alt-F2). It sounds like you have multiple displays defined, rather than a single extended display.

If you open a console on each of the monitors you can see which display they think they are part of:

echo $DISPLAY

Should the $DISPLAY variables be the same display, you should be able to drag an application across monitors; should the $DISPLAY variables differ, you cannot drag an application across any more than you could drag an application between separate computers (you’d have to have software designed to do that).

Is your $DISPLAY the same on each monitor, or does it differ? This is the key to knowing what is possible, as it tells whether there are two X11 instances or one extended X11 instance.

NOTE: Syntax such as “:0” or “:1” names separate instances of X11. Syntax such as “:0.0” and “0.1” names desktop extensions of a single X11 instance. “:0”, “:0.0”, and “:0.1” can be considered the same desktop (they all start with “:0”).