DragonFly On-Line Manual Pages
DRM(4) DragonFly Kernel Interfaces Manual DRM(4)
drm - Direct Rendering Manager (DRI kernel support)
The Direct Rendering Manager is part of the Direct Rendering
Infrastructure (see http://dri.freedesktop.org/) for supporting video
The drm drivers provide support for the following chipsets:
Module Kernel option Chipset
i915.ko i915 Intel i915, i945, i965, G3x,
radeon.ko radeon AMD/ATI Radeon
amdgpu.ko n/a newer AMD chipsets
In most cases Xorg(1) will take care of loading the appropriate modules
and it is not necessary to modify loader.conf(5) or the kernel
configuration to enable drm support.
Newer versions of Xorg(1), like the one from dports(7), do a pretty good
job of figuring out the right configuration on their own, so having no
xorg.conf(5) file at all is usually the best advice. If for some reason
an xorg.conf(5) is preferred, DRI must be enabled:
With KMS, DRI is always enabled since the drm is always required.
To access /dev/dri/cardN devices user must be a member of the video
group. Users can be added to the video group with pw(8) groupmod option.
If Xorg(1) acceleration fails to initialize with a "contigmalloc_map:
failed size..." error in dmesg, the reserve of memory for DMA ran out
early and should be increased to a sufficiently high value by setting the
vm.dma_reserved loader tunable. A read only sysctl(8) variable of the
same name is provided for obtaining its current value.
Tunables can be set at the loader(8) prompt before booting the kernel or
stored in loader.conf(5).
Enable internal verbose debug messages, might slow down the
machine. Debug categories are enabled by setting their bits:
0x001 CORE - generic drm code
0x002 DRIVER - vendor specific parts of the driver
0x004 KMS - modesetting troubleshoot
0x008 PRIME (no prime support)
0x010 ATOMIC - atomic code used by i915
0x100 PID - include pid number (useful in certain scenarios)
0x200 FIOCTL - failed ioctls
0x400 IOCTL - very spammy ioctl prints
0x800 VBLANK - very spammy vblank prints
Load external EDID binary monitor data from a firmware module.
Useful if the monitor is not sending an appropriate EDID block,
if there is no video on the connected monitor or if there is a
need to enforce custom video modes. Optionally, the connector
name can be specified before the firmware name followed by a
colon. For example:
Notes: drm and Xorg(1) use different naming conventions for
connector names. This tunable only applies for KMS drivers.
Can be used to set framebuffer parameters for drm(4) connector.
Mode specifier format:
<xres> X resolution, e.g. 1920
<yres> Y resolution, e.g. 1080
M calculate timings using VESA CVT instead of table
R reduced blanking on digital monitors
<bpp> color depth
<refresh> refresh rate
i calculate timings for interlaced mode
m margins used in calculations
e force enable output
D same as e option, but force digital output on HDMI/DVI
d force disable output
A number of sysctl(8) variables are available:
hw.dri.debug If set, enables debugging output.
hw.dri.vblank_offdelay Specifies the delay (in milliseconds) until
the vblank interrupt is disabled again when
it's no longer needed. (0 = never disable,
negative value = disable immediately)
hw.dri.%d.busid Indicates the location of the device on the
PCI bus. The format is:
hw.dri.%d.modesetting Indicates if kernel mode setting
(DRIVER_MODESET feature) is set in the device
Xorg(1), amdgpu(4), i915(4), radeon(4), xorg.conf(5)
DRM was first available for Linux. Subsequently Eric Anholt ported the
DRM kernel modules to FreeBSD.
Disable AIGLX if necessary (xorg.conf):
Option "AIGLX" "off"
options DRM_DEBUG can slow DRI down a lot, disable it once drm works.
DragonFly 6.3-DEVELOPMENT June 18, 2022 DragonFly 6.3-DEVELOPMENT