From fe2d5df6697afde151dde68f51bb294102465a02 Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Mon, 4 Jul 2016 16:19:00 +0200 Subject: [PATCH 1/2] add nvidia_current-367.27-0 fixed bee script to match modules distributed by nvidia package: libvdpau.so and libvdpau_trace.so are no longer in the package. the new library libnvidia-fatbinaryloader.so is required by libcuda. libcuda has a dependency on libnvidia-fatbinaryloader.so.367.27 so we need a symlink with the full package version in /usr/lib --- nvidia_current-367.27-0.bee | 115 ++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100755 nvidia_current-367.27-0.bee diff --git a/nvidia_current-367.27-0.bee b/nvidia_current-367.27-0.bee new file mode 100755 index 000000000..63e70b4e2 --- /dev/null +++ b/nvidia_current-367.27-0.bee @@ -0,0 +1,115 @@ +#!/bin/env beesh + +# resources: +# http://www.nvidia.com/object/unix.html +# ./README.txt +# ./.manifest +# https://github.com/NVIDIA/nvidia-installer +# ./nvidia-installer -A +# ./nvidia-installer --ui=none --accept-license --no-kernel-module --expert +# + +NVIDIA_ARCHIVE="NVIDIA-Linux-x86_64-${PKGVERSION}${PKGEXTRAVERSION:+-${PKGEXTRAVERSION}}.run" + +SRCURL[0]="ftp://download.nvidia.com/XFree86/Linux-x86_64/${PKGVERSION}/${NVIDIA_ARCHIVE}" + +BEE_CONFIGURE=none + +build_in_sourcedir + +PREFIX=/usr/share/nvidia/${PKGVERSION} +LIBDIR=${PREFIX}/lib +BINDIR=${PREFIX}/bin + +mee_extract() { + rmdir ${S} + sh ${F}/${NVIDIA_ARCHIVE} -x --target ${S} +} + +#mee_patch() { +# bee_patch +#} + +mee_build() { + #bee_build + true +} + +mee_install() { + #bee_install + + mkdir -pv ${D}${PREFIX}/{bin,lib,drivers,share} + + NVLIBS=( + "libGL.so.${PKGVERSION}" + "libOpenCL.so.1.0.0" + "libcuda.so.${PKGVERSION}" + "libnvcuvid.so.${PKGVERSION}" + "libnvidia-cfg.so.${PKGVERSION}" + "libnvidia-compiler.so.${PKGVERSION}" + "libnvidia-encode.so.${PKGVERSION}" + "libnvidia-glcore.so.${PKGVERSION}" + "libnvidia-ml.so.${PKGVERSION}" + "libnvidia-opencl.so.${PKGVERSION}" + "tls/libnvidia-tls.so.${PKGVERSION}" + "libnvidia-wfb.so.${PKGVERSION}" + "libvdpau_nvidia.so.${PKGVERSION}" + libnvidia-gtk2.so.${PKGVERSION} + libnvidia-gtk3.so.${PKGVERSION} + libnvidia-fatbinaryloader.so.${PKGVERSION} + ) + + NVDRV="nvidia_drv.so" + + NVLIBS32=( \ + ) + + NVBIN=( \ + "nvidia-settings" \ + "nvidia-xconfig" \ + "nvidia-smi" \ + "nvidia-modprobe" \ + ) + + NVSHARE=( \ + ) + + for i in ${NVLIBS[@]} ; do + soname=$(soname ${i} || echo "ERROR") + echo "installing ${i} as lib/${soname}" + install -v -c ${i} ${D}${LIBDIR}/${soname} + done + + echo "installing ${NVDRV} as drivers/$(basename ${NVDRV})"; + install -c -v ${NVDRV} ${D}${PREFIX}/drivers + + # soname is missing in this release.. + install -c -v "libglx.so.${PKGVERSION}" ${D}${LIBDIR}/libglx.so + + for i in ${NVLIBS32[@]} ; do + soname=$(soname ${i} || echo "ERROR") + echo "installing ${i} as lib32/${soname}" + + mkdir -pv ${D}${LIBDIR}32 + install -v -c ${i} ${D}${LIBDIR}32/${soname} + done + + mkdir -pv ${D}/usr/share/man/man1 + + for i in ${NVBIN[@]} ; do + echo "installing ${i} as bin/${i}" + install -v -c -m 755 ${i} ${D}${BINDIR} + install -v -c -m 644 ${i}.1.gz ${D}/usr/share/man/man1 + done + + for i in ${NVSHARE[@]} ; do + echo "installing ${i} as share/${i}" + cp -rv ${i} ${D}${PREFIX}/share + done + + mkdir -pv ${D}/usr/lib + + for i in tls glcore compiler gtk2 gtk3 fatbinaryloader; do + ln -vs ${LIBDIR}/libnvidia-${i}.so.${PKGVERSION} ${D}/usr/lib + done +} From bb202089c00156694c999a671a442b6b216ad0c6 Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Mon, 4 Jul 2016 16:27:32 +0200 Subject: [PATCH 2/2] add nvidia_linux-4.4.14-90-367.27-0.bee the nvidia-uvm.ko is no longer in a separate subdirectory we have a new kernel module nvidia-modeset (required loaded by Xorg server). mxnvidiactl has beed updated to load the module --- nvidia_linux-4.4.14-90-367.27-0.bee | 90 +++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100755 nvidia_linux-4.4.14-90-367.27-0.bee diff --git a/nvidia_linux-4.4.14-90-367.27-0.bee b/nvidia_linux-4.4.14-90-367.27-0.bee new file mode 100755 index 000000000..11db763ed --- /dev/null +++ b/nvidia_linux-4.4.14-90-367.27-0.bee @@ -0,0 +1,90 @@ +#!/bin/env beesh + +# calculate package extra versions and legacy level +# - use extraversions to define nvidia extraversion and/or legacy level +# - legacy level should be the last part of extraversion +# - legacy level 2 to 5 will be calculated from version number.. + +mxnvversion=${PKGEXTRAVERSION##*_} +: ${mxnvversion=current} + +nvextraversion="${PKGEXTRAVERSION_DASH}" + +if [ "${mxnvversion:0:6}" = "legacy" -o "${mxnvversion}" = "current" ] ; then + nvextraversion="${nvextraversion%_*}" + nvextraversion="${nvextraversion#-${mxnvversion}}" +else + if [ "${PKGVERSION:0:4}" = "340." ] ; then + mxnvversion="legacy5" + elif [ "${PKGVERSION:0:4}" = "304." ] ; then + mxnvversion="legacy4" + elif [ "${PKGVERSION:0:7}" = "173.14." ] ; then + mxnvversion="legacy3" + elif [ "${PKGVERSION:0:6}" = "96.43." ] ; then + mxnvversion="legacy2" + else + mxnvversion="current" + fi +fi + +print_info "calculated mxnvversion = '${mxnvversion}'" +print_info "calculated nvextraversion = '${nvextraversion}'" + +NVIDIA_ARCHIVE="NVIDIA-Linux-x86_64-${PKGVERSION}${nvextraversion}.run" + +SRCURL[0]="ftp://download.nvidia.com/XFree86/Linux-x86_64/${PKGVERSION}/${NVIDIA_ARCHIVE}" +#PATCHURL+=('/src/mariux/patches/nvidia-linux-readcr4_writecr4.patch') + +LINUXPKG=${PKGEXTRANAME}.${ARCH} + +LINUXKLOCALVER=$(beeversion --format "%v.mx64.%r" "${LINUXPKG}") + +# '4.4.mx64.75' to '4.4.0.mx64.75' +if [[ $LINUXKLOCALVER =~ ^([0-9]+\.[0-9]+)(\.mx64.*) ]]; then + LINUXKLOCALVER="${BASH_REMATCH[1]}.0${BASH_REMATCH[2]}" +fi + + +build_in_sourcedir +sourcesubdir_append kernel + +: ${BEE_TMP_TMPDIR:=/tmp} + +mee_extract() { + LINUXBUILDARCHIVE="${BEE_BUILDARCHIVEDIR}/${LINUXPKG}.beebuild.tar.bz2" + + print_info "extracting nvidia archive .." + + start_cmd rmdir ${S} + start_cmd sh ${F}/${NVIDIA_ARCHIVE} -x --target ${S} + + if [ -d "/usr/src/linux/${LINUXPKG}/source" ] ; then + LINUXSRCDIR="/usr/src/linux/${LINUXPKG}/source" + elif [ -d "${BEE_TMP_TMPDIR}/${LINUXPKG}/source" ] ; then + LINUXSRCDIR="${BEE_TMP_TMPDIR}/${LINUXPKG}/source" + else + print_info "extracting linux build ${LINUXPKG} .." + start_cmd gtar -xf "${LINUXBUILDARCHIVE}" -C ${BEE_TMP_TMPDIR} + LINUXSRCDIR="${BEE_TMP_TMPDIR}/${LINUXPKG}/source" + fi + + print_info "using kernel sources from ${LINUXSRCDIR} .." +} + +mee_build_pre() { + ln -s ${LINUXSRCDIR}/include ${S}/include +} + +mee_build() { + start_cmd make SYSSRC=${LINUXSRCDIR} module +} + +mee_install() { + mkdir -pv ${D}${DATAROOTDIR}/nvidia/kernel/${LINUXKLOCALVER}/${PKGVERSION} + + cp -v nvidia.ko ${D}${DATAROOTDIR}/nvidia/kernel/${LINUXKLOCALVER}/${PKGVERSION}/nvidia.ko + cp -v nvidia-uvm.ko ${D}${DATAROOTDIR}/nvidia/kernel/${LINUXKLOCALVER}/${PKGVERSION}/nvidia-uvm.ko + cp -v nvidia-modeset.ko ${D}${DATAROOTDIR}/nvidia/kernel/${LINUXKLOCALVER}/${PKGVERSION}/nvidia-modeset.ko + + ln -s ${PKGVERSION} ${D}${DATAROOTDIR}/nvidia/kernel/${LINUXKLOCALVER}/${mxnvversion} +}