X
Commands
Architecture
DRM
https://en.wikipedia.org/wiki/Direct_Rendering_Manager#Hardware_support
radeon: until GCN 2nd gen amdgpu: since GCN 3rd gen, 1st gen experimental
nouveau NVIDIA Tesla, Fermi, Kepler, Maxwell based GeForce GPUs, Tegra K1, X1 SoC tegra Nvidia Tegra20, Tegra30 SoCs
bochs Virtual VGA cards using the Bochs dispi vga interface (such as QEMU stdvga)
https://keyj.emphy.de/files/linuxgraphics_en.pdf (page 35)
https://www.kernel.org/doc/Documentation/fb/framebuffer.txt The frame buffer device provides an abstraction for the graphics hardware.
http://betteros.org/tut/graphics1.php Supposedly, fbdev is the "old" way of doing things, and KMS/DRM is the "new" way.
https://elinux.org/images/7/71/Elce11_dae.pdf Control all HW thru a single device node
https://events.linuxfoundation.org/sites/events/files/slides/brezillon-drm-kms.pdf https://01.org/linuxgraphics/gfx-docs/drm/gpu/introduction.html
GEM (Graphics Execution Manager): Framework for buffer management.
Driver source
https://cgit.freedesktop.org/xorg/driver/ https://cgit.freedesktop.org/xorg/driver/xf86-video-ati/log/
Kernel Mode Setting (KMS)
https://wiki.archlinux.org/index.php/kernel_mode_setting Previously, setting up the video card was the job of the X server. kernel is now able to set the mode of the video card. This makes fancy graphics during bootup, virtual console and X fast switching possible, among other things.
Installation
Direct Rendering Infrastructure (DRI)
a framework for allowing direct access to graphics hardware under the X Window System in a safe, efficient way. The main use of DRI is to provide hardware acceleration for the Mesa implementation of OpenGL. DRI has also been adapted to provide OpenGL acceleration on a framebuffer console without a display server running.[citation needed]
XFree86
version 4.8.0 released on 15 December 2008
Wayland
Ubuntu 17.10 (Artful Aardvark) ships Wayland as default Fedora 25+ uses Wayland for the default GNOME 3.22 desktop session RebeccaBlackOS: https://sourceforge.net/projects/rebeccablackos/files/
X Window System (X11 or X)
the client and server may run on the same machine or on different ones
An X client itself may emulate an X server by providing display services to other clients. This is known as "X nesting". Open-source clients such as Xnest and Xephyr support such X nesting.
Releases
No release plan for a X11R7.8 rollup katamari release has been proposed. Unlike X11R1 through X11R6.9, X11R7.x releases are not built from one monolithic source tree, but many individual modules.
X11R7.6
allow fragments of the X server configuration to be delivered in individual files running the server without a configuration file
X11R7.7
https://www.x.org/releases/X11R7.7/doc/xorg-docs/ReleaseNotes.html an Open Source version of the X Window System that supports Linux, BSD, Solaris, Cygwin and MacOS X on Intel and other platforms.
Some multi-head configurations are supported in X11R7.7. Support for multiple PCI/AGP cards may require a kernel with changes to support VGA arbitration.
All users must now set DPI or some other scaling factor explicitly
Config
https://www.x.org/releases/X11R7.7/doc/index.html https://www.x.org/releases/X11R7.7/doc/man/man5/xorg.conf.5.xhtml https://www.x.org/releases/X11R7.7/doc/man/man4/radeon.4.xhtml
Commands: https://www.x.org/releases/X11R7.7/doc/man/man1/ Drivers: https://www.x.org/releases/X11R7.7/doc/man/man4/
X.Org Server
https://www.x.org/releases/individual/xserver/ implementation of the display server for the X Window System
The Xorg server relies on the operating system's native module loader support for handling program modules. The X server makes use of modules for video drivers, X server extensions, input device drivers, framebuffer layers, and internal components used by some drivers (like XAA & EXA).
https://keyj.emphy.de/files/linuxgraphics_en.pdf X Server manages input (keyboard, mouse, ...) and output (graphics only)
RandR ("resize and rotate")
Additional specialized X server binaries
OpenGL
https://keyj.emphy.de/files/linuxgraphics_en.pdf
X Clients
https://keyj.emphy.de/files/linuxgraphics_en.pdf
Window Manager
special X Client that manages the positions of the top-level windows and draws window frames (»decorations«)
Xsecurity
https://www.x.org/releases/current/doc/man/man7/Xsecurity.7.xhtml
Host access: managed using xhost command.a single connection simultaneously.
MIT-magic-cookie-1: without encryption.
XDM-authorization-1: with encryption.
sun-des-1: SunOS (and some other systems)
server interpreted: manipulated via xhost
MIT-MAGIC-COOKIE-1 and XDM-AUTHORIZATION-1 store secret data in the file; so anyone who can read the file can gain access to the X server. SUN-DES-1 stores only the identity of the principal who started the server (unix.hostname@domain when the server is started by xdm), and so it is not useful to anyone not authorized to connect to the server.
xhost
xauth
echo $DISPLAY
mons - manage three monitors on X
Forwarding
https://wiki.archlinux.org/index.php/Secure_Shell#X11_forwarding
Debug
https://stackoverflow.com/questions/28392949
xpra
re-attachable: http://xpra.org/
https://github.com/Xpra-org/xpra/blob/master/docs/Usage/README.md
https://wiki.archlinux.org/title/Xpra
vnc
VGA Switcheroo
https://01.org/linuxgraphics/gfx-docs/drm/gpu/vga-switcheroo.html
Linux subsystem for laptop hybrid graphics. 2 flavors:
muxed: both GPUs can drive all displays
muxless: only one connected to outputs. The other one is merely used to offload rendering, its results are copied over PCIe into the framebuffer. On Linux this is supported with DRI PRIME.
PRIME
https://wiki.archlinux.org/index.php/PRIME
PRIME is a technology used to manage hybrid graphics found on recent laptops (Optimus for NVIDIA, AMD Dynamic Switchable Graphics for Radeon). PRIME GPU offloading and Reverse PRIME is an attempt to support muxless hybrid graphics in the Linux kernel.
https://devtalk.nvidia.com/default/topic/957814/prime-and-prime-synchronization/ https://negativo17.org/complex-setup-with-nvidia-optimus-nouveau-prime-on-fedora-20/
GPGPU (General-purpose computing on GPU)
https://wiki.archlinux.org/index.php/GPGPU
radeontop
Last updated