xorg: fix dependencies, add fbturbo driver (branch yem/xorg)
v2 cover xorg: fix dependencies, add fbturbo driver (branch yem/xorg)
Hello All!
This series introduces three changes in our Xorg stack:
- the dependency on libdrm is cleaned up
- a missing dependency on libdrm has been added for DRI2
- a new video driver, fbturbo, has been added (thanks Scott)
Changes v1 -> v2:
- drop modular-server-as-default patch, committed
- add fbturbo driver, which triggered the libdrm issue
Regards,
Yann E. MORIN.
The following changes since commit f986cca8b1967095871065371e75b2498b2185cd:
freerdp: Add support for tz package (2015-07-30 23:37:26 +0200)
are available in the git repository at:
git://git.busybox.net/~ymorin/git/buildroot yem/xorg
for you to fetch changes up to 1717e338b9d4e5998366a2d5f11897749a546ca1:
xdriver_xf86-video-fbturbo: new package (2015-07-31 00:22:13 +0200)
----------------------------------------------------------------
Scott Fan (1):
xdriver_xf86-video-fbturbo: new package
Yann E. MORIN (2):
package/xserver: commonalise dependency on libdrm package/xserver_xorg-server: dri2 needs libdrm
package/x11r7/Config.in | 1 + package/x11r7/xdriver_xf86-video-fbturbo/Config.in | 16 ++++++++++++++++ .../xdriver_xf86-video-fbturbo.mk | 21 +++++++++++++++++++++ package/x11r7/xserver_xorg-server/Config.in | 1 + .../xserver_xorg-server/xserver_xorg-server.mk | 19 ++++++++++++++----- 5 files changed, 53 insertions(+), 5 deletions(-) create mode 100644 package/x11r7/xdriver_xf86-video-fbturbo/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-fbturbo/xdriver_xf86-video-fbturbo.mk
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH v2 1/3 package/xserver: commonalise dependency on libdrm
Currently, we have two locations that may want to enable and.or disable libdrm, and it's not clear how those two location correlate one to the other, i.e. they may well want o do one the opposite of the other.
Introduce an intermediate variable that records whether libdrm is needed, and use that to depend on, and enable, libdrm.
---
Note: there might be other libs in the same situation, but that can come in later patches as the need arises... I just change this one lbdrm, because it will be needed by a followup patch to fix building with dri2proto enabled.
--- .../x11r7/xserver_xorg-server/xserver_xorg-server.mk | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-)
package/x11r7/xserver_xorg-server/xserver_xorg-server.mk +13 -5
@@ -122,10 +122,11 @@ XSERVER_XORG_SERVER_CONF_OPTS += --disable-kdrive --disable-xfbdev endif ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),y) -XSERVER_XORG_SERVER_CONF_OPTS += --enable-dri --enable-libdrm --enable-glx -XSERVER_XORG_SERVER_DEPENDENCIES += libdrm mesa3d xproto_xf86driproto +XSERVER_XORG_SERVER_CONF_OPTS += --enable-dri --enable-glx +XSERVER_XORG_SERVER_DEPENDENCIES += mesa3d xproto_xf86driproto +XSERVER_XORG_SERVER_NEEDS_LIBDRM = y else -XSERVER_XORG_SERVER_CONF_OPTS += --disable-dri --disable-libdrm --disable-glx +XSERVER_XORG_SERVER_CONF_OPTS += --disable-dri --disable-glx endif ifeq ($(BR2_PACKAGE_XSERVER_XORG_SERVER_AIGLX),y)
@@ -145,8 +146,8 @@ XSERVER_XORG_SERVER_DEPENDENCIES += udev XSERVER_XORG_SERVER_CONF_OPTS += --enable-config-udev # udev kms support depends on libdrm ifeq ($(BR2_PACKAGE_LIBDRM),y) -XSERVER_XORG_SERVER_DEPENDENCIES += libdrm -XSERVER_XORG_SERVER_CONF_OPTS += --enable-config-udev-kms --enable-libdrm +XSERVER_XORG_SERVER_CONF_OPTS += --enable-config-udev-kms +XSERVER_XORG_SERVER_NEEDS_LIBDRM = y else XSERVER_XORG_SERVER_CONF_OPTS += --disable-config-udev-kms endif
@@ -228,4 +229,11 @@ XSERVER_XORG_SERVER_CONF_OPTS += --with-sha1=libsha1 XSERVER_XORG_SERVER_DEPENDENCIES += libsha1 endif +ifeq ($(XSERVER_XORG_SERVER_NEEDS_LIBDRM),y) +XSERVER_XORG_SERVER_DEPENDENCIES += libdrm +XSERVER_XORG_SERVER_CONF_OPTS += --enable-libdrm +else +XSERVER_XORG_SERVER_CONF_OPTS += --disable-libdrm +endif + $(eval $(autotools-package))
Signature · 1 line
1.9.1
PATCH v2 1/3 package/xserver: commonalise dependency on libdrm
Yann,
package/x11r7/xserver_xorg-server/xserver_xorg-server.mk XSERVER_XORG_SERVER_CONF_OPTS += --disable-kdrive --disable-xfbdev · line 127
Quoted 6 lines · Yann E. MORIN
ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),y)
package/x11r7/xserver_xorg-server/xserver_xorg-server.mk +3
-2-XSERVER_XORG_SERVER_CONF_OPTS += --enable-dri --enable-libdrm --enable-glx -XSERVER_XORG_SERVER_DEPENDENCIES += libdrm mesa3d xproto_xf86driproto +XSERVER_XORG_SERVER_CONF_OPTS += --enable-dri --enable-glx +XSERVER_XORG_SERVER_DEPENDENCIES += mesa3d xproto_xf86driproto +XSERVER_XORG_SERVER_NEEDS_LIBDRM = y
Hum, didn't we say that this should be a hidden Config.in boolean?
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v2 1/3 package/xserver: commonalise dependency on libdrm
Thomas, All,
On 2015-07-31 07:57 +0200, Thomas Petazzoni spake thusly:
Quoted 9 lines · Yann E. MORIN
package/x11r7/xserver_xorg-server/xserver_xorg-server.mk XSERVER_XORG_SERVER_CONF_OPTS += --disable-kdrive --disable-xfbdev · line 127
Quoted 6 lines
ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),y)
package/x11r7/xserver_xorg-server/xserver_xorg-server.mk +3
-2-XSERVER_XORG_SERVER_CONF_OPTS += --enable-dri --enable-libdrm --enable-glx -XSERVER_XORG_SERVER_DEPENDENCIES += libdrm mesa3d xproto_xf86driproto +XSERVER_XORG_SERVER_CONF_OPTS += --enable-dri --enable-glx +XSERVER_XORG_SERVER_DEPENDENCIES += mesa3d xproto_xf86driproto +XSERVER_XORG_SERVER_NEEDS_LIBDRM = yHum, didn't we say that this should be a hidden Config.in boolean?
Yes, you suggested so; I said yes; I tried; I said no... ;-)
http://lists.busybox.net/pipermail/buildroot/2015-July/135100.html
Basically, all the conditional code is in the .mk , and there's almost no conditional in the Config.in.
So, I'd like not to duplicate the decision making in Config.in and keep all in a single place, the .mk .
That's why I did not move that to a blind kconfig option.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH v2 1/3 package/xserver: commonalise dependency on libdrm
Thomas, All,
On 2015-07-31 18:59 +0200, Yann E. MORIN spake thusly:
Quoted 14 lines
On 2015-07-31 07:57 +0200, Thomas Petazzoni spake thusly:
Quoted 9 lines · Yann E. MORIN
package/x11r7/xserver_xorg-server/xserver_xorg-server.mk XSERVER_XORG_SERVER_CONF_OPTS += --disable-kdrive --disable-xfbdev · line 127
Quoted 6 lines
ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),y)
package/x11r7/xserver_xorg-server/xserver_xorg-server.mk +3
-2-XSERVER_XORG_SERVER_CONF_OPTS += --enable-dri --enable-libdrm --enable-glx -XSERVER_XORG_SERVER_DEPENDENCIES += libdrm mesa3d xproto_xf86driproto +XSERVER_XORG_SERVER_CONF_OPTS += --enable-dri --enable-glx +XSERVER_XORG_SERVER_DEPENDENCIES += mesa3d xproto_xf86driproto +XSERVER_XORG_SERVER_NEEDS_LIBDRM = yHum, didn't we say that this should be a hidden Config.in boolean?
Yes, you suggested so; I said yes; I tried; I said no... ;-)
http://lists.busybox.net/pipermail/buildroot/2015-July/135100.html
Quoted 7 lines
Basically, all the conditional code is in the .mk , and there's almost no conditional in the Config.in.
So, I'd like not to duplicate the decision making in Config.in and keep all in a single place, the .mk .
That's why I did not move that to a blind kconfig option.
Did you make up your mind about this?
Now that we've switched to a mdular server by default, this series is now fixing actual autobuild errors...
If you really prefer that we duplicate all the logic in Config.in , I'll do it.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH v2 1/3 package/xserver: commonalise dependency on libdrm
Am Wed, 05 Aug 2015 22:11:05 +0200 schrieb Yann E. MORIN:
Quoted 2 lines
Now that we've switched to a mdular server by default, this series is now fixing actual autobuild errors...
Hi Yann,
I posted an alternative solution for the build errors:
http://patchwork.ozlabs.org/patch/505307/
http://patchwork.ozlabs.org/patch/505305/
http://patchwork.ozlabs.org/patch/505306/
Regards, Bernd
PATCH v2 2/3 package/xserver_xorg-server: dri2 needs libdrm
In reply to Yann E. MORINFixes build issues like:
CC dri2.lo
CC dri2ext.lo
dri2.c: In function 'dri2_probe_driver_name':
dri2.c:1434:9: error: unknown type name 'drmVersionPtr'
dri2.c:1434:9: warning: implicit declaration of function 'drmGetVersion' [-Wimplicit-function-declaration] dri2.c:1434:9: warning: nested extern declaration of 'drmGetVersion' [-Wnested-externs] dri2.c:1444:40: error: invalid type argument of '->' (have 'int')
dri2.c:1444:55: error: invalid type argument of '->' (have 'int')
dri2.c:1445:9: warning: implicit declaration of function 'drmFreeVersion' [-Wimplicit-function-declaration] dri2.c:1445:9: warning: nested extern declaration of 'drmFreeVersion' [-Wnested-externs] make[7]: *** [dri2.lo] Error 1
with this defconfig:
BR2_TOOLCHAIN_EXTERNAL=y
BR2_PACKAGE_XORG7=y
BR2_PACKAGE_XSERVER_XORG_SERVER=y
BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR=y
BR2_PACKAGE_XPROTO_DRI2PROTO=y--- package/x11r7/xserver_xorg-server/Config.in | 1 + package/x11r7/xserver_xorg-server/xserver_xorg-server.mk | 1 + 2 files changed, 2 insertions(+)
package/x11r7/xserver_xorg-server/Config.in +1 -0
@@ -93,6 +93,7 @@ choice config BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR bool "Modular X.org" depends on BR2_INSTALL_LIBSTDCPP + select BR2_PACKAGE_LIBDRM if BR2_PACKAGE_XPROTO_DRI2PROTO help This variant of the X.org server is the full-blown variant, as used by desktop GNU/Linux distributions. The drivers (for
package/x11r7/xserver_xorg-server/xserver_xorg-server.mk +1 -0
@@ -190,6 +190,7 @@ ifeq ($(BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR),y) ifeq ($(BR2_PACKAGE_XPROTO_DRI2PROTO),y) XSERVER_XORG_SERVER_DEPENDENCIES += xproto_dri2proto XSERVER_XORG_SERVER_CONF_OPTS += --enable-dri2 +XSERVER_XORG_SERVER_NEEDS_LIBDRM = y else XSERVER_XORG_SERVER_CONF_OPTS += --disable-dri2 endif
Signature · 1 line
1.9.1
PATCH v2 3/3 xdriver_xf86-video-fbturbo: new package
In reply to Yann E. MORINFrom: Scott Fan <[email protected]>
Add the fbturbo video driver, which is based on xf86-video-fbdev (with none of the original features stripped), primarily optimized for the devices powered by the Allwinner SoC (A10, A13, A20).
https://github.com/ssvb/xf86-video-fbturbo/
--- package/x11r7/Config.in | 1 + package/x11r7/xdriver_xf86-video-fbturbo/Config.in | 16 ++++++++++++++++ .../xdriver_xf86-video-fbturbo.mk | 21 +++++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 package/x11r7/xdriver_xf86-video-fbturbo/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-fbturbo/xdriver_xf86-video-fbturbo.mk
package/x11r7/Config.in +1 -0
@@ -162,6 +162,7 @@ if BR2_PACKAGE_XORG7 source package/x11r7/xdriver_xf86-video-cirrus/Config.in source package/x11r7/xdriver_xf86-video-dummy/Config.in source package/x11r7/xdriver_xf86-video-fbdev/Config.in + source package/x11r7/xdriver_xf86-video-fbturbo/Config.in source package/x11r7/xdriver_xf86-video-geode/Config.in source package/x11r7/xdriver_xf86-video-glide/Config.in source package/x11r7/xdriver_xf86-video-glint/Config.in
package/x11r7/xdriver_xf86-video-fbturbo/Config.in new file +16 -0
@@ -0,0 +1,16 @@ +config BR2_PACKAGE_XDRIVER_XF86_VIDEO_FBTURBO + bool "xf86-video-fbturbo" + select BR2_PACKAGE_LIBDRI2 + select BR2_PACKAGE_XPROTO_FONTSPROTO + select BR2_PACKAGE_XPROTO_RANDRPROTO + select BR2_PACKAGE_XPROTO_RENDERPROTO + select BR2_PACKAGE_XPROTO_VIDEOPROTO + select BR2_PACKAGE_XPROTO_XPROTO + select BR2_PACKAGE_XPROTO_XF86DRIPROTO + help + video driver, primarily optimized for the devices powered + by the Allwinner SoC (A10, A13, A20). It can use some of + the 2D/3D hardware acceleration features. + + https://github.com/ssvb/xf86-video-fbturbo +
package/x11r7/xdriver_xf86-video-fbturbo/xdriver_xf86-video-fbturbo.mk new file +21 -0
@@ -0,0 +1,21 @@ +################################################################################ +# +# xdriver_xf86-video-fbturbo +# +################################################################################ + +XDRIVER_XF86_VIDEO_FBTURBO_VERSION = 0.4.0 +XDRIVER_XF86_VIDEO_FBTURBO_SITE = $(call github,ssvb,xf86-video-fbturbo,$(XDRIVER_XF86_VIDEO_FBTURBO_VERSION)) +XDRIVER_XF86_VIDEO_FBTURBO_LICENSE = MIT +XDRIVER_XF86_VIDEO_FBTURBO_LICENSE_FILES = COPYING +XDRIVER_XF86_VIDEO_FBTURBO_DEPENDENCIES = xserver_xorg-server xproto_fontsproto xproto_randrproto xproto_renderproto xproto_videoproto xproto_xproto + +XDRIVER_XF86_VIDEO_FBTURBO_DEPENDENCIES += xproto_xf86driproto libdri2 + +define XDRIVER_XF86_VIDEO_FBTURBO_INSTALL_CONF_FILE + $(INSTALL) -m 0644 -D $(@D)/xorg.conf $(TARGET_DIR)/etc/X11/xorg.conf +endef + +XDRIVER_XF86_VIDEO_FBTURBO_POST_INSTALL_TARGET_HOOKS += XDRIVER_XF86_VIDEO_FBTURBO_INSTALL_CONF_FILE + +$(eval $(autotools-package))
Signature · 1 line
1.9.1
PATCH v2 3/3 xdriver_xf86-video-fbturbo: new package
Quoted 21 lines · Yann E. MORIN
From: Scott Fan <[email protected]>
Add the fbturbo video driver, which is based on xf86-video-fbdev (with none of the original features stripped), primarily optimized for the devices powered by the Allwinner SoC (A10, A13, A20).
https://github.com/ssvb/xf86-video-fbturbo/
Signed-off-by Scott Fan <[email protected]>[yann.morin.1998 at free.fr: strip help text to the basics only]Signed-off-by Yann E. MORIN <[email protected]>--- package/x11r7/Config.in | 1 + package/x11r7/xdriver_xf86-video-fbturbo/Config.in | 16 ++++++++++++++++ .../xdriver_xf86-video-fbturbo.mk | 21 +++++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 package/x11r7/xdriver_xf86-video-fbturbo/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-fbturbo/xdriver_xf86-video-fbturbo.mk+++ b/package/x11r7/xdriver_xf86-video-fbturbo/Config.in
package/x11r7/xdriver_xf86-video-fbturbo/Config.in line 3
Quoted 3 lines
package/x11r7/xdriver_xf86-video-fbturbo/Config.in new file +3
-0@@ -0,0 +1,16 @@ +config BR2_PACKAGE_XDRIVER_XF86_VIDEO_FBTURBO + bool "xf86-video-fbturbo" + select BR2_PACKAGE_LIBDRI2
It actually doesn't use libdri2 for anything (it does contain a stray #include "dri2.h" but it isn't needed and I've added a patch to drop it).
The configure script also checks for libdrm and pixman, so I've added that as well.
Quoted 22 lines
package/x11r7/xdriver_xf86-video-fbturbo/Config.in new file +13
-0+ select BR2_PACKAGE_XPROTO_FONTSPROTO + select BR2_PACKAGE_XPROTO_RANDRPROTO + select BR2_PACKAGE_XPROTO_RENDERPROTO + select BR2_PACKAGE_XPROTO_VIDEOPROTO + select BR2_PACKAGE_XPROTO_XPROTO + select BR2_PACKAGE_XPROTO_XF86DRIPROTO + help + video driver, primarily optimized for the devices powered + by the Allwinner SoC (A10, A13, A20). It can use some of + the 2D/3D hardware acceleration features. + + https://github.com/ssvb/xf86-video-fbturbo +package/x11r7/xdriver_xf86-video-fbturbo/xdriver_xf86-video-fbturbo.mk new file +3
-0@@ -0,0 +1,21 @@ +################################################################################ +# +# xdriver_xf86-video-fbturbo
package/x11r7/xdriver_xf86-video-fbturbo/xdriver_xf86-video-fbturbo.mk line 13
Quoted 10 lines
package/x11r7/xdriver_xf86-video-fbturbo/xdriver_xf86-video-fbturbo.mk new file +10
-0+# +################################################################################ + +XDRIVER_XF86_VIDEO_FBTURBO_VERSION = 0.4.0 +XDRIVER_XF86_VIDEO_FBTURBO_SITE = $(call github,ssvb,xf86-video-fbturbo,$(XDRIVER_XF86_VIDEO_FBTURBO_VERSION)) +XDRIVER_XF86_VIDEO_FBTURBO_LICENSE = MIT +XDRIVER_XF86_VIDEO_FBTURBO_LICENSE_FILES = COPYING +XDRIVER_XF86_VIDEO_FBTURBO_DEPENDENCIES = xserver_xorg-server xproto_fontsproto xproto_randrproto xproto_renderproto xproto_videoproto xproto_xproto + +XDRIVER_XF86_VIDEO_FBTURBO_DEPENDENCIES += xproto_xf86driproto libdri2
There's no need for the += here, it can all be handled on a single _DEPENDENCIES assignment. I've fixed the overlong line as well.
The package also has optional support for libpciaccess, so I've added that.
Committed with these fixes, thanks.
Signature · 1 line
Bye, Peter Korsgaard