diff --git a/package/Config.in b/package/Config.in
index 550fdc1f41..d9b96201ff 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -346,6 +346,7 @@ comment "Graphic libraries"
 	source "package/cegui/Config.in"
 	source "package/directfb/Config.in"
 	source "package/directfb-examples/Config.in"
+	source "package/directfb2/Config.in"
 	source "package/efl/Config.in"
 	source "package/fb-test-app/Config.in"
 	source "package/fbdump/Config.in"
diff --git a/package/dfbterm/Config.in b/package/dfbterm/Config.in
new file mode 100644
index 0000000000..4258a857b9
--- /dev/null
+++ b/package/dfbterm/Config.in
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_DFBTERM
+	bool "DFBTerm"
+	depends on BR2_PACKAGE_DIRECTFB2
+	select BR2_PACKAGE_DIRECTFB2_LITE
+	help
+	  DFBTerm is a terminal emulator runnning on DirectFB2 and
+	  based on libzvt.
+
+	  libzvt (Zed's virtual terminal emulation library) is
+	  included directly in the source code, although it is
+	  possible to use the system's libzvt library.
diff --git a/package/dfbterm/dfbterm.mk b/package/dfbterm/dfbterm.mk
new file mode 100644
index 0000000000..8f53883dfc
--- /dev/null
+++ b/package/dfbterm/dfbterm.mk
@@ -0,0 +1,14 @@
+################################################################################
+#
+# dfbterm
+#
+################################################################################
+
+DFBTERM_VERSION = 0e78750b5e58655d521da54540dc0a9bdca2f840
+DFBTERM_SITE = "https://github.com/directfb2/DFBTerm"
+DFBTERM_SITE_METHOD = git
+DFBTERM_LICENSE = GPL-2.0
+DFBTERM_LICENSE_FILES = COPYING
+DFBTERM_DEPENDENCIES = directfb2 directfb2-lite
+
+$(eval $(meson-package))
diff --git a/package/directfb2-csource/Config.in b/package/directfb2-csource/Config.in
new file mode 100644
index 0000000000..0419bcb839
--- /dev/null
+++ b/package/directfb2-csource/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_DIRECTFB2_CSOURCE
+	bool "directfb2-csource"
+	depends on BR2_PACKAGE_DIRECTFB2
+	help
+	  directfb2-csource is a data header file generation utility for
+	  DirectFB2 code.
diff --git a/package/directfb2-csource/directfb2-csource.mk b/package/directfb2-csource/directfb2-csource.mk
new file mode 100644
index 0000000000..231c848442
--- /dev/null
+++ b/package/directfb2-csource/directfb2-csource.mk
@@ -0,0 +1,15 @@
+################################################################################
+#
+# directfb2-csource
+#
+################################################################################
+
+DIRECTFB2_CSOURCE_VERSION = 2758dee7937e8850d6c8105bd6ef1db06c86064f
+DIRECTFB2_CSOURCE_SITE = "https://github.com/directfb2/directfb-csource"
+DIRECTFB2_CSOURCE_SITE_METHOD = git
+DIRECTFB2_CSOURCE_LICENSE = GPL-2.0
+DIRECTFB2_CSOURCE_LICENSE_FILES = COPYING
+DIRECTFB2_CSOURCE_DEPENDENCIES = directfb2
+DIRECTFB2_CSOURCE_INSTALL_STAGING = YES
+
+$(eval $(meson-package))
diff --git a/package/directfb2-examples/Config.in b/package/directfb2-examples/Config.in
new file mode 100644
index 0000000000..05f34ee002
--- /dev/null
+++ b/package/directfb2-examples/Config.in
@@ -0,0 +1,104 @@
+menuconfig BR2_PACKAGE_DIRECTFB2_EXAMPLES
+	bool "DirectFB2 examples"
+	depends on BR2_PACKAGE_DIRECTFB2
+	select BR2_PACKAGE_DIRECTFB2_CSOURCE
+	help
+	  The DirectFB2-examples package contains a set of simple
+	  DirectFB2 applications that can be used to test and
+	  demonstrate various DirectFB2 features. Note that DirectFB2
+	  is a fork of DirectFB, as the original DirectFB stopped
+	  being maintained in 2016.
+
+	  The official DirectFB2 website can be visited via
+	  https://directfb2.github.io/
+
+if BR2_PACKAGE_DIRECTFB2_EXAMPLES
+
+choice
+	prompt "DirectFBGL interface version"
+	default BR2_PACKAGE_DIRECTFB2_EXAMPLES_GL_VERSION_NULL
+
+config BR2_PACKAGE_DIRECTFB2_EXAMPLES_GL_VERSION_NULL
+	bool "-"
+comment "Build without version flag specified"
+
+config BR2_PACKAGE_DIRECTFB2_EXAMPLES_GL_VERSION_1
+	bool "1"
+comment "Pass -Ddirectfbgl=1 to the Meson build system"
+
+config BR2_PACKAGE_DIRECTFB2_EXAMPLES_GL_VERSION_2
+	bool "2"
+comment "Pass -Ddirectfbgl=2 to the Meson build system"
+
+endchoice
+
+config BR2_PACKAGE_DIRECTFB2_EXAMPLES_GL
+	string "PATH to OpenGL header"
+	default ""
+
+config BR2_PACKAGE_DIRECTFB2_EXAMPLES_GL_CFLAGS
+	string "CFLAGS of the OpenGL implementation"
+	default ""
+
+config BR2_PACKAGE_DIRECTFB2_EXAMPLES_GL_LDFLAGS
+	string "LDFLAGS of the OpenGL implementation"
+	default ""
+
+# Disabled for now as directfb2-csource currently does not generate
+# pkgconfig file
+#
+# choice
+#	prompt "Select font header for DirectFB2 examples"
+#	default BR2_PACKAGE_DIRECTFB2_EXAMPLES_FONT_HEADER_DISABLED
+#
+# config BR2_PACKAGE_DIRECTFB2_EXAMPLES_FONT_HEADER_DISABLED
+#	bool "disabled"
+#
+# config BR2_PACKAGE_DIRECTFB2_EXAMPLES_FONT_HEADER_DGIFF
+#	bool "dgiff"
+#
+# config BR2_PACKAGE_DIRECTFB2_EXAMPLES_FONT_HEADER_ttf
+#	bool "ttf"
+#
+#endchoice
+
+# Disabled for now as directfb2-csource currently does not generate
+# pkgconfig file
+#
+# choice
+#	prompt "Select image header for DirectFB2 examples"
+#	default BR2_PACKAGE_DIRECTFB2_EXAMPLES_DISABLED
+#
+# config BR2_PACKAGE_DIRECTFB2_EXAMPLES_DISABLED
+#	bool "disabled"
+#
+# config BR2_PACKAGE_DIRECTFB2_EXAMPLES_DFIFF
+#	bool "dfiff"
+#
+# config BR2_PACKAGE_DIRECTFB2_EXAMPLES_PNG
+#	bool "png"
+#
+# endchoice
+
+# Disabled for now as directfb2-csource currently does not generate
+# pkgconfig file
+#
+# choice
+#	prompt "Select video header for DirectFB2 examples"
+#	default BR2_PACKAGE_DIRECTFB2_EXAMPLES_VIDEO_HEADERS_DISABLED
+#
+# config BR2_PACKAGE_DIRECTFB2_EXAMPLES_VIDEO_HEADERS_DISABLED
+#	bool "disabled"
+#
+# config BR2_PACKAGE_DIRECTFB2_EXAMPLES_VIDEO_HEADERS_DFVFF
+#	bool "dfvff"
+#
+# config BR2_PACKAGE_DIRECTFB2_EXAMPLES_VIDEO_HEADERS_M2V
+#	bool "m2v"
+#
+# config BR2_PACKAGE_DIRECTFB2_EXAMPLES_VIDEO_HEADERS_264
+#	bool "264"
+#
+# endchoice
+
+endif # BR2_PACKAGE_DIRECTFB2_EXAMPLES
diff --git a/package/directfb2-examples/directfb2-examples.mk b/package/directfb2-examples/directfb2-examples.mk
new file mode 100644
index 0000000000..b627ba6906
--- /dev/null
+++ b/package/directfb2-examples/directfb2-examples.mk
@@ -0,0 +1,61 @@
+################################################################################
+#
+# directfb2-examples
+#
+################################################################################
+
+DIRECTFB2_EXAMPLES_VERSION = d627550430407ce6f1e42a861985ec42c0f4ac19
+DIRECTFB2_EXAMPLES_SITE = "https://github.com/directfb2/DirectFB-examples"
+DIRECTFB2_EXAMPLES_SITE_METHOD = git
+DIRECTFB2_EXAMPLES_LICENSE = MIT
+DIRECTFB2_EXAMPLES_LICENSE_FILES = COPYING
+DIRECTFB2_EXAMPLES_DEPENDENCIES = directfb2 directfb2-csource
+
+ifeq ($(BR2_PACKAGE_DIRECTFB2_EXAMPLES_GL_VERSION_1),y)
+DIRECTFB2_EXAMPLES_CONF_OPTS += -Ddirectfbgl=1
+else ifeq ($(BR2_PACKAGE_DIRECTFB2_EXAMPLES_GL_VERSION_2),y)
+DIRECTFB2_EXAMPLES_CONF_OPTS += -Ddirectfbgl=2
+endif
+
+ifneq ($(call qstrip, $(BR2_PACKAGE_DIRECTFB2_EXAMPLES_GL)),)
+DIRECTFB2_EXAMPLES_CONF_OPTS += -Dgl=$(BR2_PACKAGE_DIRECTFB2_EXAMPLES_GL)
+endif
+
+ifneq ($(call qstrip, $(BR2_PACKAGE_DIRECTFB2_EXAMPLES_GL_CFLAGS)),)
+DIRECTFB2_EXAMPLES_CONF_OPTS += -Dgl-cflags=$(BR2_PACKAGE_DIRECTFB2_EXAMPLES_GL_CFLAGS)
+endif
+
+ifneq ($(call qstrip, $(BR2_PACKAGE_DIRECTFB2_EXAMPLES_GL_LDFLAGS)),)
+DIRECTFB2_EXAMPLES_CONF_OPTS += -Dgl-ldflags=$(BR2_PACKAGE_DIRECTFB2_EXAMPLES_GL_LDFLAGS)
+endif
+
+# Disabled for now as directfb2-csource currently does not generate
+# pkgconfig file
+#
+# ifeq ($(BR2_PACKAGE_DIRECTFB2_EXAMPLES_FONT_HEADER_DGIFF),y)
+# DIRECTFB2_EXAMPLES_CONF_OPTS += -Dfont-headers=dgiff
+# else ifeq ($(BR2_PACKAGE_DIRECTFB2_EXAMPLES_FONT_HEADER_ttf),y)
+# DIRECTFB2_EXAMPLES_CONF_OPTS += -Dfont-headers=ttf
+# endif
+
+# Disabled for now as directfb2-csource currently does not generate
+# pkgconfig file
+#
+# ifeq ($(BR2_PACKAGE_DIRECTFB2_EXAMPLES_DFIFF),y)
+# DIRECTFB2_EXAMPLES_CONF_OPTS += -Dimage-headers=dfiff
+# else ifeq ($(BR2_PACKAGE_DIRECTFB2_EXAMPLES_PNG),y)
+# DIRECTFB2_EXAMPLES_CONF_OPTS += -Dimage-headers=png
+# endif
+
+# Disabled for now as directfb2-csource currently does not generate
+# pkgconfig file
+#
+# ifeq ($(BR2_PACKAGE_DIRECTFB2_EXAMPLES_VIDEO_HEADERS_DFVFF),y)
+# DIRECTFB2_EXAMPLES_CONF_OPTS += -Dvideo-headers=dfvff
+# else ifeq ($(BR2_PACKAGE_DIRECTFB2_EXAMPLES_VIDEO_HEADERS_M2V),y)
+# DIRECTFB2_EXAMPLES_CONF_OPTS += -Dvideo-headers=m2v
+# else ifeq ($(BR2_PACKAGE_DIRECTFB2_EXAMPLES_VIDEO_HEADERS_264),y)
+# DIRECTFB2_EXAMPLES_CONF_OPTS += -Dvideo-headers=264
+# endif
+
+$(eval $(meson-package))
diff --git a/package/directfb2-lite/Config.in b/package/directfb2-lite/Config.in
new file mode 100644
index 0000000000..d76a2896e1
--- /dev/null
+++ b/package/directfb2-lite/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_DIRECTFB2_LITE
+	bool "directfb2-lite"
+	depends on BR2_PACKAGE_DIRECTFB2
+	help
+	  LiTE stands for Lightweight Toolkit Enabler and is a simple
+	  user interface library on top of DirectFB2. Widgets can be
+	  used with a default theme, or with its own custom theme.
diff --git a/package/directfb2-lite/directfb2-lite.mk b/package/directfb2-lite/directfb2-lite.mk
new file mode 100644
index 0000000000..56cb099e98
--- /dev/null
+++ b/package/directfb2-lite/directfb2-lite.mk
@@ -0,0 +1,15 @@
+################################################################################
+#
+# directfb2-lite
+#
+################################################################################
+
+DIRECTFB2_LITE_VERSION = 164bb5eca507c3cee1be2adf3798745f305495d7
+DIRECTFB2_LITE_SITE = "https://github.com/directfb2/LiTE"
+DIRECTFB2_LITE_SITE_METHOD = git
+DIRECTFB2_LITE_LICENSE = LGPL-2.1
+DIRECTFB2_LITE_LICENSE_FILES = COPYING
+DIRECTFB2_LITE_DEPENDENCIES = directfb2
+DIRECTFB2_LITE_INSTALL_STAGING = YES
+
+$(eval $(meson-package))
diff --git a/package/directfb2-media/Config.in b/package/directfb2-media/Config.in
new file mode 100644
index 0000000000..1a0e09d077
--- /dev/null
+++ b/package/directfb2-media/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_DIRECTFB2_MEDIA
+	bool "directfb2-media"
+	depends on BR2_PACKAGE_DIRECTFB2
+	help
+	  DirectFB2-media contains additional font/image/music/video
+	  providers for DirectFB2.
diff --git a/package/directfb2-media/directfb2-media.mk b/package/directfb2-media/directfb2-media.mk
new file mode 100644
index 0000000000..50efa168d9
--- /dev/null
+++ b/package/directfb2-media/directfb2-media.mk
@@ -0,0 +1,15 @@
+################################################################################
+#
+# directfb2-media
+#
+################################################################################
+
+DIRECTFB2_MEDIA_VERSION = 8f8cb02a3d67a3eb9726ca2927061e2697b7f2de
+DIRECTFB2_MEDIA_SITE = "https://github.com/directfb2/DirectFB2-media"
+DIRECTFB2_MEDIA_SITE_METHOD = git
+DIRECTFB2_MEDIA_LICENSE = LGPL-2.1
+DIRECTFB2_MEDIA_LICENSE_FILES = COPYING
+DIRECTFB2_MEDIA_DEPENDENCIES = directfb2
+DIRECTFB2_MEDIA_INSTALL_STAGING = YES
+
+$(eval $(meson-package))
diff --git a/package/directfb2-tools/Config.in b/package/directfb2-tools/Config.in
new file mode 100644
index 0000000000..f4d16596bc
--- /dev/null
+++ b/package/directfb2-tools/Config.in
@@ -0,0 +1,5 @@
+config BR2_PACKAGE_DIRECTFB2_TOOLS
+	bool "directfb2-tools"
+	depends on BR2_PACKAGE_DIRECTFB2
+	help
+	  DirectFB2-tools contains various DirectFB2 utilities.
diff --git a/package/directfb2-tools/directfb2-tools.mk b/package/directfb2-tools/directfb2-tools.mk
new file mode 100644
index 0000000000..7930159f2b
--- /dev/null
+++ b/package/directfb2-tools/directfb2-tools.mk
@@ -0,0 +1,14 @@
+################################################################################
+#
+# directfb2-tools
+#
+################################################################################
+
+DIRECTFB2_TOOLS_VERSION = 679838c281cbe7849011f7f6db1c815167c44fee
+DIRECTFB2_TOOLS_SITE = "https://github.com/directfb2/DirectFB2-tools"
+DIRECTFB2_TOOLS_SITE_METHOD = git
+DIRECTFB2_TOOLS_LICENSE = GPL-2.0
+DIRECTFB2_TOOLS_LICENSE_FILES = COPYING
+DIRECTFB2_TOOLS_DEPENDENCIES = directfb2
+
+$(eval $(meson-package))
diff --git a/package/directfb2/Config.in b/package/directfb2/Config.in
new file mode 100644
index 0000000000..6ef6e69a07
--- /dev/null
+++ b/package/directfb2/Config.in
@@ -0,0 +1,70 @@
+menuconfig BR2_PACKAGE_DIRECTFB2
+	bool "DirectFB2"
+	default n
+	help
+	  DirectFB2 is a fork of DirectFB (Direct Frame Buffer) whose
+	  purpose is to preserve and maintain the DirectFB graphics
+	  backend, particularly for use on embedded systems.
+
+	  The official DirectFB2 website can be visited via
+	  https://directfb2.github.io/
+
+if BR2_PACKAGE_DIRECTFB2
+
+menu "DirectFB2 Options"
+
+config BR2_PACKAGE_DIRECTFB2_DRMKMS
+	bool "Enable Linux DRM/KMS support"
+
+config BR2_PACKAGE_DIRECTFB2_FBDEV
+	bool "Enable Linux Framebuffer support"
+
+config BR2_PACKAGE_DIRECTFB2_LINUX_INPUT
+	bool "Enable Linux input support"
+
+if BR2_X86_CPU_HAS_MMX
+config BR2_PACKAGE_DIRECTFB2_MMX
+	bool "Enable MMX assembly support"
+	default y
+endif #	BR2_X86_CPU_HAS_MMX
+
+config BR2_PACKAGE_DIRECTFB2_MULTI
+	bool "Enable multi application support"
+
+config BR2_PACKAGE_DIRECTFB2_MULTI_KERNEL
+	bool "Enable Linux fusion device support for multi application"
+	select BR2_PACKAGE_DIRECTFB2_MULTI
+
+# if BR2_ARM_CPU_HAS_NEON
+# config BR2_PACKAGE_DIRECTFB2_NEON
+#	bool "Enable NEON assembly support"
+#	default y
+# endif # BR2_ARM_CPU_HAS_NEON
+#
+# DirectFB2 currently has issues enabling NEON. For more details, see:
+# https://github.com/directfb2/DirectFB2/issues/142
+
+config BR2_PACKAGE_DIRECTFB2_NETWORK
+	bool "Enable network support"
+
+config BR2_PACKAGE_DIRECTFB2_SENTINELS
+	bool "Enable surface sentinels at the end of chunks in video memory"
+
+config BR2_PACKAGE_DIRECTFB2_SMOOTH_SCALING
+	bool "Enable smooth scaling support"
+
+endmenu
+
+menu "DirectFB2 Applications"
+source "package/directfb2-examples/Config.in"
+source "package/dfbterm/Config.in"
+endmenu
+
+menu "DirectFB2 Utilities"
+source "package/directfb2-media/Config.in"
+source "package/directfb2-tools/Config.in"
+source "package/directfb2-csource/Config.in"
+source "package/directfb2-lite/Config.in"
+endmenu
+
+endif # BR2_PACKAGE_DIRECTFB2
diff --git a/package/directfb2/directfb2.mk b/package/directfb2/directfb2.mk
new file mode 100644
index 0000000000..197ff38632
--- /dev/null
+++ b/package/directfb2/directfb2.mk
@@ -0,0 +1,62 @@
+################################################################################
+#
+# directfb2
+#
+################################################################################
+
+DIRECTFB2_VERSION = 2952d1d16b546be09e1cbb5da5e0c718d8f5ee32
+DIRECTFB2_SITE = "https://github.com/directfb2/DirectFB2"
+DIRECTFB2_SITE_METHOD = git
+DIRECTFB2_LICENSE = LGPL-2.1
+DIRECTFB2_LICENSE_FILES = COPYING
+DIRECTFB2_INSTALL_STAGING = YES
+
+ifeq ($(BR2_PACKAGE_DIRECTFB2_DRMKMS),y)
+DIRECTFB2_CONF_OPTS += -Ddrmkms=true
+endif
+
+ifeq ($(BR2_PACKAGE_DIRECTFB2_FBDEV),y)
+DIRECTFB2_CONF_OPTS += -Dfbdev=true
+endif
+
+ifeq ($(BR2_PACKAGE_DIRECTFB2_LINUX_INPUT),y)
+DIRECTFB2_CONF_OPTS += -Dlinux_input=true
+endif
+
+ifeq ($(BR2_PACKAGE_DIRECTFB2_MMX),y)
+DIRECTFB2_CONF_OPTS += -Dmmx=true
+else ifeq ($(BR2_PACKAGE_DIRECTFB2_MMX),n)
+DIRECTFB2_CONF_OPTS += -Dmmx=false
+endif
+
+ifeq ($(BR2_PACKAGE_DIRECTFB2_MULTI),y)
+DIRECTFB2_CONF_OPTS += -Dmulti=true
+endif
+
+ifeq ($(BR2_PACKAGE_DIRECTFB2_MULTI_KERNEL),y)
+DIRECTFB2_CONF_OPTS += -Dmulti-kernel=true
+endif
+
+# ifeq ($(BR2_PACKAGE_DIRECTFB2_NEON),y)
+# DIRECTFB2_CONF_OPTS += -Dneon=true
+# else ifeq ($(BR2_PACKAGE_DIRECTFB2_NEON),y)
+# DIRECTFB2_CONF_OPTS += -Dneon=false
+# endif
+#
+# DirectFB2 currently has issues enabling NEON. For more details, see:
+# https://github.com/directfb2/DirectFB2/issues/142
+DIRECTFB2_CONF_OPTS += -Dneon=false
+
+ifeq ($(BR2_PACKAGE_DIRECTFB2_NETWORK),y)
+DIRECTFB2_CONF_OPTS += -Dnetwork=true
+endif
+
+ifeq ($(BR2_PACKAGE_DIRECTFB2_SENTINELS),y)
+DIRECTFB2_CONF_OPTS += -Dsentinels=true
+endif
+
+ifeq ($(BR2_PACKAGE_DIRECTFB2_SMOOTH_SCALING),y)
+DIRECTFB2_CONF_OPTS += -Dsmooth-scaling=true
+endif
+
+$(eval $(meson-package))
