[ 求助 ] 安装 Bumblebee 时那人源里的 DKMS 报错

我安装的是 64 位 kde 版
笔记本,双显卡

想加源安装
内核 3.7.10-1.4-desktop

sudo zypper ar -f http://download.opensuse.org/repositories/home:/Overman79:/Laptop/openSUSE_12.3/ bumblebee
sudo zypper ref
sudo zypper in dkms dkms-nvidia bbswitch-kmp-3.7.10-1.4-desktop bumblebee primus x11-video-nvidia VirtualGL

第三条语句执行到最后屏幕最后显示:

DKMS: uninstall completed.
Error! Problems with mkinitrd detected.  Automatically uninstalling this module.
DKMS: Install Failed (mkinitrd problems).  Module rolled back to built state.

这个错误是否表示命令没成功?

sudo zypper in primus-32bit, x11-video-nvidia-32bit


加源安装是否上面 4 条命令执行后就直接跳到 “收尾工作”了?

收尾工作 2. 安装相应的显卡驱动

sudo zypper in libdrm_intel1, xf86-video-intel, vaapi-intel-driver

提示:

Reading installed packages...
'vaapi-intel-driver' is already installed.
No update candidate for 'vaapi-intel-driver-1.0.19-2.1.1.x86_64'. The highest available version is already installed.
'libdrm_intel1,' not found in package names. Trying capabilities.
No provider of 'libdrm_intel1,' found.
'xf86-video-intel,' not found in package names. Trying capabilities.
No provider of 'xf86-video-intel,' found.
Resolving package dependencies...

Nothing to do.

这些提示表示这一步成功了没有?

sudo zypper in libdrm_intel1-32bit xf86-video-intel-32bit

那么 Nvidia 如下三条语句要不要执行?

sudo zypper ar -f ftp://download.nvidia.com/opensuse/12.3/ nvidia
sudo zypper ref
sudo zypper in nvidia-computeG03, nvidia-gfxG03-kmp-<kernel-flavor>,x11-video-nvidiaG03, vdpau-video

笔记本,双显卡,独显风扇狂转,温度很高,BIOS 无禁用独显设置。只想用 bumblebee 禁用独显。

  1. dkms 在 /var/lib/dkms 里进行编译,有编译日志的,比如我的 vboxhost 的日志位置:

/var/lib/dkms/vboxhost/4.2.8/3.7.10-32-desktop/x86_64/log

你把 Nvidia 的相应日志找出来,出错位置的日志贴一下。

  1. 是。

不好意思,楼上又重新写了一下,帮忙看看

  1. 直接跳到。

  2. 未成功。libdrm_intel1 和 xf86-video-intel 你都没装上。那两个包绝对不是我瞎给,它们就在主源里。所以我想知道你 zypper lr 的结果

  3. 不用。

zypper lr

输出如下:

#  | Alias                     | Name                               | Enabled | Refresh
---+---------------------------+------------------------------------+---------+--------
 1 | Packman Repository        | Packman Repository                 | Yes     | Yes    
 2 | bumblebee                 | bumblebee                          | Yes     | Yes    
 3 | libdvdcss repository      | libdvdcss repository               | Yes     | Yes    
 4 | repo-debug                | openSUSE-12.3-Debug                | No      | Yes    
 5 | repo-debug-update         | openSUSE-12.3-Update-Debug         | No      | Yes    
 6 | repo-debug-update-non-oss | openSUSE-12.3-Update-Debug-Non-Oss | No      | Yes    
 7 | repo-non-oss              | openSUSE-12.3-Non-Oss              | Yes     | Yes    
 8 | repo-oss                  | openSUSE-12.3-Oss                  | Yes     | Yes    
 9 | repo-source               | openSUSE-12.3-Source               | No      | Yes    
10 | repo-update               | openSUSE-12.3-Update               | Yes     | Yes    
11 | repo-update-non-oss       | openSUSE-12.3-Update-Non-Oss       | Yes     | Yes

zypper lr 没错。repo-oss 主源是开的。你打开 YaST 搜一下呢?

YaST 中搜 libdrm_intel1
搜到:

libdrm_intel1
libdrm_intel1-32bit

/boot 分区满了,只分了 128M,可能是这个引起的安装失败
如何删除旧内核?我先把旧内核删除先。

删除旧内核:

但是:

$ rpm -ql libdrm_intel1
/usr/lib64/libdrm_intel.so.1
/usr/lib64/libdrm_intel.so.1.0.0

它没装到 /boot 哦。试试找找别的原因,XD。

/boot 分区分小了。重新分区安装了一边,继续。一步一步在来。

开始
1)

sudo zypper ar -f http://download.opensuse.org/repositories/home:/Overman79:/Laptop/openSUSE_12.3/ bumblebee

2)

sudo zypper ref

3)

sudo zypper in dkms dkms-nvidia bbswitch-kmp-3.7.10-1.11-desktop bumblebee primus x11-video-nvidia VirtualGL

暂停

第 3) 条命令执行后最后显示:

DKMS: add completed.
+ /usr/sbin/dkms build -m nvidia -v 319.17-2.1
Error! echo
Your kernel headers for kernel 3.7.10-1.11-desktop cannot be found at
/lib/modules/3.7.10-1.11-desktop/build or /lib/modules/3.7.10-1.11-desktop/source.
+ /usr/sbin/dkms install -m nvidia -v 319.17-2.1
Error! echo
Your kernel headers for kernel 3.7.10-1.11-desktop cannot be found at
/lib/modules/3.7.10-1.11-desktop/build or /lib/modules/3.7.10-1.11-desktop/source.
+ popd

执行过程中也出现过几个警告,类似如下:

( 1/17) Installing: libturbojpeg-1.2.1-6.1
..................................[done]
Additional rpm output:
warning: /var/cache/zypp/packages/bumblebee/x86_64/libturbojpeg-1.2.1-6.1.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID e489673a: NOKEY

暂停于第 3) 条命令执行后, 等,这里无误了再继续。

Your kernel headers for kernel 3.7.10-1.11-desktop cannot be found at
/lib/modules/3.7.10-1.11-desktop/build or /lib/modules/3.7.10-1.11-desktop/source.

你没装内核的头文件,dkms 是个动态制作内核模块的工具,所以需要一些内核函数的定义文件。

sudo zypper in kernel-desktop-devel kernel-source kernel-devel

即可。

下面那个 warning 见这里:

执行

sudo zypper in kernel-desktop-devel kernel-source kernel-devel

之后,要不要重新执行第 3) 条命令?

好吧

补充执行 sudo zypper in kernel-desktop-devel kernel-source kernel-devel
#过
重新执行3) sudo zypper in dkms dkms-nvidia bbswitch-kmp-3.7.10-1.11-desktop bumblebee primus x11-video-nvidia VirtualGL
#过
4) sudo zypper in primus-32bit, x11-video-nvidia-32bit #64 位系统需要
#过
5) sudo zypper in libdrm_intel1, xf86-video-intel, vaapi-intel-driver

提示:
Loading repository data…
Reading installed packages…
‘vaapi-intel-driver’ is already installed.
No update candidate for ‘vaapi-intel-driver-1.0.19-2.1.1.x86_64’. The highest available version is already installed.
‘libdrm_intel1,’ not found in package names. Trying capabilities.
No provider of ‘libdrm_intel1,’ found.
‘xf86-video-intel,’ not found in package names. Trying capabilities.
No provider of ‘xf86-video-intel,’ found.
Resolving package dependencies…

Nothing to do.
#暂停 等解决

看你自己的 7 楼里的方法。

YaST 中搜 :libdrm_intel1
搜到:
libdrm_intel1 # 已经打勾了
libdrm_intel1-32bit # 已经打勾了

YaST 中搜:xf86-video-intel
搜到
xf86-video-intel # 已经打勾了
xf86-video-intel-32bit # 未打勾 要不要打勾?

YaST 中打勾好了 zypper 就不用管了是吗?

要。

是。它们一个是图形界面的软件管理员,一个是命令行的,功能相同

Sent from my Galaxy Note 2 using Tapatalk 2

继续
顺便问下为什么xxxx在YaST中已经打勾安装好,或未打勾但能打勾安装,用zypper命令安装却显示 :No provider of ‘xxxx’ found.

6) sudo zypper in libdrm_intel1-32bit xf86-video-intel-32bit
#过 ,提示’xf86-video-intel-32bit’ is already installed. 因为xf86-video-intel-32bit’ 在YaST用已经打勾安装。

收尾工作
su
groupadd bumblebee
usermod -a -G bumblebee,video $USER

groups

只显示 users 怎么回事?

$USER 要替换成你当前普通用户的名字。比如 marguerite

Sent from my Galaxy Note 2 using Tapatalk 2

$USER 替换了我的用户名重新执行了一次还是不行
在 YaST 的 窗口中
users 标签页当前用户行的 Groups 列中有 video ,bumblebee, users
Groups 标签页上只有 users 一个组
怎么回事?

我用
groupdel bumblebee 删除 bumblebee


groupadd bumblebee

YaST 上的 窗口的 标签页上就有了 bumblebee 这个组

但是命令行执行
groups
还是只显示一个 users 组