From 4aa0ade2164926166b0a2054836e879f3f90ff2e Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Fri, 24 Nov 2017 18:48:33 +0100 Subject: [xorg] Support building xorg drivers from source, do for amdgpu and radeon --- core/modules/xorg/module.build | 25 ++++++++++++++++++++++++- core/modules/xorg/module.conf.ubuntu.17 | 32 ++++++++++++++++++++++++++++---- 2 files changed, 52 insertions(+), 5 deletions(-) (limited to 'core/modules/xorg') diff --git a/core/modules/xorg/module.build b/core/modules/xorg/module.build index 8806fc9f..8fc1edd4 100644 --- a/core/modules/xorg/module.build +++ b/core/modules/xorg/module.build @@ -1,7 +1,15 @@ #!/bin/bash fetch_source() { - : + if [ -n "$REQUIRED_XORG_DRIVERS" ]; then + mkdir -p src + cd src || perror "No cd to xorg src dir" + for drv in $REQUIRED_XORG_DRIVERS; do + [ -d "${drv}/.git" ] && continue + git clone --depth 1 "git://anongit.freedesktop.org/xorg/driver/${drv}" "${drv}" || perror "Could not clone $drv" + done + cd - + fi } build() { @@ -21,6 +29,21 @@ build() { rm -rf -- "${MODULE_BUILD_DIR}/lib/udev" "${MODULE_BUILD_DIR}/etc/udev" # This freezed/crashed X with certain gfx cards (radeon R240) rm -f -- "${MODULE_BUILD_DIR}/usr/lib/xorg/modules/libglamoregl.so" + + # See if we should build more up to date versions of drivers + local drv + if [ -n "$REQUIRED_XORG_DRIVERS" ]; then + pinfo "Compiling requested xorg drivers from source" + mkdir -p "${MODULE_BUILD_DIR}/usr/lib/xorg/modules/drivers" + for drv in $REQUIRED_XORG_DRIVERS; do + pinfo "Compiling $drv" + cd "${MODULE_WORK_DIR}/src/${drv}" || perror "No src dir for xorg driver $drv" + ./autogen.sh || perror "Autogen for $drv failed" + ./configure || perror "configure for $drv failed" + make || perror "Make for $drv failed" + find . -type f -name "*_drv.so" -exec cp {} "${MODULE_BUILD_DIR}/usr/lib/xorg/modules/drivers" \; + done + fi } post_copy() { diff --git a/core/modules/xorg/module.conf.ubuntu.17 b/core/modules/xorg/module.conf.ubuntu.17 index f20add1d..66ba3a90 100644 --- a/core/modules/xorg/module.conf.ubuntu.17 +++ b/core/modules/xorg/module.conf.ubuntu.17 @@ -19,14 +19,29 @@ REQUIRED_INSTALLED_PACKAGES=" xserver-xorg-input-synaptics$UBUNTU_XORG_PKG_SUFFIX xserver-xorg-input-wacom$UBUNTU_XORG_PKG_SUFFIX xserver-xorg-input-libinput$UBUNTU_XORG_PKG_SUFFIX - xserver-xorg-video-ati$UBUNTU_XORG_PKG_SUFFIX xserver-xorg-video-fbdev$UBUNTU_XORG_PKG_SUFFIX xserver-xorg-video-intel$UBUNTU_XORG_PKG_SUFFIX xserver-xorg-video-nouveau$UBUNTU_XORG_PKG_SUFFIX - xserver-xorg-video-radeon$UBUNTU_XORG_PKG_SUFFIX xserver-xorg-video-sisusb$UBUNTU_XORG_PKG_SUFFIX xserver-xorg-video-vesa$UBUNTU_XORG_PKG_SUFFIX xserver-xorg-video-vmware$UBUNTU_XORG_PKG_SUFFIX + + libdrm-dev + libgbm-dev + libgl-dev + libgl1-mesa-dev + libudev-dev + pkg-config + x11proto-core-dev + x11proto-dri2-dev + x11proto-fonts-dev + x11proto-randr-dev + x11proto-render-dev + x11proto-video-dev + x11proto-xext-dev + x11proto-xf86dri-dev + xserver-xorg-dev + xutils-dev " REQUIRED_CONTENT_PACKAGES=" fonts-dejavu-core @@ -46,11 +61,9 @@ REQUIRED_CONTENT_PACKAGES=" xserver-xorg-input-libinput$UBUNTU_XORG_PKG_SUFFIX xserver-xorg-input-synaptics$UBUNTU_XORG_PKG_SUFFIX xserver-xorg-input-wacom$UBUNTU_XORG_PKG_SUFFIX - xserver-xorg-video-ati$UBUNTU_XORG_PKG_SUFFIX xserver-xorg-video-fbdev$UBUNTU_XORG_PKG_SUFFIX xserver-xorg-video-intel$UBUNTU_XORG_PKG_SUFFIX xserver-xorg-video-nouveau$UBUNTU_XORG_PKG_SUFFIX - xserver-xorg-video-radeon$UBUNTU_XORG_PKG_SUFFIX xserver-xorg-video-sisusb$UBUNTU_XORG_PKG_SUFFIX xserver-xorg-video-vesa$UBUNTU_XORG_PKG_SUFFIX xserver-xorg-video-vmware$UBUNTU_XORG_PKG_SUFFIX @@ -72,4 +85,15 @@ REQUIRED_CONTENT_PACKAGES=" REQUIRED_DIRECTORIES+=" /usr/lib " +# TODO: Required because the shipped ones crash on VT switch as of 2017-11-24 +# Remove when fixed in ubuntu repos +REQUIRED_XORG_DRIVERS=" + xf86-video-ati + xf86-video-amdgpu +" +REQUIRED_LIBRARIES+=" + amdgpu_drv + radeon_drv + ati_drv +" REQUIRED_FILES="" -- cgit v1.2.3-55-g7522