From fecccd7ebf62b8da88569d229b5c7bb3938aaa76 Mon Sep 17 00:00:00 2001 From: Marcel Ziswiler Date: Fri, 7 Apr 2017 13:51:54 +0200 Subject: tdx-nv-binaries: renamed from trdx-nv-binaries While at it also update the comment in recipes-graphics/mesa/mesa_%.bbappend. Signed-off-by: Marcel Ziswiler Acked-by: Dominik Sliwa --- recipes-bsp/tdx-nv-binaries/tdx-nv-binaries.bb | 187 +++++++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 recipes-bsp/tdx-nv-binaries/tdx-nv-binaries.bb (limited to 'recipes-bsp/tdx-nv-binaries/tdx-nv-binaries.bb') diff --git a/recipes-bsp/tdx-nv-binaries/tdx-nv-binaries.bb b/recipes-bsp/tdx-nv-binaries/tdx-nv-binaries.bb new file mode 100644 index 0000000..cd5f668 --- /dev/null +++ b/recipes-bsp/tdx-nv-binaries/tdx-nv-binaries.bb @@ -0,0 +1,187 @@ +SUMMARY = "binary files from Nvidia along with their configuration" +LICENSE = "CLOSED & SGI & Khronos" +PR = "r19" + +PACKAGE_ARCH = "${MACHINE_ARCH}" +COMPATIBLE_MACHINE = "(tegra)" + +PROVIDES += "virtual/egl virtual/libgles1 virtual/libgles2" + +# the khronos headers are taken from here: https://www.khronos.org/registry/khronos_headers.tgz +# this tarball changes from time to time breaking the receipe, thus it is provided with the recipe +SRC_COMMON = " \ + file://aplay.desktop \ + file://egl.pc \ + file://eglplatform.h \ + file://gles.pc \ + file://glesv2.pc \ + file://khronos_headers.tgz \ + file://mimeapps.list \ + file://nvgstplayer.desktop \ + https://www.khronos.org/registry/omxil/api/1.1.2/OpenMAX_IL_1_1_2_Header.zip;name=openmax-h;unpack=no \ +" + +SRC_URI_tegra2 = " \ + http://developer.download.nvidia.com/mobile/tegra/l4t/r16.5.0/ventana_release_armhf/Tegra20_Linux-codecs_R16.5_armhf.tbz2;name=t20codecs \ + http://developer.download.nvidia.com/mobile/tegra/l4t/r16.5.0/ventana_release_armhf/Tegra20_Linux_R16.5_armhf.tbz2;name=t20drivers \ + ${SRC_COMMON} \ +" + +SRC_URI_tegra3 = " \ + http://developer.download.nvidia.com/mobile/tegra/l4t/r16.5.0/cardhu_release_armhf/Tegra30_Linux-codecs_R16.5_armhf.tbz2;name=t30codecs \ + http://developer.download.nvidia.com/mobile/tegra/l4t/r16.5.0/cardhu_release_armhf/Tegra30_Linux_R16.5_armhf.tbz2;name=t30drivers \ + http://developer.toradex.com/files/toradex-dev/uploads/media/Colibri/Linux/Extra/libgstomx.so;name=libgstomx \ + ${SRC_COMMON} \ +" + +SRC_URI[openmax-h.md5sum] = "402a7600397c341895cfecbbe1f4e028" +SRC_URI[openmax-h.sha256sum] = "e7159c88185df60a0dbb28583815067c31285a1f1d4652f6752a7329ccb534d1" + +SRC_URI[t20codecs.md5sum] = "03da7451b755094c61dade6250f1ad0a" +SRC_URI[t20codecs.sha256sum] = "0c5fe818d5e0bdc83c24b7cb0db4f87705244258bfe1925d0a0a0698e3bf712b" +SRC_URI[t20drivers.md5sum] = "5252b747668c14376b3f82d08debad2c" +SRC_URI[t20drivers.sha256sum] = "02b7a83b29cec59cf275b98f0de0fc87a24ffa25593af6af729cd2e881c41587" + +SRC_URI[t30codecs.md5sum] = "03a0b726f18a26ed379c62b83119e497" +SRC_URI[t30codecs.sha256sum] = "640df86c47d0dd6cbfc15eff49ee146a964c2a0362fe52ee6880c84e08b7a98b" +SRC_URI[t30drivers.md5sum] = "8759be1c7b93511cf70939df28b8af51" +SRC_URI[t30drivers.sha256sum] = "2288ad9ce30239975208cbd5fd896791c9d37d87ca8d30b51f04bacc74835427" +SRC_URI[libgstomx.md5sum] = "faa6ee38fb1b7aba7c6c7f98f6b2cedd" +SRC_URI[libgstomx.sha256sum] = "844c2f3ecb8498a9b287c2b2bc6184de75c2cf7d76f64f0a7749e76e1a37a1dc" + + +# xserver-xorg driver ABI version to be used by the symlink, must match the required ABI version from the used xserver +XSERVER_DRIVER_ABI_REQUIRED = "14" + +LIC_FILES_CHKSUM = " \ + file://../khronos_headers/GLES2/gl2.h;beginline=8;endline=29;md5=c0e8cc16602f8077310fb00bbf128ef6 \ + file://${WORKDIR}/Linux_for_Tegra/nv_tegra/LICENSE;md5=d88b0db2ba7f6dfe70852c64b2fce6ce \ + file://${WORKDIR}/Tegra_Software_License_Agreement-Tegra-Linux-codecs.txt;md5=47cc79e762df48980a032c610cfc172f \ + file://${WORKDIR}/Linux_for_Tegra/nv_tegra/nv_sample_apps/LICENSE.gst-openmax;md5=a7d467726825e72551082b781a94d09d \ +" + +PACKAGES = "${PN}-dbg ${PN}-restricted-codecs ${PN}-nv-gstapps ${PN} ${PN}-dev" + +FILES_${PN}-dbg += " \ + /usr/lib/gstreamer-0.10/.debug \ +" +FILES_${PN} += " \ + ${sysconfdir}/X11/def* \ + ${sysconfdir}/X11/xorg.conf.* \ + ${sysconfdir}/init/* \ + ${sysconfdir}/udev/rules.d/* \ + ${sysconfdir}/init/nv* \ + ${sysconfdir}/init/wpa* \ + /lib/firmware/* \ + /usr/lib/lib* \ + /usr/lib/xorg/* \ + /usr/lib/gstreamer*/* \ + /home/root/.local/share/applications/* \ +" +FILES_${PN}-restricted-codecs += " \ + /lib/firmware/*.axf \ +" +FILES_${PN}-nv-gstapps += " \ + /usr/bin/* \ + /usr/share/doc/nv_gstapps/* \ +" + +#no gnu_hash in NVIDIA binaries, skip QA dev-so for this package +#we have symlinks ending in .so, skip QA ldflags for this package +#inhibit warnings about files being stripped +INSANE_SKIP_${PN} = "build-deps dev-so ldflags already-stripped textrel" +INSANE_SKIP_${PN}-nv-gstapps = "build-deps dev-so ldflags already-stripped textrel file-rdeps" + +do_patch () { + mkdir -p OpenMAX/il + unzip -o -d OpenMAX/il OpenMAX_IL_1_1_2_Header.zip +} + +do_compile () { + #unpack the different packages + #nvidia drivers + mkdir nvidia_drivers + tar -C nvidia_drivers -xjf ${WORKDIR}/Linux_for_Tegra/nv_tegra/nvidia_drivers.tbz2 + tar -C nvidia_drivers -xjf ${WORKDIR}/Linux_for_Tegra/nv_tegra/config.tbz2 + + #nvidia sample gstreamer apps + mkdir -p nvgstapps/usr/share/doc/nv_gstapps + tar -C nvgstapps -xjf ${WORKDIR}/Linux_for_Tegra/nv_tegra/nv_sample_apps/nvgstapps.tbz2 + cp ${WORKDIR}/Linux_for_Tegra/nv_tegra/nv_sample_apps/nv*.txt nvgstapps/usr/share/doc/nv_gstapps/ + + #restricted codecs + mkdir restricted_codecs + tar -C restricted_codecs -xjf ${WORKDIR}/restricted_codecs.tbz2 +} + +do_install () { + #nvidia_driver + install -d ${D}/usr/lib/xorg/modules/drivers ${D}/home/root/.local/share/applications/ + install -d ${D}/lib/firmware/ + install -d ${D}/${sysconfdir}/X11 ${D}/${sysconfdir}/init ${D}/${sysconfdir}/udev/rules.d + install -m 0644 nvidia_drivers/${sysconfdir}/X11/xorg.conf ${D}/${sysconfdir}/X11/xorg.conf.nvidia + install -m 0755 nvidia_drivers/${sysconfdir}/init/* ${D}/${sysconfdir}/init/ + install -m 0644 nvidia_drivers/${sysconfdir}/udev/rules.d/* ${D}/${sysconfdir}/udev/rules.d/ + install -m 0644 nvidia_drivers/${sysconfdir}/nv* ${D}/${sysconfdir}/ + install -m 0644 nvidia_drivers/${sysconfdir}/wpa_supplicant.conf ${D}/${sysconfdir}/wpa_supplicant.conf.nvidia + install -m 0644 nvidia_drivers/lib/firmware/* ${D}/lib/firmware/ + install -m 0644 nvidia_drivers/usr/lib/*.so ${D}/usr/lib/ + install -m 0644 nvidia_drivers/usr/lib/*.so.? ${D}/usr/lib/ + rm ${D}/usr/lib/libjpeg.so + install -m 0644 nvidia_drivers/usr/lib/xorg/modules/drivers/* ${D}/usr/lib/xorg/modules/drivers/ + ln -s tegra_drv.abi${XSERVER_DRIVER_ABI_REQUIRED}.so ${D}/usr/lib/xorg/modules/drivers/tegra_drv.so + # create symlink to the shared libs for development, *.so -> *.so.x + export LIBNAME=`ls ${D}/usr/lib/libGLESv2.so.?` + export LIBNAME=`basename $LIBNAME` + ln -s $LIBNAME ${D}/usr/lib/libGLESv2.so + export LIBNAME=`ls ${D}/usr/lib/libEGL.so.?` + export LIBNAME=`basename $LIBNAME` + ln -s $LIBNAME ${D}/usr/lib/libEGL.so + export LIBNAME=`ls ${D}/usr/lib/libGLESv1_CM.so.?` + export LIBNAME=`basename $LIBNAME` + ln -s $LIBNAME ${D}/usr/lib/libGLESv1_CM.so + + #nvidia sample gstreamer apps + install -d ${D}/usr/bin ${D}/usr/lib/gstreamer-0.10 ${D}/usr/share/doc/nv_gstapps + install -d ${D}/usr/lib/xorg/modules/drivers ${D}/home/root/.local/share/applications/ + install -m 0755 nvgstapps/usr/bin/* ${D}/usr/bin/ + install -m 0644 nvgstapps/usr/lib/gstreamer-0.10/*.so ${D}/usr/lib/gstreamer-0.10/ + install -m 0644 nvgstapps/usr/share/doc/nv_gstapps/* ${D}/usr/share/doc/nv_gstapps/ + install -m 0644 ${WORKDIR}/*.desktop ${D}/home/root/.local/share/applications/ + install -m 0644 ${WORKDIR}/mimeapps.list ${D}//home/root/.local/share/applications/ + ln -s libpcre.so.1 ${D}/usr/lib/libpcre.so.3 + ln -s libpcreposix.so.0 ${D}/usr/lib/libpcreposix.so.3 + + #nvidia restricted codecs + install -d ${D}/lib/firmware/ + install -m 0644 restricted_codecs/lib/firmware/* ${D}/lib/firmware/ + + #khronos headers for EGL/GLES/GLES2/OpenMax + for dir in EGL GLES GLES2 KD KHR + do + install -d ${D}${includedir}/$dir + install -m 0644 ${WORKDIR}/khronos_headers/$dir/* ${D}${includedir}/$dir + done + + #Override eglplatform.h that khronos provide. + install -m 0644 ${WORKDIR}/eglplatform.h ${D}${includedir}/EGL/ + + dir="OpenMAX/il" + install -d ${D}${includedir}/$dir + install -m 0644 ${WORKDIR}/$dir/* ${D}${includedir}/$dir + + install -d ${D}/usr/lib/pkgconfig + install -m 0644 ${WORKDIR}/*.pc ${D}/usr/lib/pkgconfig/ +} + +do_install_append_tegra3 () { + #OpenMAX-IL implementation library, evaluation version with fix to validate input frame rate + install -m 0644 ${WORKDIR}/libgstomx.so ${D}/usr/lib/gstreamer-0.10/ +} + +# Add the ABI dependency at package generation time, as otherwise bitbake will +# attempt to find a provider for it (and fail) when it does the parse. +python populate_packages_prepend() { + pn = d.getVar("PN", True) + d.appendVar("RDEPENDS_" + pn, " xorg-abi-video-${XSERVER_DRIVER_ABI_REQUIRED}") +} -- cgit v1.2.3