Skip to content

nvidia_linux-4.4.14: Build nvidia-uvm.ko #24

Merged
merged 1 commit into from
Jun 30, 2016
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
90 changes: 90 additions & 0 deletions nvidia_linux-4.4.14-90-352.79-1.bee
Original file line number Diff line number Diff line change
@@ -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
( cd uvm && 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 uvm/nvidia-uvm.ko ${D}${DATAROOTDIR}/nvidia/kernel/${LINUXKLOCALVER}/${PKGVERSION}/nvidia-uvm.ko

ln -s ${PKGVERSION} ${D}${DATAROOTDIR}/nvidia/kernel/${LINUXKLOCALVER}/${mxnvversion}
}