From 8263c26d4eedaf903d8f47e583c025aba50de2de Mon Sep 17 00:00:00 2001 From: Max Krummenacher Date: Sun, 29 Sep 2019 22:30:42 +0200 Subject: linux-driver-package, mesa: rework the recipe Recent OE adds additional shared object checks which errors out on the way the binary Tegra drivers are injected. Rework the recipes, so that - mesa no longer PROVIDE any OpenGL shared objects and the binaries. - linux-driver-package now depends on mesa to install development headers - linux-driver-package PROVIDE and RPROVIDE the OpenGL shared objects. - linux-driver-package drops the additional arm-linux-gnueabihf/tegra path to the *.so* files. - the apalis-tk1 machine PREFERS linux-driver-package as the OpenGL provider. Signed-off-by: Max Krummenacher --- .../binary-drivers/linux-driver-package_21.7.0.bb | 47 +++++++++++++++------- 1 file changed, 33 insertions(+), 14 deletions(-) (limited to 'recipes-bsp') diff --git a/recipes-bsp/binary-drivers/linux-driver-package_21.7.0.bb b/recipes-bsp/binary-drivers/linux-driver-package_21.7.0.bb index 5067cb9..2570388 100755 --- a/recipes-bsp/binary-drivers/linux-driver-package_21.7.0.bb +++ b/recipes-bsp/binary-drivers/linux-driver-package_21.7.0.bb @@ -30,7 +30,7 @@ INITSCRIPT_PARAMS_${PN}-boot = "start 41 S . " INITSCRIPT_NAME_${PN}-firstboot = "nvfb" INITSCRIPT_PARAMS_${PN}-firstboot = "start 40 S . " -DEPENDS = "virtual/libx11 alsa-lib libxext" +DEPENDS = "virtual/libx11 alsa-lib libxext mesa" INSANE_SKIP_${PN} = "ldflags" @@ -38,11 +38,32 @@ PACKAGE_ARCH = "${MACHINE_ARCH}" S = "${WORKDIR}/Linux_for_Tegra" +PROVIDES += " \ + virtual/egl \ + virtual/libgl \ + virtual/libgles1 \ + virtual/libgles2 \ +" +RPROVIDES_${PN} = " \ + libegl \ + libgl \ + libgles1 \ + libgles2 \ +" + PACKAGES =+ "${PN}-firmware ${PN}-boot ${PN}-firstboot" INSANE_SKIP_${PN}-dev = "ldflags" +# We have unversioned shared object, deploy them in the regular packages, +# but deploy the *.so files which are symlinks in the -dev package. +FILES_SOLIBSDEV = "" FILES_${PN} = "${bindir}/* ${libdir}/* ${sysconfdir}/* ${sysconfdir}/*/*" +FILES_${PN}-dev += " \ + ${libdir}/libcuda.so ${libdir}/libEGL.so ${libdir}/libGLESv1_CM.so \ + ${libdir}/libGLESv2.so ${libdir}/libGL.so \ +" + RRECOMMENDS_${PN} = "xserver-xorg-module-libwfb" RDEPENDS_${PN} = "xserver-xorg bash" @@ -61,10 +82,18 @@ do_patch () { do_install () { tar xjf ${WORKDIR}/Linux_for_Tegra/nv_tegra/nvidia_drivers.tbz2 -C ${D} mv ${D}/lib/firmware/tegra12x ${D}/lib/firmware/gk20a + mv ${D}/usr/lib/arm-linux-gnueabihf/tegra/lib* ${D}/usr/lib/ + mv ${D}/usr/lib/arm-linux-gnueabihf/tegra-egl/lib* ${D}/usr/lib/ + rm -rf ${D}/usr/lib/arm-linux-gnueabihf/tegra ${D}/usr/lib/arm-linux-gnueabihf/tegra-egl + rm -f ${D}/usr/lib/xorg/modules/extensions/libglx.so + rm -f ${D}/usr/lib/libglx.so + cp -r ${WORKDIR}/tegra_xusb_firmware ${D}/lib/firmware/ - ln -sf ./libcuda.so.1.1 ${D}/usr/lib/arm-linux-gnueabihf/tegra/libcuda.so - ln -sf ./arm-linux-gnueabihf/tegra/libcuda.so ${D}/usr/lib/libcuda.so - ln -sf ./arm-linux-gnueabihf/tegra/libGL.so.1 ${D}/usr/lib/libGL.so + ln -sf ./libcuda.so.1.1 ${D}/usr/lib/libcuda.so + ln -sf ./libGL.so.1 ${D}/usr/lib/libGL.so + ln -sf ./libEGL.so.1 ${D}/usr/lib/libEGL.so + ln -sf ./libGLESv1_CM.so.1 ${D}/usr/lib/libGLESv1_CM.so + ln -sf ./libGLESv2.so.2 ${D}/usr/lib/libGLESv2.so cp ${WORKDIR}/l4tdrv/etc/asound* ${D}/etc/ cp -r ${WORKDIR}/l4tdrv/etc/udev ${D}/etc/ mkdir ${D}/etc/X11/ @@ -78,9 +107,6 @@ do_install () { install -d ${D}${sysconfdir}/nv touch ${D}${sysconfdir}/nv/nvfirstboot - rm ${D}/usr/lib/libGL.so - ln -sf libGL.so.1 ${D}/usr/lib/arm-linux-gnueabihf/tegra/libGL.so - cp ${WORKDIR}/xorg.conf ${D}/etc/X11/ install -d ${D}${systemd_unitdir}/system/ install -m 0755 ${WORKDIR}/nvfb.service ${D}${systemd_unitdir}/system @@ -101,13 +127,6 @@ do_install () { install -m 0755 ${NV_SAMPLE}/usr/lib/arm-linux-gnueabihf/gstreamer-1.0/libnvgstjpeg.so ${D}${libdir}/gstreamer-1.0 } -do_populate_sysroot () { - tar xjf ${WORKDIR}/Linux_for_Tegra/nv_tegra/nvidia_drivers.tbz2 -C ${WORKDIR}/sysroot-destdir/ - rm ${WORKDIR}/sysroot-destdir/usr/lib/xorg/modules/extensions/libglx.so - mkdir ${WORKDIR}/sysroot-destdir/sysroot-providers - touch ${WORKDIR}/sysroot-destdir/sysroot-providers/${PN} -} - # Function to add the relevant ABI dependency to drivers, which should be called# from a PACKAGEFUNC. python add_xorg_abi_depends() { mlprefix = d.getVar('MLPREFIX', True) or '' -- cgit v1.2.3