diff --git a/configure.ac b/configure.ac
index 313996111a904e71f2eb9c7049ea055dcc9333c9..cbe66f4aa7109bb03353b331a586c90bcf1cfd60 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3528,6 +3528,13 @@ AC_CHECK_HEADER([linux/fb.h], [
 dnl
 dnl  Direct Rendering Manager (DRM) plugins
 dnl
+AC_CHECK_HEADER([drm/drm_mode.h], [
+  have_drm="yes"
+], [
+  have_drm="no"
+])
+AM_CONDITIONAL([HAVE_DRM], [test "$have_drm" = "yes"])
+
 PKG_HAVE_WITH_MODULES([LIBDRM], [libdrm >= 2.4.83], [Linux kernel mode setting output], [auto])
 
 dnl
diff --git a/modules/video_output/Makefile.am b/modules/video_output/Makefile.am
index 2c43e8ffe60b79bb744006b3fb4d3332252459cd..c52a4098fc6f8a2fe2dfd4ee672abecfc1722389 100644
--- a/modules/video_output/Makefile.am
+++ b/modules/video_output/Makefile.am
@@ -324,8 +324,12 @@ libdrm_display_plugin_la_SOURCES = \
 	video_output/drm/buffers.c \
 	video_output/drm/planes.c \
 	video_output/drm/display.c
-libdrm_display_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBDRM_CFLAGS)
+libdrm_display_plugin_la_CPPFLAGS = $(AM_CPPFLAGS)
+if HAVE_DRM
+vout_LTLIBRARIES += libdrm_display_plugin.la
+endif
 if HAVE_LIBDRM
+libdrm_display_plugin_la_CPPFLAGS += $(LIBDRM_CFLAGS) -DHAVE_LIBDRM
 vout_LTLIBRARIES += libkms_plugin.la libdrm_display_plugin.la
 endif
 
diff --git a/modules/video_output/drm/buffers.c b/modules/video_output/drm/buffers.c
index 810474811a5651ce092995c5f7f7d92360c78a17..dd2bab46e550dd5f1d923deaa381bef9bdce3e01 100644
--- a/modules/video_output/drm/buffers.c
+++ b/modules/video_output/drm/buffers.c
@@ -27,8 +27,13 @@
 #include <assert.h>
 #include <stdlib.h>
 #include <sys/mman.h>
-#include <drm_fourcc.h>
-#include <drm_mode.h>
+#ifndef HAVE_LIBDRM
+# include <drm/drm_fourcc.h>
+# include <drm/drm_mode.h>
+#else
+# include <drm_fourcc.h>
+# include <drm_mode.h>
+#endif
 #include <vlc_common.h>
 #include <vlc_picture.h>
 #include "vlc_drm.h"
diff --git a/modules/video_output/drm/display.c b/modules/video_output/drm/display.c
index c8b056131ca786684c8b2f9094237d09398fa144..c331b450ce7e2f20fe3cbe5c3748824971ca0b6b 100644
--- a/modules/video_output/drm/display.c
+++ b/modules/video_output/drm/display.c
@@ -33,7 +33,11 @@
 # include "config.h"
 #endif
 
-#include <drm_mode.h>
+#ifndef HAVE_LIBDRM
+# include <drm/drm_mode.h>
+#else
+# include <drm_mode.h>
+#endif
 
 #include <vlc_common.h>
 #include <vlc_plugin.h>
diff --git a/modules/video_output/drm/fourcc.c b/modules/video_output/drm/fourcc.c
index 08431f65ca5c7fc6210ecc2b01cf7e9346fc96e7..4d353f71d1135c25721251a2a52b542c45a230ac 100644
--- a/modules/video_output/drm/fourcc.c
+++ b/modules/video_output/drm/fourcc.c
@@ -25,7 +25,11 @@
 #endif
 
 #include <stdint.h>
-#include <drm_fourcc.h>
+#ifndef HAVE_LIBDRM
+# include <drm/drm_fourcc.h>
+#else
+# include <drm_fourcc.h>
+#endif
 #include <vlc_common.h>
 #include <vlc_es.h>
 #include "vlc_drm.h"
diff --git a/modules/video_output/drm/planes.c b/modules/video_output/drm/planes.c
index 7ac06b2ca35ac1e0934afdfc1333eaae926cb4f7..d96232a184bba9016b00e9cb1c14b6186acfffdd 100644
--- a/modules/video_output/drm/planes.c
+++ b/modules/video_output/drm/planes.c
@@ -28,7 +28,11 @@
 #include <errno.h>
 #include <stdlib.h>
 #include <string.h>
-#include <drm_mode.h>
+#ifndef HAVE_LIBDRM
+# include <drm/drm_mode.h>
+#else
+# include <drm_mode.h>
+#endif
 #include <vlc_common.h>
 #include <vlc_fourcc.h>
 #include "vlc_drm.h"