ubuntu10.4下安装cuda4.0

历时一晚,重装ubuntu2次终于了搞定cuda4.0的安装,一觉醒来略有困意却又兴奋异常,谨以此文做一纪念,同时以备后用。:slight_smile:
安装前到准备工作就不复述,照着CUDA_C_Getting_Started_Linux.pdf上所述,依次检查了自己显卡及系统的配置,以及gcc编译器的版本,确定一切OK,开始下载Developer Drivers for Linux (270.41.19),CUDA Toolkit for Ubuntu Linux 10.10及GPU Computing SDK - complete package including all code samples。
一/驱动的安装。
(1)先ctrl+alt+F1退出图形界面,输入用户名root及密码登录root权限(关于root密码,我是现在系统中修改了root密码,sudo passwd 密码)
(2)关闭gdm,sudo /etc/init.d/gdm stop
(3)卸载原驱动,nvidia -installer --uninstall (系统没什么反应,也不知道这步有作用没,反正看网上有说需要)
(4)进入驱动存放的文件夹下,cd /home (我是放在home下的)
(5)安装驱动,sudo chomd +x devdriver_4.0_linux_32_270.41.19.run及sudo ./devdriver_4.0_linux_32_270.41.19.run(注意上面工具包的名称要跟你下载的工具包名称一致,不同系统版本的文件名略有差别,预设是安装在/usr/local/cuda 目录下,建议就依照他的预设路径安装,安装完成后要设定Library 的Path)
(6)打开gdm,sudo /etc/init.d/gdm start,要是没有自动回到GUI下按ctrl+alt+F6.
二/驱动装OK后,开始装tookit和sdk
(1)cd 至文件存放的路径,cd /home
(2)用root权限装tookit,sudo sh ./cudatoolkit_4.0.17_linux_32_ubuntu10.10.run,我是选择安装在default路径/usr/local/cuda/
(3)用普通用户装sdk,sh ./gpucomputingsdk_4.0.17_linux.run,也选择安装在default路径~/NVIDIA_CUDA-SDK/
三/接着更该环境变量
(1)打开bashrc进行编辑
gedit ~/.bashrc
(2)在文件的最后加上
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib:$LD_LIBRARY_PATH
(3)保存退出,然后运行下面的命令 ~/.bashrc
(4)保险期间,又在命令行里运行了这两行指令。
四/设定GCC编译器
(1)CUDA 4.0 目前只支援到gcc 4.4,若是只有装gcc 4.5 的话,还要再装一下gcc 4.4 才能编译: sudo apt-get install gcc-4.4
(2)接着要让编译时能够使用gcc 4.4,一种方式是将系统的/usr/bin/gcc 改连到/usr/bin/gcc-4.4,/usr/bin/g++ 也一样改连到/usr/bin/ g+±4.4,或是使用update-alternative:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.5 150
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g+±4.5 150
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g+±4.4 100
接着使用update-alternatives 选择4.4 版的gcc:
sudo update-alternatives --config gcc
执行后选择gcc-4.4,再接着选择4.4 版的g++:
sudo update-alternatives --config g++
执行后选择g+±4.4
(这一步是直接照着网上所述进行,中间有提示一些失败信息,但没有影响最终的安装)
五/测试
(1)验证CUDA 安装是否正确; 在终端输入 : nvcc –V ,如果安装正确,可以显示版本号
(2)编译CUDA SDK;假设我的linux系统用户名是wu,在终端输入:
cd /home/wu/NVIDIA_GPU_Computing_SDK/C/
make
正确的话可以编译成功,这时,进入bin文件夹:
cd /home/joe/NVIDIA_GPU_Computing_SDK/bin/linux/release
./deviceQuery
如果编译正确,可查看各块计算卡的信息,但是一般情况不会这么幸运,总会有些如下提示
/usr/bin/ld: cannot find -lxxx
collect2: ld returned 1 exit status
这是提示找不到名为xxx的lib,可以直接下载安装这些lib,sudo apt-get install libxxx1-dev libxxx2-dev …libxxxn-dev
一些常用包的安装:
(Fixes “cannot find -lXi” error)
libxext-dev
libxi-dev
x11proto-xext-dev
(Fixes “cannot find -lXmu” error)
libice-dev
libsm-dev
libxt-dev
libxmu-headers
libxmu-dev
(Fixes “cannot find -lglut” error)
freeglut3-dev
libglut3-dev
Solution for cannot find -lXi -lXmu -lglut: Install missing libraries.
sudo apt-get install libxext-dev libxi-dev x11proto-xext-dev libice-dev libsm-dev libxt-dev libxmu-headers libxmu-dev freeglut3-dev libglut3-dev
Solution for cannot find -lGL: There is a broken link for libGL.so, replace it.
sudo rm /usr/lib/libGL.so; sudo ln -s /usr/lib/libGL.so.1 /usr/lib/libGL.so
若出现
/usr/bin/ld: cannot find -lcuda
collect2: ld returned 1 exit status

/usr/bin/ld: cannot find -lGL
collect2: ld returned 1 exit status
是表示找不到NVIDIA GL 或CUDA Library,若是您是使用Ubuntu 内建的驱动程式管理介面安装的NVIDIA Driver,则将/usr/lib/nvidia-current 下面的so 档件一个连结到/usr/ lib 下面即可:
sudo ln -s /usr/lib/nvidia-current/libcuda.so /usr/lib/libcuda.so
sudo ln -s /usr/lib/nvidia-current/libGL.so /usr/lib/libGL.so
总之出了错都会有些错误讯息,仔细看看错误讯息大概都可以解决的。
我安装的时候就出现了/usr/bin/ld: cannot find -lGL
collect2: ld returned 1 exit status
在 使用sudo ln -s /usr/lib/nvidia-current/libGL.so /usr/lib/libGL.so命令时又提示说/usr/lib/libGL.so已经存在,这时,可以在lib目录下随便建立一个目录将 libGL.so剪切至你新建那个目录里备份起来,然后再运行 sudo ln -s /usr/lib/nvidia-current/libGL.so /usr/lib/libGL.so命令就可以了。
随后根据手册上提示,安装完这些包后会覆盖/usr/lib/libGL.so,需要重新安装驱动,按着步骤一又装了遍驱动。
回来后发现还不行,再把步骤三设置环境变量重复一遍。
再次编译sdk,
cd /home/wu/NVIDIA_GPU_Computing_SDK/C/
make
等待了几分钟运行完毕,没有报错!
运行
cd /home/joe/NVIDIA_GPU_Computing_SDK/bin/linux/release
./deviceQuery
可以看到显卡信息
运行
cd /home/joe/NVIDIA_GPU_Computing_SDK/bin/linux/release
./bandwidthTest
可以看到testpassed。

一切OK,终于告成!时针指向凌晨一点,回家睡觉!
整个安装过程借鉴了网络上很多xd的经验,在此就不一一列举一并谢过!:handshake
注意,安装过程中如果driver,tookit或sdk某一步出现什么问题 ,哪个部分出问题就直接删除那部分的安装的文件夹进行重装

支持支持,一直想搞LINUX,虽然近期无实际安装的打算。