Hi misc@,

I did not find any mentioning of OpenBSD Xenocara use of the "dummy"
video driver on mailing list nor web. Digging into code and
documentation, I think it looks like it's available and should work.

I'll try this out soon, this is mostly to mention the topic and to
check if anyone has any comments.


The idea is to run a dummy framebuffer X server which is resizeable,
as backend for X11Vnc. Support for dynamic resizing of the X
framebuffer, which is delivered through Xrandr by the VNC framebuffer
resize feature, is great when you VNC in from computers with different
resolutions.

The conventional way to resize the X framebuffer would be to restart
Xvfb(1) (http://man.openbsd.org/Xvfb.1) with the new resolution
specified as command line argument.


I got the idea of the existence of a dynamically resizeable virtual X
backend from the X11vnc's manual page (https://linux.die.net/man/1/x11vnc)
mentioning of the author's "Xdummy" script where "an advantage of
Xdummy over Xvfb is that Xdummy supports RANDR dynamic screen
resizing."

The script's sourcecode is at http://www.karlrunge.com/x11vnc/Xdummy ,
X11vnc's manual goes on to say that it "only works on Linux", derp, and
the script has shellscript and C parts that seem to implement privilege
separation logics that OpenBSD already provides, and what it does
overall seems to be to generate the xorg.conf(5) configuration attached
below.

The "Display drivers:" section in http://man.openbsd.org/xorg.conf.5#SEE_ALSO
lists no dummy driver, however, a "xf86-video-dummy" driver is located
in the source tree
(https://cvsweb.openbsd.org/cgi-bin/cvsweb/xenocara/driver/).

So I guess this should be tested and experimented with. Any comments
are welcome.

The X11vnc command line to deliver resizing should be "x11vnc -display
:0 -localhost -xrandr resize".

I presume that the xorg.conf below neither works nor is practical on
OpenBSD, but probably a good one can be created easily with it as
inspiration.

Thanks,
Tinker

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "freetype"
    Load           "glx"
EndSection

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

Section "InputDevice"
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       30.0 - 130.0
    VertRefresh     50.0 - 250.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "dummy"
    VideoRam       24000
    VendorName     "foovideo Corporation"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
        Modes      "1280x1024"
    EndSubSection
EndSection

Section "ServerFlags"
  Option "DontVTSwitch"       "true"
  Option "AllowMouseOpenFail" "true"
  Option "PciForceNone"       "true"
EndSection

Reply via email to