Ubuntu 12.04下升级Nvidia后Bumblebee无法工作解决


Ubuntu 12.04下解决nvidia-current升级后Module 'nvidia-current' is not found造成Bumblebee无法工作的问题。

环境

系统:Ubuntu 12.04
内核:3.2.0-29-generic #46-Ubuntu x86_64 x86_64 x86_64 GNU/Linux

前天升级了nvidia(ppa源里的官方驱动),今天突然发现bumblebee出问题了。表现是执行 optirun会出现下面的提示

[ERROR]The Bumblebee daemon has not been started yet or the socket path /var/run/bumblebee.socket was incorrect.
[ERROR]Could not connect to bumblebee daemon - is it running?

更奇怪的Ubuntu只找到了集成的intel显卡,nvidia 独显没有找到

www.bkjia.com @linux:~$ sudo lspci | grep -i vga
[sudo] password for jim:
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
估计可能和显卡驱动升级有关
于是我重装了nvidia-current nvidia-settings nvidia-settings-updates三个包

重启电脑后再执行lspci

www.bkjia.com @linux:~$ sudo lspci | grep -i vga
[sudo] password for jim:
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
01:00.0 VGA compatible controller: NVIDIA Corporation GF108 [GeForce GT 540M] (rev 0a)
www.bkjia.com @linux:~$

好一些了,起码nvidia显卡出来了。

不过独显的状态不对,应该是rev ff(停用),而不是是rev 0a(启用),这说明bumblebee没有工作。

查看了一下和Bumblebee有关的系统日志

www.bkjia.com @linux:~$ cat /var/log/syslog | grep -i bumblebee
....
Aug 18 23:42:27 jim-laptop bumblebeed[16703]: Module 'nvidia-current' is not found.
Aug 18 23:42:27 jim-laptop kernel: [ 3649.159504] init: bumblebeed main process (16703) terminated with status 1
Aug 18 23:42:27 jim-laptop kernel: [ 3649.159528] init: bumblebeed main process ended, respawning
....

找到关键问题了,因为nvidia-current模块没有找到

进入到 /lib/modules/3.2.0-29-generic目录执行find'命令

www.bkjia.com @linux:/lib/modules/3.2.0-29-generic$ sudo find ./ -name "nvidia*"
./kernel/drivers/net/ethernet/nvidia
./kernel/drivers/video/nvidia
./kernel/drivers/video/nvidia/nvidiafb.ko
./updates/dkms/nvidia.ko
./updates/dkms/nvidia_current_updates.ko
www.bkjia.com @linux:/lib/modules/3.2.0-29-generic$
有一个nvidia.ko和一个nvidia_current_updates.ko,就是没有nvidia-current.ko,难道是最新版的nvidia-current驱动修改了模块名??

我把/etc/bumblebee/bumblebee.conf修改了一下,把其中[driver-nvidia]部分的

KernelDriver=nvidia-current
改成
KernelDriver=nvidia

改完重启,问题就解决了。

相关内容