Skip to content

nvidia: replace 367.27 with 367.18 #41

Merged
merged 1 commit into from
Jul 7, 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
nvidia: replace 367.27 with 367.18
nvidia 367.27 has a bug which may result in build problems of packages
which use libGL.so.1 ( undefined symbols nv_vasprintf_vsnprintf,
nv_vasprintf_alloc, nv_vasprintf_free in
/usr/share/nvidia/367.27/lib/libnvidia-glcore.so.367.27")

nvidia 352.79 was replaced, because using cuda with this version in
machines with multiple graphic cards, sometimes crashed the cards.

nvidia 367.18 seems to be okay regarding both problems.

we need to keep nvidia_current-367.27-0.x86_64 until no more systems are
using 367.27

we add nvidia_linux-4.6.3-92-367.18-0 because linux-4.6.3-92 might
replace linux-4.6.3-91
donald committed Jul 7, 2016
commit 72ff4926c40905a58eb61e4c41ebf0f79bbc76ed
115 changes: 115 additions & 0 deletions nvidia_current-367.18-0.bee
Original file line number Diff line number Diff line change
@@ -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
}
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -82,9 +82,7 @@ mee_build() {
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
cp -v *.ko ${D}${DATAROOTDIR}/nvidia/kernel/${LINUXKLOCALVER}/${PKGVERSION}/

ln -s ${PKGVERSION} ${D}${DATAROOTDIR}/nvidia/kernel/${LINUXKLOCALVER}/${mxnvversion}
}
88 changes: 88 additions & 0 deletions nvidia_linux-4.6.3-92-367.18-0.bee
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
#!/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 *.ko ${D}${DATAROOTDIR}/nvidia/kernel/${LINUXKLOCALVER}/${PKGVERSION}/

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