Step by step instructions to install Fedora 20 on a PC with an NVIDIA GPU installed and get it crunching with stock apps. The stock apps are from lunatics, so it's already optimized. I've done this a couple times while taking notes so I'm pretty sure it's accurate. Fedora 21 comes out in August; I'll probably upgrade to it because it's supposed to include native OpenCL support with that version. That may return shorter CPU crunching times.
Couple of assumptions.
1. You're familiar with the 'yum' command in Fedora. It's the easy way to install applications because it deals with the dependency issues automatically. Other linux distibutions have similar commands (such as 'apt-get' in Ubuntu) or no automatic way to deal with the dependencies.
2. Familiar with 'vi' or some other text editor run from the shell, or BASH (Bourne Again SHell), or generically known as "the terminal" now.
3. Familiar with rebooting into text mode (no graphical user interface). With Fedora, the easiest way is to hit "e" at the moment the screen shows up asking you which kernel you wish to boot (soon after POST) and appending the number '3' to the end of the "linux" line and then hitting F10 to continue.
4. Familiar with the 'shutdown' command from the above 'init 3' mode and rebooting back into 'init 5' (graphical mode).
5. Know the difference between the "$" prompt (user) and "#" prompt (root) and how to login as root and exit from root in the shell.
Step by step:
1. Fresh install of Fedora 20, #yum update
2. #yum install kernel-devel (so parts of the NVIDIA driver can be built into the kernel)
3. #yum install gcc (GNU C Compiler)
4. download NVIDIA-Linux-x86_64-331.38.run from nvidia.com using Mozilla web browser (make sure the version you download is for your Nvidia GPU and change the name in these instructions accordingly)
5. cd to directory where it was downloaded (I moved mine from /home/guy/Downloads to /home/guy/Desktop)
6. #chmod +x NVIDIA-Linux-x86_64-331.38.run (make it executable)
8. #vi /etc/modprobe.d/blacklist.conf - append 'blacklist nouveau' (creates blacklist, blacklists nouveau)
9. #vi /etc/sysconfig/grub - append 'rd.driver.blacklist=nouveau' to end of 'GRUB_CMDLINE_LINUX="...about 3 lines of stuff..."' (be careful with the double quotes)
10. #grub2-mkconfig -o /boot/grub2/grub.cfg (to pick up the above changes)
11. #yum remove xorg-x11-drv-nouveau.x86_64 (deletes nouveau because it prevents the Nvidia driver from working)
11a. Now be careful here. You don't have 'init 5' (graphic user interface) capability at this point because you just deleted nouveau. Make sure you catch the screen shortly after POST and hit 'e' to append a '3' using your arrow keys to the end of the "linux" line so when you hit F10 and continue, you enter text mode (init 3). If you miss this, it will be easier to just start from step 1 again.
12. reboot to init 3, login as root
13. cd to directory where you downloaded NVIDIA-Linux-x86_64-331.38.run (/home/guy/Desktop in my case)
14. #./NVIDIA-Linux-x86_64-331.38.run (executes driver install routine)
14a. accept license agreement
14b. install 32 bit compatibility
14c. Automatically update nvidia-xconfig utility so nvidia x driver is used when you restart x - yes
15. #shutdown (reboot back into graphical mode and log back in as root in the terminal)
16. #yum install boinc-client.x86_64
17. #yum install boinc-manager.x86_64
18. #service boinc-client start (creates files in /var/lib/boinc)
19. #service boinc-client stop
20. #echo > /var/lib/boinc/gui_rpc_auth.cfg (removes client password so boinc manager can connect with boinc client)
21. #/usr/sbin/usermod -G boinc -a guy (take ownership--substitute 'guy' with your user login)
22. #ln -s /var/lib/boinc/gui_rpc_auth.cfg /home/guy/gui_rpc_auth.cfg (soft link to user--substitute 'guy' with your user login)(I still can't run Boinc from my user account. Probably need to chown and chmod some files. I may try to figure this out later)
23. #vi /etc/hostname (change your host name to whatever you want it to be recognized as on your network EDIT: and then reboot to pick up this change)
24. #service boinc-client start
26. Add project Seti@home and it works with the stock apps (MB & AP on your CPU and AP on your NVIDIA GPU -- no MB/NVIDIA app available)
I'm not worried about security so I run it at root at this time.
Couple of notes about errors I get after it starts crunching:
"execvp (/home/guy/boinc, --redirectio, --launched_by_manager) failed with error 2!" and
"(boincmgr:1838): Gtk-Critical **: IA_gtk_widget_get_direction: assertion 'GTK_IS_WIDGET (widget)' failed"
That number "1838" seems to be different every time I reboot/restart.
I'm not sure what those errors are but those errors don't keep it from crunching.
There's still no app for MB on your NVIDIA GPU. Hopefully some smart programmer ports one over soon.
I wrote this for nubes. Hope it helps someone.