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
No comments:
Post a Comment