tegra-binaries: refactor into multiple recipes

This commit is contained in:
Matt Madison
2015-12-10 10:58:41 -08:00
parent 30bd4da991
commit 6be0762d49
9 changed files with 199 additions and 34 deletions

View File

@@ -18,8 +18,8 @@ KERNEL_IMAGETYPE = "Image"
KERNEL_DEVICETREE = "tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb"
MACHINE_FEATURES = "alsa bluetooth ext2 ext3 vfat usbhost pci wifi rtc"
MACHINE_ESSENTIAL_EXTRA_RDEPENDS = "tegra-binaries"
MACHINE_EXTRA_RRECOMMENDS += "kernel-devicetree tegra-binaries-brcm"
MACHINE_ESSENTIAL_EXTRA_RDEPENDS = "tegra-firmware"
MACHINE_EXTRA_RRECOMMENDS += "kernel-devicetree tegra-firmware-brcm udev-rules-tegra"
UBOOT_MACHINE = "p2371-2180_defconfig"

View File

@@ -0,0 +1,34 @@
require tegra-binaries-${PV}.inc
require tegra-shared-binaries.inc
COMPATIBLE_HOST = "(arm.*)"
do_configure() {
tar -C ${B} -x -f ${S}/nv_sample_apps/nvgstapps.tbz2
}
do_compile[noexec] = "1"
LIBROOT = "${B}/usr/lib/arm-linux-gnueabihf"
do_install() {
install -d ${D}${bindir}
install -m 0755 ${B}/usr/bin/nvgstcapture-1.0 ${D}${bindir}
install -m 0755 ${B}/usr/bin/nvgstplayer-1.0 ${D}${bindir}
install -d ${D}${libdir}/gstreamer-1.0
install -m 0644 ${LIBROOT}/libgstnvegl-1.0.so.0 ${D}${libdir}
install -m 0644 ${LIBROOT}/libsample_process.so ${D}${libdir}
for f in ${LIBROOT}/gstreamer-1.0/lib*; do
install -m 0644 $f ${D}${libdir}/gstreamer-1.0/
done
}
PACKAGES = "nvgstcapture nvgstplayer ${PN}"
FILES_nvgstcapture = "${bindir}/nvgstcapture-1.0"
RDEPENDS_nvcapture = "${PN}"
FILES_nvgstplayer = "${bindir}/nvgstplayer-1.0"
RDEPENDS_nvgstplayer = "${PN}"
INSANE_SKIP_${PN} = "dev-so"
RDEPENDS_${PN} = "gstreamer1.0 gstreamer1.0-plugins-good-jpeg"

View File

@@ -0,0 +1,13 @@
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://nv_tegra/LICENSE;md5=60ad17cc726658e8cf73578bea47b85f \
file://nv_tegra/LICENSE.brcm_patchram_plus;md5=38fb07f0dacf4830bc57f40a0fb7532e"
SRC_URI = "http://developer.download.nvidia.com/embedded/L4T/r23_Release_v1.0/Tegra210_Linux_R${PV}_armhf.tbz2"
SRC_URI[md5sum] = "4773c4aff47f464f0a6eb2a8342b05e7"
SRC_URI[sha256sum] = "aacb0b1e9571df43621a6fd32101f8f52f9387ecb84e96930fb5682a68676c15"
S = "${TMPDIR}/work-shared/tegra-binaries-${PV}-${PR}/Linux_for_Tegra"
B = "${WORKDIR}/build"
INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"

View File

@@ -1,38 +1,31 @@
SUMMARY = "NVIDIA firmware and drivers"
DESCRIPTION = "NVIDIA L4T proprietary binary-only firmware and drivers"
SUMMARY = "NVIDIA L4T binaries"
DESCRIPTION = "Downloads NVIDIA L4T binary-only packages for sharing with other recipes"
SECTION = "base"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://nv_tegra/LICENSE;md5=60ad17cc726658e8cf73578bea47b85f \
file://nv_tegra/LICENSE.brcm_patchram_plus;md5=38fb07f0dacf4830bc57f40a0fb7532e"
SRC_URI = "http://developer.download.nvidia.com/embedded/L4T/r23_Release_v1.0/Tegra210_Linux_R${PV}_armhf.tbz2"
SRC_URI[md5sum] = "4773c4aff47f464f0a6eb2a8342b05e7"
SRC_URI[sha256sum] = "aacb0b1e9571df43621a6fd32101f8f52f9387ecb84e96930fb5682a68676c15"
require tegra-binaries-${PV}.inc
COMPATIBLE_MACHINE = "(jetson-tx1)"
PACKAGE_ARCH = "${MACHINE_ARCH}"
WORKDIR = "${TMPDIR}/work-shared/tegra-binaries-${PV}-${PR}"
SSTATE_SWSPEC = "sstate::tegra-binaries::${PV}:${PR}::${SSTATE_VERSION}:"
STAMP = "${STAMPS_DIR}/work-shared/tegra-binaries-${PV}-${PR}"
STAMPCLEAN = "${STAMPS_DIR}/work-shared/tegra-binaries-${PV}-*"
B = "${WORKDIR}/build"
S = "${WORKDIR}/Linux_for_Tegra"
INHIBIT_DEFAULT_DEPS = "1"
DEPENDS = ""
PACKAGES = ""
do_configure() {
tar -C ${B} -x -f ${S}/nv_tegra/nvidia_drivers.tbz2 lib/firmware usr/sbin
deltask do_configure
deltask do_compile
deltask do_package
deltask do_package_write_rpm
deltask do_package_write_ipk
deltask do_package_write_deb
deltask do_install
deltask do_populate_sysroot
deltask do_package_qa
deltask do_packagedata
deltask do_rm_work
do_preconfigure() {
:
}
do_compile[noexec] = "1"
do_install() {
install -d ${D}/lib
cp -R -f ${B}/lib/firmware ${D}/lib/
install -d ${D}${sbindir}
install -m 0755 ${B}/usr/sbin/brcm_patchram_plus ${D}${sbindir}
}
PACKAGES = "${PN}-brcm ${PN}-brcm-patchram ${PN}"
FILES_${PN}-brcm = "/lib/firmware/brcm /lib/firmware/bcm4354.hcd"
FILES_${PN}-brcm-patchram = "${sbindir}/brcm_patchram_plus"
FILES_${PN} = "/lib/firmware/tegra21x*"
INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
INSANE_SKIP_${PN}-brcm-patchram = "arch"
addtask preconfigure after do_patch

View File

@@ -0,0 +1,18 @@
require tegra-binaries-${PV}.inc
require tegra-shared-binaries.inc
COMPATIBLE_HOST = "(arm.*)"
do_configure() {
tar -C ${B} -x -f ${S}/nv_tegra/nvidia_drivers.tbz2 usr/sbin
}
do_compile[noexec] = "1"
do_install() {
install -d ${D}${sbindir}
install -m 0755 ${B}/usr/sbin/brcm_patchram_plus ${D}${sbindir}
}
PACKAGES = "${PN}"
FILES_${PN}-brcm-patchram = "${sbindir}/brcm_patchram_plus"

View File

@@ -0,0 +1,20 @@
require tegra-binaries-${PV}.inc
require tegra-shared-binaries.inc
COMPATIBLE_MACHINE = "(jetson-tx1)"
PACKAGE_ARCH = "${MACHINE_ARCH}"
do_configure() {
tar -C ${B} -x -f ${S}/nv_tegra/nvidia_drivers.tbz2 lib/firmware
}
do_compile[noexec] = "1"
do_install() {
install -d ${D}/lib
cp -R -f ${B}/lib/firmware ${D}/lib/
}
PACKAGES = "${PN}-brcm ${PN}"
FILES_${PN}-brcm = "/lib/firmware/brcm /lib/firmware/bcm4354.hcd"
FILES_${PN} = "/lib/firmware/tegra21x*"

View File

@@ -0,0 +1,59 @@
require tegra-binaries-${PV}.inc
require tegra-shared-binaries.inc
COMPATIBLE_HOST = "(arm.*)"
do_configure() {
tar -C ${B} -x -f ${S}/nv_tegra/nvidia_drivers.tbz2 usr/lib
}
do_compile[noexec] = "1"
DRVROOT = "${B}/usr/lib/arm-linux-gnueabihf"
do_install() {
install -d ${D}${libdir}
for f in ${DRVROOT}/tegra/lib*; do
install -m 0644 $f ${D}${libdir}
done
for f in ${DRVROOT}/tegra-egl/lib*; do
install -m 0644 $f ${D}${libdir}
done
ln -sf libcuda.so.1.1 ${D}${libdir}/libcuda.so
ln -sf libGL.so.1 ${D}${libdir}/libGL.so
ln -sf libEGL.so.1 ${D}${libdir}/libEGL.so
ln -sf libGLESv1_CM.so.1 ${D}${libdir}/libGLESv1_CM.so
ln -sf libGLESv2.so.2 ${D}${libdir}/libGLESv2.so
}
python __anonymous() {
for p in (("libegl", "libegl1"), ("libgl", "libgl1"),
("libgles1", "libglesv1-cm1"), ("libgles2", "libglesv2-2")):
fullp = p[0] + "-tegra"
pkgs = " ".join(p)
d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1")
d.appendVar("RREPLACES_" + fullp, pkgs)
d.appendVar("RPROVIDES_" + fullp, pkgs)
d.appendVar("RCONFLICTS_" + fullp, pkgs)
# For -dev, the first element is both the Debian and original name
fullp += "-dev"
pkgs = p[0] + "-dev"
d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1")
d.appendVar("RREPLACES_" + fullp, pkgs)
d.appendVar("RPROVIDES_" + fullp, pkgs)
d.appendVar("RCONFLICTS_" + fullp, pkgs)
}
PACKAGES = "libegl-tegra libgl-tegra libgles1-tegra libgles2-tegra \
libegl-tegra-dev libgl-tegra-dev libgles1-tegra-dev libgles2-tegra-dev ${PN}"
FILES_libegl-tegra = "${libdir}/libEGL${SOLIBS}"
FILES_libegl-tegra-dev = "${libdir}/libEGL${SOLIBSDEV}"
FILES_libgl-tegra = "${libdir}/libGL${SOLIBS}"
FILES_libgl-tegra-dev = "${libdir}/libGL${SOLIBSDEV}"
FILES_libgles1-tegra = "${libdir}/libGLESv1*${SOLIBS}"
FILES_libgles1-tegra-dev = "${libdir}/libGLESv1*${SOLIBSDEV}"
FILES_libgles2-tegra = "${libdir}/libGLESv2*${SOLIBS}"
FILES_libgles2-tegra-dev = "${libdir}/libGLESv2*${SOLIBSDEV}"
INSANE_SKIP_${PN} = "dev-so"

View File

@@ -0,0 +1,10 @@
do_fetch() {
:
}
do_fetch[noexec] = "1"
deltask do_unpack
deltask do_patch
SRC_URI = ""
do_configure[depends] += "tegra-binaries:do_preconfigure"
do_populate_lic[depends] += "tegra-binaries:do_unpack"

View File

@@ -0,0 +1,18 @@
require tegra-binaries-${PV}.inc
require tegra-shared-binaries.inc
do_configure() {
tar -C ${B} -x -f ${S}/nv_tegra/config.tbz2
}
do_compile[noexec] = "1"
do_install() {
install -d ${D}/${sysconfdir}/udev/rules.d
install -m 0644 ${B}/etc/udev/rules.d/99-tegra-devices.rules ${D}${sysconfdir}/udev/rules.d
install -m 0644 ${B}/etc/udev/rules.d/99-tegra-mmc-ra.rules ${D}${sysconfdir}/udev/rules.d
}
PACKAGES = "${PN}"
FILES_${PN} = "${sysconfdir}"
RDEPENDS_${PN} = "udev"