Bumblebee 守护进程尚未启动,或者套接字路径 /var/run/bumblebee.socket 不正确

Bumblebee 守护进程尚未启动,或者套接字路径 /var/run/bumblebee.socket 不正确

我最近在 Intel Ivy Bridge 上安装了 Ubuntu 12.04,该设备带有集成显卡和 NVidia GPU 以及 Optimus 技术,但我无法让它正常工作。我已经通过了 bumblebee 项目的解决方案,但是当我尝试使用 nvidia 卡(例如optirun firefox)运行任何程序时,我收到了以下消息:

[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?

由于 nvidia 卡不能正常工作,一些利用 X11 系统进行图形处理和绘图的软件(如 Scilab)也无法工作。

我的 BIOS 没有关于显卡的选项,并且守护进程的日志返回:

Jul 5 16:10:51 humannoise-W251ESQ-W270ESQ bumblebeed[980]: Module 'nvidia' is not found. 
Jul 5 16:10:51 humannoise-W251ESQ-W270ESQ kernel: [ 17.943272] init: bumblebeed main process (980) terminated with status 1 
Jul 5 16:10:51 humannoise-W251ESQ-W270ESQ kernel: [ 17.943288] init: bumblebeed main process ended, respawning 
Jul 5 16:10:51 humannoise-W251ESQ-W270ESQ bumblebeed[1026]: Module 'nvidia' is not found.

返回lspci -nn | grep '\[030[02]\]:'

00:02.0 VGA compatible controller [0300]: Intel Corporation Ivy Bridge Graphics Controller [8086:0166] (rev 09)
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:0de9] (rev a1)

好的,对于我得到的命令dpkg -l | grep '^ii' | grep nvidia

ii  bumblebee-nvidia                       3.0-2~preciseppa1                         nVidia Optimus support using the proprietary NVIDIA driver
ii  nvidia-current                         302.17-0ubuntu1~precise~xup1            NVIDIA binary Xorg driver, kernel module and VDPAU library
ii  nvidia-current-updates                 295.49-0ubuntu0.1                       NVIDIA binary Xorg driver, kernel module and VDPAU library
ii  nvidia-settings                        302.17-0ubuntu1~precise~xup3            Tool of configuring the NVIDIA graphics driver
ii  nvidia-settings-updates                295.33-0ubuntu1                         Tool of configuring the NVIDIA graphics driver

完全重新安装后,包括删除任何以前的 nvidia 驱动器,lsmod | grep -E 'nvidia|nouveau'返回:

nvidia              10888310  46

dmesg | grep -C3 -E 'nouveau|NVRM' 返回如下内容:

[ 1875.607283] nvidia 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[ 1875.607289] nvidia 0000:01:00.0: setting latency timer to 64
[ 1875.607293] vgaarb: device changed decodes: PCI:0000:01:00.0,olddecodes=io+mem,decodes=none:owns=none
[ 1875.607363] NVRM: loading NVIDIA UNIX x86_64 Kernel Module  302.17  Tue Jun 12 16:03:22 PDT 2012
[ 1884.830035] nvidia 0000:01:00.0: PCI INT A disabled
[ 1884.832058] bbswitch: disabling discrete graphics
[ 1884.832960] bbswitch: Result of Optimus _DSM call: 09000019

一些程序,例如 Scilab,现在在 optirun(例如>optirun scilab)调用下运行良好。

答案1

错误“无法连接到 Bumblebee 守护进程 - 它正在运行吗?”意味着 Bumblebee 守护进程拒绝/无法启动。

在您的例子中,“未找到模块‘nvidia’”。这意味着 Nvidia 内核驱动程序未正确安装。请确保安装了软件包linux-headers-generic并重新安装 nvidia 软件包:

sudo apt-get install linux-headers-generic
sudo apt-get install --reinstall nvidia-current

如果您的系统未被检测为 Optimus 笔记本电脑,并且该笔记本电脑具有两个显卡(一个 Intel 显卡和一个 Nvidia 显卡),也可能会出现这种情况。检查文件中是否/var/log/syslog有来自“bumblebeed”(Bumblebee 守护进程)的消息:

grep bumblebeed /var/log/syslog

如果消息是未找到 nVidia 显卡,退出。,则您的笔记本电脑没有 Nvidia 芯片,或者它在 BIOS 中被禁用。消息未检测到 Optimus 系统,退出。当无法找到 Intel 显卡时会显示。无论哪种情况,请检查 BIOS 设置中的“Optimus 模式 / 仅集成 / 仅独立”选项(或:“检测 Optimus”)。

该命令的输出lspci -nn | grep '\[030[02]\]:应如下所示:

00:02.0 VGA兼容控制器[0300]:英特尔公司核心处理器集成图形控制器 [8086:0046] (rev 02)
01:00.0 VGA 兼容控制器 [0300]:NVIDIA 公司GF108 [GeForce GT 425M] [10de:0df0](修订版 ff)

答案2

我在升级一些软件包后遇到了这个问题。问题似乎是由 Nvidia 内核模块从“nvidia”重命名为“nvidia_current”引起的。

如果您已nvidia-current安装该软件包,则可以通过编辑/etc/bumblebee/bumblebee.conf和设置以下值来修复此问题:

...
[bumblebeed]
Driver=nvidia
...
[driver-nvidia]
KernelDriver=nvidia_current
Module=nvidia
...

然后重启大黄蜂:

sudo service bumblebeed restart

并测试:

optirun glxgears

参考:

答案3

症状

optirun playonlinux如果使用或得到这个错误optirun -b playonlinux

[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?

那么你的 bumbleblee conf 文件就不是最新的。

自动修正 bumblebee conf 文件

您可以在终端中复制/粘贴这些命令:

#!/bin/bash

# Get the old nvidia version used by the conf file
oldNvidiaVersion=`cat /etc/bumblebee/bumblebee.conf |grep "KernelDriver=nvidia" | cut -d- -f2`

# Get the current nvidia version
nvidiaVersion=`find /lib/modules/$(uname -r) -name 'nvidia_???.ko*' | cut -d_ -f2 |cut -d. -f1`
echo "nvidiaVersion : $oldNvidiaVersion => $nvidiaVersion"

# Test the update the Bumblebee conf file
# cat /etc/bumblebee/bumblebee.conf | sed "s/$oldNvidiaVersion/$nvidiaVersion/g"

# Update the Bumblebee conf file
echo "Update /etc/bumblebee/bumblebee.conf ..."
sudo sed -i "s/$oldNvidiaVersion/$nvidiaVersion/g" /etc/bumblebee/bumblebee.conf
echo done.

# Restart bumblebeed deamon
sudo systemctl restart bumblebeed.service

选修的:如果你经常更新 nvidia 驱动,你可以把这个命令保存在一个文件中bumbleble_update_conf.sh,然后chmmod +x bumbleble_update_conf.sh执行它./bumbleble_update_conf.sh

现在optirun playonlinux或者optirun -b playonlinux应该工作!

相关内容