INSTALLATION OF A NVIDIA GTX 650-ti GPU ON FEDORA 17 TO SUPPORT BOINC GPU PROCESSING.
NOTE 1: This procedure is only valid if you want to crunch data on a Linux machine and use a NVIDIA GPU. If you just want to crunch data using your PC’s CPU’s see other installation procedures in the sidebar.
NOTE 2: Since the Nvidia driver pacage supports many other devices/models the procedure may very well apply to them. It might also prove valuable if installing on another OS besides FC 17.
Summary of what we are going to do:
- Install the latest NVIDIA drivers for the GTX 650-ti on Fedora 17
- Install BOINC from the Fedora 17 distribution
- Modify the Fedora 17’s BOINC install to support GPUs on linux (this must be done with BOINC regardless of distribution). BOINC does NOT support GPU usage as issued, whether from a distro or from the BOINC download site. This is not obvious to the first time user.
A LIST OF GENERAL REQUIREMENTS:
- FEDORA 17 – already installed.
- NVIDIA GTX 650-ti
- CURRENT NVIDIA DRIVERS – (From NVIDIA’s web site – Linux 32 bit or 64 bit)
- BOINC – (best to install the Fedora distro’s version using yum)
- BOINC PATCH/SUPPORT FROM Lunatics – the BOINC app does not support Linux. This patch will almost make an update to the Fedora distro impossible going forward.
- CUDA DRIVERS AND SDK – I did not install. I believe the minimum requirements are installed as part of the NVIDIA driver install. But should you need them here is the website: https://developer.nvidia.com/cuda-downloads
- You will also need an account with one of the projects you are going to be crunching data for. This might be seti@home or any of a number of others. Just remember that NOT all projects have support for GPUs so if you pick one that does not, don’t be surprised if you don’t see GPU activity in the BOINC manager. Also you will have to check “use GPU” in the sites configuration for your account.
Take a deep breath. This looks like a long complicated procedure but it is not. You might consider reading it first before you start. I have tried to give exactly what you need and detailed steps on how to do it. There a couple of areas where you will have to make adjustments such as your $HOME. It won’t/should not be the same as mine. Minor stuff. If you find problems in the procedure leave a comment showing a correction if you have one or were the procedure is wrong or needs improving and I will make the change.
DETAILED INSTALLATION PROCEDURE FOLLOWS:
STARTING FROM A NEW INSTALLATION OF FEDORA
I. INSTALLING THE NVIDIA DRIVERS
1. Install Fedora and get networking up.
2. upgrade what you have installed
3. install the following Fedora requirements:
yum install kernel-devel
yum install gcc
yum install glibc
yum install binutils
yum install p7zip
reboot (read paragraph below first starting with: “At this point…”
At this point it might be a good time to try something your are going to do later. If you mess it up here it should not be a big deal. During start up logic Linux will enter a screen displaying your current grub loader options. At this point hit “e”. It will stop the boot and show you the contents of the grub configuration script which you will modify later using the up/down/left/right arrow key. Don’t change anything but have a look. No need to write anything down. Press F10 to continue the boot process. Later in this procedure your are going to add a “3” to the end of a line. I had never done this before so it was new to me and probably new to many who don’t do this for a living.
4. go to the nvidia site: http://www.geforce.com/drivers
find your device and be sure to select linux 32 or 64 bit verison
download to your $HOME/Download/nvidia directory
cd to $HOME/Download/nvidia
chmod +x the driver file. It must be executable
5. check and install the following if not already installed
the checks might be different so use locate to confirm. Version is
important but since you have installed from the Fedora 17 distro
like I have you will be fine. These are required.
- xorg –> Xorg -version — install if version not displayed
- gnumake –> make –version
- gcc –> gcc –version
6. blacklist the nouveau driver
at the end of the file add:
7. edit /etc/sysconfig/grub – careful with double quotes.
append to the end of the “GRUB_CMDLINE_LINUX=” line
it should now look similar to:
GRUB_CMDLINE_LINUX=”rd.md=0 rd.dm=0 KEYTABLE=us SYSFONT=True rd.luks=0 LANG=en_US.UTF-8 rd.lvm.lv=vg_grendel/lv_swap rd.lvm.lv=vg_grendel/lv_root rhgb quiet rd.driver.blacklist=nouveau”
8. grub2-mkconfig -o /boot/grub2/grub.cfg
picks up the change in step 7 above
9. remove xorg-nouveau – DO THIS
yum remove xorg-x11-drv-nouveau
10. pay attention and read the next 3 lines
at the grub shell (where it lists boot options on black screen
enter “e” (remember you practiced this eariler)
11. using the left/right up/down arrow keys move to the end of the line contianing “rd.driver.blacklist=nouveau” and append a “3”.
When you continue the boot this will put you into “init 3″ a black screen with a login prompt
12. F10 to continue the boot
this is going to present you with a black screen with a login prompt
13. login as root
14. cd to the directory containing the nividia driver file downloaded earlier and make sure it is executable
15. Install the driver by:
./NVIDIA-Linux-x86_64-310.19.run (this is the version available from the NVIDIA site when I built my machine).
Your file may have a different name. Just substitute its name above.
16. Read any prompts but you will usually answer “yes” or “ok”
17. reboot if there are no errors.
Your system should come up. After the boot look for the nvidia serrver icon (a green eye type thing). Double click on it and look at the data you should see that your driver you downloaded is the one in use, and that it correctly identifies your GTX card.
II. INSTALLING BOINC
1. yum install boinc
III. upgrading the boinc package to support GPU systems.
1. go to:
look for “Files:”
click on “01-Linux 64bit Cuda Multibeam (x41g), Dec 2011″
scroll down and
click on “Mirror 1″ its a link and will begin down load. DOWNLOAD THIS FILE TO: $HOME/Downloads/lunatic
2. cd $HOME/Downloads/lunatic and uncompress the file just downloaded.
7za e Lunatics_x41g_linux64_cuda32.7z
The line above looks strange but it is correct.
It will extract all files.
Read the readme then continue with this procedure. You can’t know too much.
3. Install the Boinc support
You installed BOINC earlier from the FC 17 distro. Now you are going to add a few files so that it will support your GPU. The standard BOINC code will not support GPUs so even with the correct NVIDIA drivers installed your GPUs will not be accessed by BOINC.
The FC 17 distribution’s “yum install boinc” places BOINC in
/var/lib/boinc directory. Save this entire directory structure so you can recover if this install goes bad.
4. login as root
5. In the following commands pay attention to the trailing “periods“.
cp $your_home_directory/Downloads/lunatic/libcudart.so.3 .
cp $your_home_directory/Downloads/lunatic/libcufft.so.3 .
cp $your_home_directory/Downloads/lunatic/setiathome_x41g_x86_64-pc-linux-gnu_cuda32 .
cp $your_home_directory/Downloads/lunatic/app_info.xml-cuda_and_stock_cpu .
mv app_info.xml-cuda_and_stock_cpu app_info.xml
Make sure everthing in /var/lib/boinc/ and all sub directories are owned by boinc:boinc
6. login as root
- /usr/sbin/usermod -G boinc -a username
- chmod g+rw /var/lib/boinc
- chmod g+rw /var/lib/boinc/*.*
- ln -s /var/lib/boinc/gui_rpc_auth.cfg /home/username /gui_rpc_auth.cfg
Step D above will create a soft link in your user’s $HOME and it
will be owned by root:root. Do not change that files ownership.
An ls –a will reveal other boinc files/directories. Leave alone.
Now when you start boinc manager it should automatically log you
in using the password in the file /var/lib/boinc/gui_rpc_auth.cfg .
7. start the boinc service – systemctl is new to FC 17. The service command is still supported.
systemctl start boinc-client.service
systemctl status boinc-client.service <– see if it is running
systemctl enable boinc-client.service <– start boinc-client at reboot automatically
systemctl is-enabled boinc-client.service <– check to be sure that auto start is enabled/disable
8. find the boinc mangager icon in applications and launch it
select –> Advanced –> Select computer
put “localhost” in for “Host name”
password from the file gui_rpc_auth.cfg
This file contains a very long “alphanumeric string” which is your password.
9. you should be presented with a screen to select a project. Remember not all projects support
GPUs. seti does, so that might be a good one to try.
10. It takes a while to download data from seti@home
11. to check if your are processing data with a GPU look at the “tasks” tab in “advanced” mode and
under the “Application” column you should see something like:
Local: setiathome_enhanced 6.11 (cuda_fermi). If you don’t give it some time. If still not there log into your seti account and be sure that the check box “use GPU” is checked.
12. If this should fail check the steps. I really would not be able to help, although if you have questions post in comments.
When upgrading Fedora 17’s kernel you might have a problem. It shows up during boot when the screen changes to the “white tear drop” and begins filling it in to show progress. If there is a problem the boot logic will not complete and the “tear drop” will remain. If this happens you may need to reinstall the NVIDIA drivers beginning at step 9. You don’t want the Xorg stuff but maybe it got reinstalled as part of your updating the system. Doing this worked for me when I went from kernel 3.6.10-2.fc17.x86_64 to 3.6.11-5.fc17.x86_64. The system would not boot. It would hang at the “tear drop”. Others have had similar issues and I believe it to be a driver related issue.