历经了好几天的研究、无数的尝试和搜寻
终于成功把NVidia driver & CUDA toolkit装好了
目标是让Intel HD 4000负责X Server,显卡只用在特殊运算
分享我的方法给大家
前面遇过的问题懒得看的可以直接跳到最后看成功安装的方法
有错误的观念还请高手帮忙订正 感谢
A. 环境
-NB: Gigabyte U2442D
-OS: Debian 8.5 (kernel: 4.6 from jessie-backports)
-Video Card: Intel HD 4000 + NVidia GT730m
B. 遇过的问题
1. 傻傻的直接用apt-get install nvidia-current安装,重开之后X Server挂掉:
去看/var/log/Xorg.0.log,找到error message如下:
failed to initialize glx extension (compatible nvidia x driver not found)
这问题的原因其实是NVidia Driver在装的时候把GLX相关的lib盖掉了,例如libglx.so
仔细看log就会发现很奇怪
X Server在启动的时候,glx这边怎么会去用到NVidia的driver
理论上是要让Intel HD 4000全权负责X Server,NV卡只有特别运算的时候要用
2. 傻傻的直接用apt-get install nvidia-cuda-toolkit安装driver+CUDA:
发生同上的问题
3. 如果装完NVidia driver之后没有重开,开启NVidia X Server的程式的话有错误:
错误内容是说没有弄Xorg.conf,叫你跑nvidia-xconfig
这个不用理他,因为目标是让Intel Graphics去负责X Server
NVidia根本完全不应该参与到这部分
4. 不过一开始我不知道,所以还是照一些网络说明设定了Xorg.conf:
看log,error message变成no device detected,后面就没有深究了
5. 用apt-get install bumblebee-nvidia安装:
如果你没有要用CUDA的话,一般笔电照这个方式安装应该就可以了
这个套件会顺便帮你装好NVidia driver,然后一般时候把NVidia独显关掉
理论上应该是会有明显的省电,要用独显的话要用optirun指令
可是!!!
我后来装完CUDA Toolkit,测试跑CUDA程式的时候,竟然不能用
所以我就放弃这个方法了,没有深究
czm大好像是用这个方法成功的,可以参考他的文章
C. 最后成功的方法
1. Ctrl+Alt+F1切到command line interface
2. 关掉X Server (sudo service gdm3/lightdm/看你用哪种桌面 stop)
3. blacklist掉nouveau,不然NVidia driver不给安装:
在/etc/modprobe.d/下新增一个档案: blacklist-nouveau.conf,内容如下:
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
4. sudo update-initramfs -u 这行用意不清楚,没有认真查XDDD
5. 下载NVidia official site上面的.run档来安装
6. 关键的一步,后面加flag避免又装到奇怪的glx library
如果你只要装driver:
./Driver安装档名.run