From 31428bdf2867bbffaf6e810c05cebffb536b90a6 Mon Sep 17 00:00:00 2001 From: Marcel Ziswiler Date: Fri, 8 Jun 2018 15:08:42 +0200 Subject: linux-driver-package, linux-toradex_3.10.40, libgstomx-1.0: l4t r21.7 Update to NVIDIA's latest Linux for Tegra aka L4T R21.7: https://developer.nvidia.com/linux-tegra-r217 The following libraries got updated: 4094b811241593224a89a5020e0bef7a08914dea */usr/lib/arm-linux-gnueabihf/tegra/libglx.so 157e8271ba925d1dc7405c4ebaad1b8b8b3f1312 */usr/lib/xorg/modules/drivers/nvidia_drv.so c1d9de2b619110534437850335c06408648e263b */usr/lib/arm-linux-gnueabihf/tegra/libnvodm_imager.so 2a712cc736f0cfc694e1ae44603bb1c95fc0873e */usr/lib/arm-linux-gnueabihf/tegra/libnvmmlite_video.so 25514ded098387ac0260586392308144d6e659fa */usr/lib/arm-linux-gnueabihf/tegra/libnvmm_camera_v3.so 4c2528fa906e1ff8702a9e1cad2b63d261bd2c16 */usr/lib/arm-linux-gnueabihf/tegra/libnvodm_query.so 28ace2c204408e58444497f7fc32a7f6852f98a9 */usr/lib/arm-linux-gnueabihf/tegra/libnvomx.so 4094b811241593224a89a5020e0bef7a08914dea */usr/lib/xorg/modules/extensions/libglx.so Signed-off-by: Marcel Ziswiler Acked-by: Stefan Agner --- .../binary-drivers/linux-driver-package_21.6.0.bb | 100 --------------------- .../binary-drivers/linux-driver-package_21.7.0.bb | 100 +++++++++++++++++++++ recipes-kernel/linux/linux-toradex_3.10.40.bb | 4 +- .../files/r21.7.0-sources-gstomx1_src.patch | 71 +++++++++++++++ .../libgstomx-1.0/libgstomx-1.0_21.6.0.bb | 43 --------- .../libgstomx-1.0/libgstomx-1.0_21.7.0.bb | 44 +++++++++ 6 files changed, 217 insertions(+), 145 deletions(-) delete mode 100755 jetson-tk1/recipes-bsp/binary-drivers/linux-driver-package_21.6.0.bb create mode 100755 jetson-tk1/recipes-bsp/binary-drivers/linux-driver-package_21.7.0.bb create mode 100644 recipes-multimedia/libgstomx-1.0/files/r21.7.0-sources-gstomx1_src.patch delete mode 100644 recipes-multimedia/libgstomx-1.0/libgstomx-1.0_21.6.0.bb create mode 100644 recipes-multimedia/libgstomx-1.0/libgstomx-1.0_21.7.0.bb diff --git a/jetson-tk1/recipes-bsp/binary-drivers/linux-driver-package_21.6.0.bb b/jetson-tk1/recipes-bsp/binary-drivers/linux-driver-package_21.6.0.bb deleted file mode 100755 index b04b53b..0000000 --- a/jetson-tk1/recipes-bsp/binary-drivers/linux-driver-package_21.6.0.bb +++ /dev/null @@ -1,100 +0,0 @@ -DESCRIPTION = "NVIDIA Linux Driver Packages" -HOMEPAGE = "https://developer.nvidia.com/" -LICENSE = "Proprietary" - -SRC_URI = "http://developer.download.nvidia.com/embedded/L4T/r21_Release_v6.0/Tegra124_Linux_R21.6.0_armhf.tbz2 \ - file://xorg.conf.add \ - file://nv \ - file://nvfb \ - " - -LIC_FILES_CHKSUM = "file://nv_tegra/LICENSE;md5=60ad17cc726658e8cf73578bea47b85f" - -SRC_URI[md5sum] = "e82193b117171243ea21c908fbd347ed" -SRC_URI[sha256sum] = "b9dfbdd0d21d6454e5e9668673a3494e7567698764673938d4c1ef83f42ee72d" - -PR = "r6" - -inherit update-rc.d - -INITSCRIPT_PACKAGES = "${PN}-boot ${PN}-firstboot" - -INITSCRIPT_NAME_${PN}-boot = "nv" -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" - -INSANE_SKIP_${PN} = "ldflags" - -PACKAGE_ARCH = "${MACHINE_ARCH}" - -S = "${WORKDIR}/Linux_for_Tegra" - - -PACKAGES =+ "${PN}-firmware ${PN}-boot ${PN}-firstboot" - -INSANE_SKIP_${PN}-dev = "ldflags" - -FILES_${PN} = "${bindir}/* ${libdir}/* ${sysconfdir}/* ${sysconfdir}/*/*" -RRECOMMENDS_${PN} = "xserver-xorg-module-libwfb" -RDEPENDS_${PN} = "xserver-xorg bash" - -FILES_${PN}-firmware = "${base_libdir}/firmware/* ${base_libdir}/firmware/tegra12x/* " - -INHIBIT_PACKAGE_STRIP = "1" -#INHIBIT_PACKAGE_DEBUG_SPLIT = "1" - -INSANE_SKIP_${PN} += "dev-so" - -do_patch () { - mkdir -p ${WORKDIR}/l4tdrv - tar xjf ${WORKDIR}/Linux_for_Tegra/nv_tegra/config.tbz2 -C ${WORKDIR}/l4tdrv -} - -do_install () { - tar xjf ${WORKDIR}/Linux_for_Tegra/nv_tegra/nvidia_drivers.tbz2 -C ${D} - 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 - cp ${WORKDIR}/l4tdrv/etc/asound* ${D}/etc/ - cp -r ${WORKDIR}/l4tdrv/etc/udev ${D}/etc/ - mkdir ${D}/etc/X11/ - cp ${WORKDIR}/l4tdrv/etc/X11/xorg.conf* ${D}/etc/X11/ - cat ${WORKDIR}/l4tdrv/etc/X11/xorg.conf.jetson-tk1 ${WORKDIR}/xorg.conf.add > ${D}/etc/X11/xorg.conf.jetson-tk1 - - # install init scripts - install -d ${D}${sysconfdir}/init.d/ - install -m 0755 ${WORKDIR}/nv ${D}${sysconfdir}/init.d/nv - install -m 0755 ${WORKDIR}/nvfb ${D}${sysconfdir}/init.d/nvfb - install -d ${D}${sysconfdir}/nv - touch ${D}${sysconfdir}/nv/nvfirstboot -} - -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 '' - abi = "%sxorg-abi-%s-%s" % (mlprefix, "video", "19") - - pn = d.getVar("PN", True) - d.appendVar('RDEPENDS_' + pn, ' ' + abi) -} -PACKAGEFUNCS =+ "add_xorg_abi_depends" - -FILES_${PN}-boot = " \ - ${sysconfdir}/init.d/nv \ -" - -FILES_${PN}-firstboot = "\ - ${sysconfdir}/init.d/nvfb \ - ${sysconfdir}/nv/nvfirstboot \ -" diff --git a/jetson-tk1/recipes-bsp/binary-drivers/linux-driver-package_21.7.0.bb b/jetson-tk1/recipes-bsp/binary-drivers/linux-driver-package_21.7.0.bb new file mode 100755 index 0000000..847d6b0 --- /dev/null +++ b/jetson-tk1/recipes-bsp/binary-drivers/linux-driver-package_21.7.0.bb @@ -0,0 +1,100 @@ +DESCRIPTION = "NVIDIA Linux Driver Packages" +HOMEPAGE = "https://developer.nvidia.com/" +LICENSE = "Proprietary" + +SRC_URI = "http://developer.download.nvidia.com/embedded/L4T/r21_Release_v7.0/Tegra124_Linux_R21.7.0_armhf.tbz2 \ + file://xorg.conf.add \ + file://nv \ + file://nvfb \ + " + +LIC_FILES_CHKSUM = "file://nv_tegra/LICENSE;md5=60ad17cc726658e8cf73578bea47b85f" + +SRC_URI[md5sum] = "2139c0c7ecff94da68aef8a6ad0df20b" +SRC_URI[sha256sum] = "676add1e8e6b2fcf76d97f22f38c9d0cbbe8a92342039a85c8a4c87e8c1ce824" + +PR = "r7" + +inherit update-rc.d + +INITSCRIPT_PACKAGES = "${PN}-boot ${PN}-firstboot" + +INITSCRIPT_NAME_${PN}-boot = "nv" +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" + +INSANE_SKIP_${PN} = "ldflags" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +S = "${WORKDIR}/Linux_for_Tegra" + + +PACKAGES =+ "${PN}-firmware ${PN}-boot ${PN}-firstboot" + +INSANE_SKIP_${PN}-dev = "ldflags" + +FILES_${PN} = "${bindir}/* ${libdir}/* ${sysconfdir}/* ${sysconfdir}/*/*" +RRECOMMENDS_${PN} = "xserver-xorg-module-libwfb" +RDEPENDS_${PN} = "xserver-xorg bash" + +FILES_${PN}-firmware = "${base_libdir}/firmware/* ${base_libdir}/firmware/tegra12x/* " + +INHIBIT_PACKAGE_STRIP = "1" +#INHIBIT_PACKAGE_DEBUG_SPLIT = "1" + +INSANE_SKIP_${PN} += "dev-so" + +do_patch () { + mkdir -p ${WORKDIR}/l4tdrv + tar xjf ${WORKDIR}/Linux_for_Tegra/nv_tegra/config.tbz2 -C ${WORKDIR}/l4tdrv +} + +do_install () { + tar xjf ${WORKDIR}/Linux_for_Tegra/nv_tegra/nvidia_drivers.tbz2 -C ${D} + 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 + cp ${WORKDIR}/l4tdrv/etc/asound* ${D}/etc/ + cp -r ${WORKDIR}/l4tdrv/etc/udev ${D}/etc/ + mkdir ${D}/etc/X11/ + cp ${WORKDIR}/l4tdrv/etc/X11/xorg.conf* ${D}/etc/X11/ + cat ${WORKDIR}/l4tdrv/etc/X11/xorg.conf.jetson-tk1 ${WORKDIR}/xorg.conf.add > ${D}/etc/X11/xorg.conf.jetson-tk1 + + # install init scripts + install -d ${D}${sysconfdir}/init.d/ + install -m 0755 ${WORKDIR}/nv ${D}${sysconfdir}/init.d/nv + install -m 0755 ${WORKDIR}/nvfb ${D}${sysconfdir}/init.d/nvfb + install -d ${D}${sysconfdir}/nv + touch ${D}${sysconfdir}/nv/nvfirstboot +} + +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 '' + abi = "%sxorg-abi-%s-%s" % (mlprefix, "video", "19") + + pn = d.getVar("PN", True) + d.appendVar('RDEPENDS_' + pn, ' ' + abi) +} +PACKAGEFUNCS =+ "add_xorg_abi_depends" + +FILES_${PN}-boot = " \ + ${sysconfdir}/init.d/nv \ +" + +FILES_${PN}-firstboot = "\ + ${sysconfdir}/init.d/nvfb \ + ${sysconfdir}/nv/nvfirstboot \ +" diff --git a/recipes-kernel/linux/linux-toradex_3.10.40.bb b/recipes-kernel/linux/linux-toradex_3.10.40.bb index 1522617..a5d3e2b 100644 --- a/recipes-kernel/linux/linux-toradex_3.10.40.bb +++ b/recipes-kernel/linux/linux-toradex_3.10.40.bb @@ -17,8 +17,8 @@ SRCREV_use-head-next = "${AUTOREV}" PV = "${LINUX_VERSION}+gitr${SRCPV}" S = "${WORKDIR}/git" -SRCBRANCH = "toradex_tk1_l4t_r21.6" -SRCBRANCH_use-head-next = "toradex_tk1_l4t_r21.6-next" +SRCBRANCH = "toradex_tk1_l4t_r21.7" +SRCBRANCH_use-head-next = "toradex_tk1_l4t_r21.7-next" SRC_URI = "git://git.toradex.com/linux-toradex.git;protocol=git;branch=${SRCBRANCH}" COMPATIBLE_MACHINE = "apalis-tk1" diff --git a/recipes-multimedia/libgstomx-1.0/files/r21.7.0-sources-gstomx1_src.patch b/recipes-multimedia/libgstomx-1.0/files/r21.7.0-sources-gstomx1_src.patch new file mode 100644 index 0000000..aa4c6d5 --- /dev/null +++ b/recipes-multimedia/libgstomx-1.0/files/r21.7.0-sources-gstomx1_src.patch @@ -0,0 +1,71 @@ +diff -Naur r21.6.0-sources-gstomx1_src-gst-omx1/omx/gstomxvideosink.c r21.7.0-sources-gstomx1_src-gst-omx1/omx/gstomxvideosink.c +--- r21.6.0-sources-gstomx1_src-gst-omx1/omx/gstomxvideosink.c 2017-10-14 03:23:25.000000000 +0200 ++++ r21.7.0-sources-gstomx1_src-gst-omx1/omx/gstomxvideosink.c 2018-05-29 22:13:29.000000000 +0200 +@@ -942,6 +942,32 @@ + return TRUE; + } + ++static OMX_ERRORTYPE ++gst_omx_set_stride_alignment (GstOmxVideoSink * self, ++ guint32 align) ++{ ++ OMX_INDEXTYPE eIndex; ++ OMX_ERRORTYPE eError; ++ ++ eError = gst_omx_component_get_index (self->sink, ++ (char *) NVX_INDEX_CONFIG_VIDEOSTRIDEALIGN, ++ &eIndex); ++ ++ if (eError == OMX_ErrorNone) { ++ NVX_CONFIG_VIDEO_STRIDEALIGN oStride; ++ ++ GST_OMX_INIT_STRUCT (&oStride); ++ ++ eError = gst_omx_component_get_config (self->sink, eIndex, &oStride); ++ ++ if (eError == OMX_ErrorNone) { ++ oStride.nAlign = (unsigned long) align; ++ eError = gst_omx_component_set_config (self->sink, eIndex, &oStride); ++ } ++ } ++ return eError; ++} ++ + static void + gst_omx_video_sink_check_nvfeatures (GstOmxVideoSink * self, GstCaps * caps) + { +@@ -950,6 +976,13 @@ + if (gst_caps_features_contains (feature, "memory:NVMM")) { + self->hw_path = TRUE; + } ++ ++ if (!self->hw_path) { ++ if (gst_omx_set_stride_alignment (self, 4) ++ != OMX_ErrorNone) { ++ g_warning ("Failed to set stride alignment.\n"); ++ } ++ } + } + + static OMX_ERRORTYPE +@@ -1087,6 +1120,20 @@ + min = MAX (port_def.nBufferCountMin, 4); + port_def.nBufferCountActual = min; + ++ switch (info.finfo->format) { ++ case GST_VIDEO_FORMAT_I420: ++ port_def.format.video.eColorFormat = OMX_COLOR_FormatYUV420Planar; ++ break; ++ case GST_VIDEO_FORMAT_NV12: ++ port_def.format.video.eColorFormat = OMX_COLOR_FormatYUV420SemiPlanar; ++ break; ++ default: ++ GST_ERROR_OBJECT (self, "Unsupported format %s", ++ gst_video_format_to_string (info.finfo->format)); ++ return FALSE; ++ break; ++ } ++ + GST_DEBUG_OBJECT (self, "Setting inport port definition"); + + if (gst_omx_port_update_port_definition (self->sink_in_port, diff --git a/recipes-multimedia/libgstomx-1.0/libgstomx-1.0_21.6.0.bb b/recipes-multimedia/libgstomx-1.0/libgstomx-1.0_21.6.0.bb deleted file mode 100644 index 41056f1..0000000 --- a/recipes-multimedia/libgstomx-1.0/libgstomx-1.0_21.6.0.bb +++ /dev/null @@ -1,43 +0,0 @@ -DESCRIPTION = "NVIDIA Linux Driver Packages" -HOMEPAGE = "https://developer.nvidia.com/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -SRC_URI = " \ - http://developer.download.nvidia.com/embedded/L4T/r21_Release_v5.0/source/gstomx1_src.tbz2 \ - file://r21.6.0-sources-gstomx1_src.patch \ - file://gstomx-1.0.patch \ -" - -SRC_URI[md5sum] = "d5714a9533b210b30ef0e97e28ebc77d" -SRC_URI[sha256sum] = "b1c62a41467f2ff6661a3ba7d0e30e85e7ed126005f67b39ff6ebf2d704fd222" - -DEPENDS += " libgstnvegl libffi glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base libpcre libxml2 zlib " -DEPENDS += " virtual/egl virtual/mesa virtual/libgles2 wayland gdbm drm " - -S = "${WORKDIR}/gstomx1_src/gst-omx1" - -inherit autotools pkgconfig - -EXTRA_OECONF = " --with-omx-target=tegra --disable-static-plugins" - -CXXFLAGS += " -I${S}/omx/openmax " -CFLAGS += " -I${S}/omx/openmax " - -do_configure_prepend() { - export NOCONFIGURE="true" - export GST_EGL_LIBS="-lgstnvegl-1.0 -lEGL -lX11 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0" - export GST_EGL_CFLAGS="-I${STAGING_INCDIR}/libdrm " -# export GST_EGL_CFLAGS="-pthread -I${STAGING_INCDIR}/gstreamer-1.0 -I${STAGING_INCDIR}/libdrm -I${STAGING_INCDIR}/glib-2.0 -I${STAGING_LIBDIR}/glib-2.0/include" -} - -FILES_${PN}-dbg = " \ - /usr/src/debug/* \ - /usr/lib/gstreamer-1.0/.debug/* \ - /usr/lib/.debug/* \ -" - -FILES_${PN} = " \ - /usr/lib/gstreamer-1.0/libgstomx.la \ - /usr/lib/gstreamer-1.0/libgstomx.so \ -" diff --git a/recipes-multimedia/libgstomx-1.0/libgstomx-1.0_21.7.0.bb b/recipes-multimedia/libgstomx-1.0/libgstomx-1.0_21.7.0.bb new file mode 100644 index 0000000..0e57dd4 --- /dev/null +++ b/recipes-multimedia/libgstomx-1.0/libgstomx-1.0_21.7.0.bb @@ -0,0 +1,44 @@ +DESCRIPTION = "NVIDIA Linux Driver Packages" +HOMEPAGE = "https://developer.nvidia.com/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = " \ + http://developer.download.nvidia.com/embedded/L4T/r21_Release_v5.0/source/gstomx1_src.tbz2 \ + file://r21.6.0-sources-gstomx1_src.patch \ + file://r21.7.0-sources-gstomx1_src.patch \ + file://gstomx-1.0.patch \ +" + +SRC_URI[md5sum] = "d5714a9533b210b30ef0e97e28ebc77d" +SRC_URI[sha256sum] = "b1c62a41467f2ff6661a3ba7d0e30e85e7ed126005f67b39ff6ebf2d704fd222" + +DEPENDS += " libgstnvegl libffi glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base libpcre libxml2 zlib " +DEPENDS += " virtual/egl virtual/mesa virtual/libgles2 wayland gdbm drm " + +S = "${WORKDIR}/gstomx1_src/gst-omx1" + +inherit autotools pkgconfig + +EXTRA_OECONF = " --with-omx-target=tegra --disable-static-plugins" + +CXXFLAGS += " -I${S}/omx/openmax " +CFLAGS += " -I${S}/omx/openmax " + +do_configure_prepend() { + export NOCONFIGURE="true" + export GST_EGL_LIBS="-lgstnvegl-1.0 -lEGL -lX11 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0" + export GST_EGL_CFLAGS="-I${STAGING_INCDIR}/libdrm " +# export GST_EGL_CFLAGS="-pthread -I${STAGING_INCDIR}/gstreamer-1.0 -I${STAGING_INCDIR}/libdrm -I${STAGING_INCDIR}/glib-2.0 -I${STAGING_LIBDIR}/glib-2.0/include" +} + +FILES_${PN}-dbg = " \ + /usr/src/debug/* \ + /usr/lib/gstreamer-1.0/.debug/* \ + /usr/lib/.debug/* \ +" + +FILES_${PN} = " \ + /usr/lib/gstreamer-1.0/libgstomx.la \ + /usr/lib/gstreamer-1.0/libgstomx.so \ +" -- cgit v1.2.3