qubes-doc/InstallNvidiaDriver.md

119 lines
4.6 KiB
Markdown
Raw Normal View History

2011-04-03 09:29:28 -04:00
---
2015-04-10 16:17:45 -04:00
layout: doc
2011-04-03 09:29:28 -04:00
title: InstallNvidiaDriver
2015-04-10 16:17:45 -04:00
permalink: /doc/InstallNvidiaDriver/
redirect_from: /wiki/InstallNvidiaDriver/
2011-04-03 09:29:28 -04:00
---
2015-08-25 22:05:30 -04:00
#Nvidia proprietary driver installation
2011-04-03 09:29:28 -04:00
2015-08-25 22:05:30 -04:00
You can use rpm packages from rpmfusion, or you can build the driver yourself.
2011-07-11 19:54:14 -04:00
2015-08-25 22:05:30 -04:00
##RpmFusion packages
2011-07-11 19:54:14 -04:00
2015-08-25 22:05:30 -04:00
There are rpm packages with all necessary software on rpmfusion. The only package you have to compile is the kernel module (but there is a ready built src.rpm package).
2011-07-11 19:54:14 -04:00
2015-08-25 22:05:30 -04:00
###Download packages
You will need any Fedora 18 system to download and build packages. You can use Qubes AppVM for it, but it isn't necessary. To download packages from rpmfusion - add this repository to your yum configuration (instructions are on their website). Then download packages using yumdownloader:
2011-07-11 19:54:14 -04:00
2015-04-10 16:17:45 -04:00
{% highlight trac-wiki %}
yumdownloader --resolve xorg-x11-drv-nvidia
2011-07-11 19:54:14 -04:00
yumdownloader --source nvidia-kmod
2015-04-10 16:17:45 -04:00
{% endhighlight %}
2011-07-11 19:54:14 -04:00
2015-08-25 22:05:30 -04:00
###Build kernel package
2011-07-11 19:54:14 -04:00
You will need at least kernel-devel (matching your Qubes dom0 kernel), rpmbuild tool and kmodtool, and then you can use it to build package:
2011-07-11 19:54:14 -04:00
2015-04-10 16:17:45 -04:00
{% highlight trac-wiki %}
yum install kernel-devel rpm-build kmodtool
rpmbuild --nodeps -D "kernels `uname -r`" --rebuild nvidia-kmod-260.19.36-1.fc13.3.src.rpm
2015-04-10 16:17:45 -04:00
{% endhighlight %}
2011-07-11 19:54:14 -04:00
2015-08-25 22:05:30 -04:00
In above command replace `uname -r` with kernel version from your Qubes dom0. If everything went right, you have now complete packages with nvidia drivers for Qubes system. Transfer them to dom0 (eg using USB stick) and install (using standard "yum install /path/to/file").
Then you need to disable nouveau (normally it is done by install scripts from nvidia package, but unfortunately it isn't compatible with Qubes...):
2015-08-25 22:05:30 -04:00
Edit /etc/default/grub:
2015-04-10 16:17:45 -04:00
{% highlight trac-wiki %}
GRUB_CMDLINE_LINUX="quiet rhgb nouveau.modeset=0 rd.driver.blacklist=nouveau video=vesa:off"
2015-04-10 16:17:45 -04:00
{% endhighlight %}
2015-08-25 22:05:30 -04:00
Regenerate grub configuration:
2015-04-10 16:17:45 -04:00
{% highlight trac-wiki %}
grub2-mkconfig -o /boot/grub2/grub.cfg
2015-04-10 16:17:45 -04:00
{% endhighlight %}
2015-08-25 22:05:30 -04:00
Reboot.
##Manual installation
2011-07-11 19:54:14 -04:00
2015-08-25 22:05:30 -04:00
This process is quite complicated: First - download the source from nvidia.com site. Here "NVIDIA-Linux-x86\_64-260.19.44.run" is used. Copy it to dom0. Every next step is done in dom0.
2011-07-11 19:54:14 -04:00
2015-08-25 22:05:30 -04:00
See [this page](/doc/CopyToDomZero/) for instructions on how to transfer files to Dom0 (where there is normally no networking).
2011-07-11 19:54:14 -04:00
2015-08-25 22:05:30 -04:00
**WARNING**: Nvidia doesn't sign their files. To make it worse, you are forced to download them over a plaintext connection. This means there are virtually dozens of possibilities for somebody to modify this file and provide you with a malicious/backdoored file. You should realize that installing untrusted files into your Dom0 is a bad idea. Perhaps it might be a better idea to just get a new laptop with integrated Intel GPU? You have been warned.
2015-08-25 22:05:30 -04:00
###Userspace components
2011-04-03 09:29:28 -04:00
Install libraries, Xorg driver, configuration utilities. This can by done by nvidia-installer:
2015-04-10 16:17:45 -04:00
{% highlight trac-wiki %}
2011-04-11 16:37:52 -04:00
./NVIDIA-Linux-x86_64-260.19.44.run --ui=none --no-x-check --keep --no-nouveau-check --no-kernel-module
2015-04-10 16:17:45 -04:00
{% endhighlight %}
2011-04-03 09:29:28 -04:00
2015-08-25 22:05:30 -04:00
###Kernel module
2011-04-03 09:29:28 -04:00
You will need:
- nvidia kernel module sources (left from previous step)
- kernel-devel package installed
- gcc, make, etc
This installation must be done manually, because nvidia-installer refused to install it on Xen kernel. Firstly ensure that kernel-devel package installed all needed files. This should consists of:
- */usr/src/kernels/2.6.34.1-12.xenlinux.qubes.x86\_64*
- */lib/modules/2.6.34.1-12.xenlinux.qubes.x86\_64/build* symlinked to the above directory
- */usr/src/kernels/2.6.34.1-12.xenlinux.qubes.x86\_64/arch/x64/include/mach-xen* should be present (if not - take it from kernel sources)
2015-08-25 22:05:30 -04:00
If all the files are not there correct the errors manually. To build kernel module, enter *NVIDIA-Linux-x86\_64-260.19.44/kernel* directory and execute:
2011-04-03 09:29:28 -04:00
2015-04-10 16:17:45 -04:00
{% highlight trac-wiki %}
2011-04-11 16:44:56 -04:00
make
2011-04-03 09:29:28 -04:00
IGNORE_XEN_PRESENCE=1 CC="gcc -DNV_VMAP_4_PRESENT -DNV_SIGNAL_STRUCT_RLIM" make -f Makefile.kbuild
mv /lib/modules/2.6.34.1-12.xenlinux.qubes.x86_64/kernel/drivers/video/nvidia.ko /lib/modules/2.6.34.1-12.xenlinux.qubes.x86_64/extra/
2015-04-10 16:17:45 -04:00
{% endhighlight %}
2011-04-03 09:29:28 -04:00
2015-08-25 22:05:30 -04:00
Ignore any errors while inserting nvidia.ko (at the end of make phase).
###Disable nouveau:
2011-04-03 09:29:28 -04:00
2015-04-10 16:17:45 -04:00
{% highlight trac-wiki %}
2011-04-03 09:29:28 -04:00
cat /etc/modprobe.d/nouveau-disable.conf
# blacklist isn't enough...
install nouveau /bin/true
2015-04-10 16:17:45 -04:00
{% endhighlight %}
2011-04-03 09:29:28 -04:00
2011-04-13 17:18:38 -04:00
Add *rdblacklist=nouveau* option to /boot/grub/menu.lst (at the end of line containing *vmlinuz*).
2015-08-25 22:05:30 -04:00
###Configure Xorg
2011-04-03 09:29:28 -04:00
After all, you should configure Xorg to use nvidia driver. You can use *nvidia-xconfig* or do it manually:
2015-04-10 16:17:45 -04:00
{% highlight trac-wiki %}
2011-04-03 09:29:28 -04:00
X -configure
mv /root/xorg.conf.new /etc/X11/xorg.conf
# replace Driver in Device section by "nvidia"
2015-04-10 16:17:45 -04:00
{% endhighlight %}
2011-04-13 17:18:38 -04:00
2015-08-25 22:05:30 -04:00
2011-04-13 17:18:38 -04:00
Now you should reboot the system.