From 8504e40c08354bf0732bf0d67637c7f52b814550 Mon Sep 17 00:00:00 2001 From: Marcel Ziswiler Date: Tue, 31 Oct 2017 00:10:26 +0100 Subject: linux-driver-package, linux-toradex_3.10.40, libgstomx-1.0: l4t r21.6 Update to NVIDIA's latest Linux for Tegra aka L4T R21.6: https://developer.nvidia.com/linux-tegra-r216 The following libraries got updated: c0067724f7ea174ac845bcf3262916f4cdc68fee */usr/lib/xorg/modules/extensions/libglx.so 7fdf08dac2661c78aa13d72caa205660435a0591 */usr/lib/xorg/modules/drivers/nvidia_drv.so 61fe4c3e02eee124a0b50e0d2f616701c3093da8 */usr/lib/arm-linux-gnueabihf/tegra/libnvomx.so c0067724f7ea174ac845bcf3262916f4cdc68fee */usr/lib/arm-linux-gnueabihf/tegra/libglx.so 06ff56f0001e07b9e5271e5d1c8ee78a0ddd299d */usr/lib/arm-linux-gnueabihf/tegra/libnvmmlite_video.so abdccb24f89f1f0e482524569f9b6364c1fff0a9 */usr/lib/arm-linux-gnueabihf/tegra/libnvodm_imager.so 3e9b93e4e3bf24980d025917d694e1f23147837f */usr/lib/arm-linux-gnueabihf/tegra/libnvmm_camera_v3.so 1ee7838597bd9a351b4e241ba947b55d8b4419db */usr/lib/arm-linux-gnueabihf/tegra/libnvparser.so Signed-off-by: Marcel Ziswiler Acked-by: Dominik Sliwa --- .../binary-drivers/linux-driver-package/nvfb | 25 ++++++ .../linux-driver-package/xorg.conf.add | 11 +++ .../binary-drivers/linux-driver-package_21.6.0.bb | 100 +++++++++++++++++++++ recipes-kernel/linux/linux-toradex_3.10.40.bb | 6 +- .../files/r21.6.0-sources-gstomx1_src.patch | 90 +++++++++++++++++++ .../libgstomx-1.0/libgstomx-1.0_21.5.0.bb | 42 --------- .../libgstomx-1.0/libgstomx-1.0_21.6.0.bb | 43 +++++++++ 7 files changed, 272 insertions(+), 45 deletions(-) create mode 100755 jetson-tk1/recipes-bsp/binary-drivers/linux-driver-package/nvfb create mode 100644 jetson-tk1/recipes-bsp/binary-drivers/linux-driver-package/xorg.conf.add create mode 100755 jetson-tk1/recipes-bsp/binary-drivers/linux-driver-package_21.6.0.bb create mode 100644 recipes-multimedia/libgstomx-1.0/files/r21.6.0-sources-gstomx1_src.patch delete mode 100644 recipes-multimedia/libgstomx-1.0/libgstomx-1.0_21.5.0.bb create mode 100644 recipes-multimedia/libgstomx-1.0/libgstomx-1.0_21.6.0.bb diff --git a/jetson-tk1/recipes-bsp/binary-drivers/linux-driver-package/nvfb b/jetson-tk1/recipes-bsp/binary-drivers/linux-driver-package/nvfb new file mode 100755 index 0000000..e5f4502 --- /dev/null +++ b/jetson-tk1/recipes-bsp/binary-drivers/linux-driver-package/nvfb @@ -0,0 +1,25 @@ +#!/bin/sh +#"specific first-boot script" + +nvexec() { + RET=0 + if [ ! -e /etc/nv/nvfirstboot ]; then + RET=0 + else + echo "/usr/lib/arm-linux-gnueabihf/tegra" >> /etc/ld.so.conf + echo "/usr/lib/arm-linux-gnueabihf/tegra-egl" >> /etc/ld.so.conf + + ldconfig + rm -rf /etc/nv/nvfirstboot + fi + exit $RET +} + +case "$1" in + start) + nvexec + exit 0 + ;; + *) + exit 1 +esac diff --git a/jetson-tk1/recipes-bsp/binary-drivers/linux-driver-package/xorg.conf.add b/jetson-tk1/recipes-bsp/binary-drivers/linux-driver-package/xorg.conf.add new file mode 100644 index 0000000..0abe390 --- /dev/null +++ b/jetson-tk1/recipes-bsp/binary-drivers/linux-driver-package/xorg.conf.add @@ -0,0 +1,11 @@ +Section "Monitor" + Identifier "DSI-1" + Option "DPMS" "false" +EndSection + +Section "ServerLayout" + Identifier "ServerLayout0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" +EndSection 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 new file mode 100755 index 0000000..3e8eba6 --- /dev/null +++ b/jetson-tk1/recipes-bsp/binary-drivers/linux-driver-package_21.6.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_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] = "3ed3be6df77fafe6ccf6d35844376a29" +SRC_URI[sha256sum] = "7550dc6fd9b9b293cde8b0ca38f91890adcc3d804492264fde813d076180cdc8" + +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/recipes-kernel/linux/linux-toradex_3.10.40.bb b/recipes-kernel/linux/linux-toradex_3.10.40.bb index a3cddaa..47ab2d6 100644 --- a/recipes-kernel/linux/linux-toradex_3.10.40.bb +++ b/recipes-kernel/linux/linux-toradex_3.10.40.bb @@ -13,13 +13,13 @@ LINUX_VERSION ?= "3.10.40" LOCALVERSION = "-${PR}" PR = "${TDX_VER_INT}" -SRCREV = "e9636255d1a151de8903e952f64ed779e832f613" +SRCREV = "22e0897658b3250d50dd7f37b80ff3e35c9518a2" SRCREV_use-head-next = "${AUTOREV}" PV = "${LINUX_VERSION}+gitr${SRCPV}" S = "${WORKDIR}/git" -SRCBRANCH = "toradex_tk1_l4t_r21.5" -SRCBRANCH_use-head-next = "toradex_tk1_l4t_r21.5-next" +SRCBRANCH = "toradex_tk1_l4t_r21.6" +SRCBRANCH_use-head-next = "toradex_tk1_l4t_r21.6-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.6.0-sources-gstomx1_src.patch b/recipes-multimedia/libgstomx-1.0/files/r21.6.0-sources-gstomx1_src.patch new file mode 100644 index 0000000..f74f278 --- /dev/null +++ b/recipes-multimedia/libgstomx-1.0/files/r21.6.0-sources-gstomx1_src.patch @@ -0,0 +1,90 @@ +diff -Naur r21.5.0-sources-gstomx1_src-gst-omx1/omx/gstomxh264enc.c r21.6.0-sources-gstomx1_src-gst-omx1/omx/gstomxh264enc.c +--- r21.5.0-sources-gstomx1_src-gst-omx1/omx/gstomxh264enc.c 2016-06-08 06:17:32.000000000 +0200 ++++ r21.6.0-sources-gstomx1_src-gst-omx1/omx/gstomxh264enc.c 2017-10-14 03:23:25.000000000 +0200 +@@ -48,13 +48,15 @@ + { + PROP_0, + PROP_INSERT_SPS_PPS, +- PROP_NO_BFRAMES, ++ PROP_NUM_BFRAMES, + PROP_SLICE_HEADER_SPACING, + PROP_PROFILE + }; + + #define DEFAULT_SLICE_HEADER_SPACING 0 + #define DEFAULT_PROFILE OMX_VIDEO_AVCProfileBaseline ++#define DEFAULT_NUM_B_FRAMES 0 ++#define MAX_NUM_B_FRAMES 2 + + + #define GST_TYPE_OMX_VID_ENC_PROFILE (gst_omx_videnc_profile_get_type ()) +@@ -132,11 +134,12 @@ + "Insert H.264 SPS, PPS at every IDR frame", + FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + +- g_object_class_install_property (gobject_class, PROP_NO_BFRAMES, +- g_param_spec_boolean ("no-B-Frames", +- "Do not encode B Frames", +- "Do not use B Frames while encoding", +- FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | ++ g_object_class_install_property (gobject_class, PROP_NUM_BFRAMES, ++ g_param_spec_uint ("num-B-Frames", ++ "B Frames between two reference frames", ++ "Number of B Frames between two reference frames (not recommended)", ++ 0, MAX_NUM_B_FRAMES, DEFAULT_NUM_B_FRAMES, ++ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | + GST_PARAM_MUTABLE_READY)); + + g_object_class_install_property (gobject_class, PROP_PROFILE, +@@ -151,7 +154,7 @@ + gst_omx_h264_enc_init (GstOMXH264Enc * self) + { + self->insert_sps_pps = FALSE; +- self->no_BFrames = FALSE; ++ self->nBFrames = 0; + self->slice_header_spacing = DEFAULT_SLICE_HEADER_SPACING; + self->profile = DEFAULT_PROFILE; + } +@@ -679,8 +682,8 @@ + case PROP_INSERT_SPS_PPS: + self->insert_sps_pps = g_value_get_boolean (value); + break; +- case PROP_NO_BFRAMES: +- self->no_BFrames = g_value_get_boolean (value); ++ case PROP_NUM_BFRAMES: ++ self->nBFrames = g_value_get_uint (value); + break; + case PROP_SLICE_HEADER_SPACING: + self->slice_header_spacing = g_value_get_ulong (value); +@@ -704,8 +707,8 @@ + case PROP_INSERT_SPS_PPS: + g_value_set_boolean (value, self->insert_sps_pps); + break; +- case PROP_NO_BFRAMES: +- g_value_set_boolean (value, self->no_BFrames); ++ case PROP_NUM_BFRAMES: ++ g_value_set_uint (value, self->nBFrames); + break; + case PROP_SLICE_HEADER_SPACING: + g_value_set_ulong (value, self->slice_header_spacing); +@@ -734,7 +737,7 @@ + gst_omx_component_get_parameter (GST_OMX_VIDEO_ENC (self)->enc, + OMX_IndexParamVideoAvc, &oH264Type); + if (eError == OMX_ErrorNone) { +- oH264Type.nBFrames = self->no_BFrames; ++ oH264Type.nBFrames = self->nBFrames; + oH264Type.nSliceHeaderSpacing = self->slice_header_spacing; + oH264Type.eProfile = self->profile; + +diff -Naur r21.5.0-sources-gstomx1_src-gst-omx1/omx/gstomxh264enc.h r21.6.0-sources-gstomx1_src-gst-omx1/omx/gstomxh264enc.h +--- r21.5.0-sources-gstomx1_src-gst-omx1/omx/gstomxh264enc.h 2016-06-08 06:17:32.000000000 +0200 ++++ r21.6.0-sources-gstomx1_src-gst-omx1/omx/gstomxh264enc.h 2017-10-14 03:23:25.000000000 +0200 +@@ -56,7 +56,7 @@ + GstOMXVideoEnc parent; + h264_sf stream_format; + gboolean insert_sps_pps; +- gboolean no_BFrames; ++ gboolean nBFrames; + glong slice_header_spacing; + guint profile; + }; diff --git a/recipes-multimedia/libgstomx-1.0/libgstomx-1.0_21.5.0.bb b/recipes-multimedia/libgstomx-1.0/libgstomx-1.0_21.5.0.bb deleted file mode 100644 index ef7eac3..0000000 --- a/recipes-multimedia/libgstomx-1.0/libgstomx-1.0_21.5.0.bb +++ /dev/null @@ -1,42 +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://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.6.0.bb b/recipes-multimedia/libgstomx-1.0/libgstomx-1.0_21.6.0.bb new file mode 100644 index 0000000..41056f1 --- /dev/null +++ b/recipes-multimedia/libgstomx-1.0/libgstomx-1.0_21.6.0.bb @@ -0,0 +1,43 @@ +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 \ +" -- cgit v1.2.3