nixpkgs dir: nvidia and libsrvg
svn path=/nixpkgs/trunk/; revision=8785
This commit is contained in:
@@ -37,7 +37,7 @@ stdenv.mkDerivation {
|
||||
sha256 = "1n0xgqckj64ga3l53l8lk1591lfcn6zcrqg3phz2m0y841ck5qlk";
|
||||
};
|
||||
|
||||
patches = map (p: p.patch) kernelPatches;
|
||||
patches = [./2.6.20-paravirt-nvidia.patch] ++ (map (p: p.patch) kernelPatches);
|
||||
extraConfig = lib.concatStrings (map (p: "\n" + p.extraConfig + "\n") kernelPatches);
|
||||
|
||||
config =
|
||||
|
||||
Executable
+93
@@ -0,0 +1,93 @@
|
||||
source $stdenv/setup
|
||||
|
||||
echo "Building linux driver against kernel: " $kernelOutPath;
|
||||
echo "LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
|
||||
|
||||
echo $nvidiasrc
|
||||
cp $nvidiasrc .
|
||||
chmod 755 ./*-NVIDIA*
|
||||
./*-NVIDIA* -x
|
||||
cd NVIDIA*/
|
||||
|
||||
cd usr/src/nv/
|
||||
pwd -P
|
||||
|
||||
#Clean up
|
||||
#make clean
|
||||
|
||||
#Create the module
|
||||
echo $out
|
||||
mkdir $out
|
||||
make SYSSRC=$kernelOutPath/lib/modules/2.*/build/ module
|
||||
|
||||
#go to the usr dir of the nvidia package
|
||||
cd ../../
|
||||
|
||||
echo "Copying all files to " $out/lib""
|
||||
|
||||
cp -R * $out
|
||||
|
||||
#add extra symlinks in $out
|
||||
ln -sf $out/lib/libGLcore.so.1.0.9755 $out/lib/libGLcore.so
|
||||
ln -sf $out/lib/libGLcore.so.1.0.9755 $out/lib/libGLcore.so.1
|
||||
ln -sf $out/lib/libGL.so.1.0.9755 $out/lib/libGL.so
|
||||
ln -sf $out/lib/libGL.so.1.0.9755 $out/lib/libGL.so.1
|
||||
ln -sf $out/lib/libnvidia-cfg.so.1.0.9755 $out/lib/libnvidia-cfg.so.1
|
||||
ln -sf $out/lib/libnvidia-tls.so.1.0.9755 $out/lib/libnvidia-tls.so.1
|
||||
ln -sf $out/X11R6/lib/libXvMCNVIDIA.so.1.0.9755 $out/X11R6/lib/libXvMCNVIDIA.so.1
|
||||
ln -sf $out/X11R6/lib/libXvMCNVIDIA.so.1.0.9755 $out/lib/libXvMCNVIDIA.so.1
|
||||
ln -sf $out/X11R6/lib/modules/libnvidia-wfb.so.1.0.9755 $out/X11R6/lib/modules/libnvidia-wfb.so.1
|
||||
ln -sf $out/X11R6/lib/modules/libnvidia-wfb.so.1.0.9755 $out/lib/libnvidia-wfb.so.1
|
||||
ln -sf $out/X11R6/lib/modules/extensions/libglx.so.1.0.9755 $out/X11R6/lib/modules/extensions/libglx.so.1
|
||||
ln -sf $out/X11R6/lib/modules/extensions/libglx.so.1.0.9755 $out/lib/libglx.so.1
|
||||
|
||||
#TODO: patchelf binaries !
|
||||
#patchelf --set-interpreter ${path glibc TODO /lib/ld-linux.so.2 $out/bin/....
|
||||
|
||||
#from dep on xorg-sys-opengl: add symlinks in /usr/lib/ (especially libGL.so.1) to the real location...
|
||||
|
||||
ensureDir /usr/lib/
|
||||
cd /usr/lib
|
||||
ln -sf $out/lib/libGLcore.so.1.* libGLcore.so.1
|
||||
ln -sf $out/lib/libGL.la libGL.la
|
||||
ln -sf $out/lib/libGL.so.1.* libGL.so.1
|
||||
ln -sf $out/lib/libnvidia-cfg.so.1.* libnvidia-cfg.so.1
|
||||
ln -sf $out/lib/libnvidia-tls.so.1.* libnvidia-tls.so.1
|
||||
ensureDir /usr/lib/tls/
|
||||
ln -sf $out/lib/tls/libnvidia-tls.so.1.* /usr/lib/tls/libnvidia-tls.so.1
|
||||
ln -sf $out/X11R6/lib/modules/extensions/libglx.so.1.* libglx.so.1
|
||||
ln -sf $out/X11R6/lib/modules/libnvidia-wfb.so.1.* libnvidia-wfb.so.1
|
||||
ln -sf $out/X11R6/lib/modules/drivers/nvidia_drv.so nvidia_drv.so
|
||||
ln -sf $out/X11R6/lib/libXvMCNVIDIA.so.1.* libXvMCNVIDIA.so.1
|
||||
ln -sf $out/bin/tls_test_dso.so tls_test_dso.so
|
||||
ln -sf $out/src/nv/nvidia.ko nvidia.ko
|
||||
|
||||
echo "YOU! need to add symlinks as root to the libs in the current $xorgOutPath/lib/xorg/modules/extensions/ (especially libglx.so)"
|
||||
rwlibs="
|
||||
cd $xorgOutPath/lib/xorg/modules/extensions/;
|
||||
mv libglx.so libglx.so.org;
|
||||
mv libglx.la libglx.la.org;
|
||||
mv libGLcore.so libGLcore.so.org;
|
||||
ln -sf /usr/lib/libglx.so.1 libglx.so;
|
||||
ln -sf /usr/lib/libglx.so.1 libglx.so.1;
|
||||
ln -sf /usr/lib/libGLcore.so.1 libGLcore.so;
|
||||
ln -sf /usr/lib/libGLcore.so.1 libGLcore.so.1;
|
||||
ln -sf /usr/lib/libGL.so.1 libGL.so;
|
||||
ln -sf /usr/lib/libGL.so.1 libGL.so.1;
|
||||
ln -sf /usr/lib/libglx.la libglx.la;
|
||||
ln -sf /usr/lib/libglx.so.1 libglx.so;
|
||||
ln -sf /usr/lib/libglx.so.1 libglx.so.1;
|
||||
ln -sf /usr/lib/nvidia_drv.so nvidia_drv.so;
|
||||
ln -sf $out/src/nv/nvidia.ko $kernelOutPath/lib/modules/$(uname -r)/kernel/drivers/video/nvidia/nvidia.ko;
|
||||
|
||||
"
|
||||
rwlibsfile="$out/bin/nvidia-rewriteLibs.sh"
|
||||
|
||||
echo "--------------------------------------------------------"
|
||||
echo "YOU MUST RUN $rwlibsfile as ROOT after this installation"
|
||||
echo "--------------------------------------------------------"
|
||||
echo $rwlibs > $rwlibsfile
|
||||
chmod 755 $rwlibsfile
|
||||
|
||||
sleep 5
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
{ stdenv
|
||||
, fetchurl
|
||||
|
||||
, kernel
|
||||
, coreutils
|
||||
, xorg_server
|
||||
|
||||
#deps
|
||||
,libXext, libX11
|
||||
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "nvidiaDrivers";
|
||||
builder = ./builder.sh;
|
||||
|
||||
nvidiasrc = fetchurl { #we cannot use $src since this variable is also used in the nvidia sources
|
||||
url = http://www.denbreejen.net/public/nixos/NVIDIA-Linux-x86-1.0-9755-pkg1.run;
|
||||
sha256 = "1985373866b1dcae80f3da66dbbbd3c28ad76e75a620865be321ee870ad9d1ea";
|
||||
};
|
||||
|
||||
kernelOutPath = kernel.outPath;
|
||||
xorgOutPath = xorg_server.outPath;
|
||||
|
||||
buildInputs = [
|
||||
libXext libX11
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
libX11 libXext
|
||||
];
|
||||
|
||||
NIX_LDFLAGS = "-rpath ${libX11}/lib -rpath ${libXext}/lib";
|
||||
LD_LIBRARY_PATH = "${libX11}/lib:${libXext}/lib/";
|
||||
}
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#! /bin/sh -e
|
||||
|
||||
insmod $(nix-showOutPath.sh nvidiaDrivers)/src/nv/nvidia.ko
|
||||
|
||||
#initctl start xserver
|
||||
@@ -10,3 +10,6 @@ ln -s /usr/lib/libnvidia-tls.so.1 $out/lib/
|
||||
for i in $neededLibs; do
|
||||
ln -s $i/lib/*.so* $out/lib/
|
||||
done
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -13,3 +13,4 @@ stdenv.mkDerivation {
|
||||
builder = ./builder.sh;
|
||||
neededLibs = [xlibs.libXxf86vm xlibs.libXext expat libdrm];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user