qubes-doc/troubleshooting/install-nvidia-driver.md

122 lines
4.4 KiB
Markdown
Raw Normal View History

2011-04-03 09:29:28 -04:00
---
2015-04-10 16:17:45 -04:00
layout: doc
title: How to Install an Nvidia Driver
permalink: /doc/install-nvidia-driver/
redirect_from:
- /en/doc/install-nvidia-driver/
- /doc/InstallNvidiaDriver/
- /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
~~~
yumdownloader --resolve xorg-x11-drv-nvidia
2011-07-11 19:54:14 -04:00
yumdownloader --source nvidia-kmod
~~~
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
~~~
yum install kernel-devel rpm-build kmodtool
rpmbuild --nodeps -D "kernels `uname -r`" --rebuild nvidia-kmod-260.19.36-1.fc13.3.src.rpm
~~~
2011-07-11 19:54:14 -04:00
2015-10-29 19:29:23 -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 (e.g. using a USB stick) and install (using standard "yum install /path/to/file").
2015-08-25 22:05:30 -04:00
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:
~~~
GRUB_CMDLINE_LINUX="quiet rhgb nouveau.modeset=0 rd.driver.blacklist=nouveau video=vesa:off"
~~~
2015-08-25 22:05:30 -04:00
Regenerate grub configuration:
~~~
grub2-mkconfig -o /boot/grub2/grub.cfg
~~~
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
See [this page](/doc/copy-to-dom0/) 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:
~~~
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
~~~
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
~~~
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/
~~~
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
~~~
2011-04-03 09:29:28 -04:00
cat /etc/modprobe.d/nouveau-disable.conf
# blacklist isn't enough...
install nouveau /bin/true
~~~
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:
~~~
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"
~~~
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.