summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Ziswiler <marcel.ziswiler@toradex.com>2017-10-31 00:10:26 +0100
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2017-11-29 17:47:20 +0100
commit8504e40c08354bf0732bf0d67637c7f52b814550 (patch)
tree0f37a3913681de1122fa0cd2c55df85ca6dace4a
parented893d8d7943b25b941a0baf2a0890a584baff15 (diff)
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 <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
-rwxr-xr-xjetson-tk1/recipes-bsp/binary-drivers/linux-driver-package/nvfb25
-rw-r--r--jetson-tk1/recipes-bsp/binary-drivers/linux-driver-package/xorg.conf.add11
-rwxr-xr-xjetson-tk1/recipes-bsp/binary-drivers/linux-driver-package_21.6.0.bb100
-rw-r--r--recipes-kernel/linux/linux-toradex_3.10.40.bb6
-rw-r--r--recipes-multimedia/libgstomx-1.0/files/r21.6.0-sources-gstomx1_src.patch90
-rw-r--r--recipes-multimedia/libgstomx-1.0/libgstomx-1.0_21.6.0.bb (renamed from recipes-multimedia/libgstomx-1.0/libgstomx-1.0_21.5.0.bb)1
6 files changed, 230 insertions, 3 deletions
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.6.0.bb
index ef7eac3..41056f1 100644
--- a/recipes-multimedia/libgstomx-1.0/libgstomx-1.0_21.5.0.bb
+++ b/recipes-multimedia/libgstomx-1.0/libgstomx-1.0_21.6.0.bb
@@ -5,6 +5,7 @@ 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 \
"