在 Ubuntu 14.04.3 上安装 bbswitch 时出现问题

在 Ubuntu 14.04.3 上安装 bbswitch 时出现问题

我安装了 Nvidia Optimus 显卡,并且安装了 Nvidia 驱动程序,它适用于我的 Intel 卡,但我无法切换到 Nvidia 卡。这是因为 bbswitch-dkms 不会在通过 apt-get 或源代码安装时构建。

我的系统

  • Ubuntu 14.04.3 LTS
  • NVIDIA 公司 GF119M [GeForce GT 520M]
  • Linux-映像-3.19.0-42-通用
  • Linux 标头-3.19.0-42-通用
  • Linux-image-extra-3.19.0-42-通用
  • dkms:2.2.0.3
  • gcc(Ubuntu 4.8.4-2ubuntu1~14.04)4.8.4

使用的安装命令:

sudo apt-get install bumblebee bumblebee-nvidia primus nvidia-352

上述软件包的依赖项包括 bbswitch-dkms。尝试安装 bbswitch 时出现以下错误:

Unpacking bbswitch-dkms (0.7-2ubuntu1) over (0.7-2ubuntu1) ...
Setting up bbswitch-dkms (0.7-2ubuntu1) ...
Loading new bbswitch-0.7 DKMS files...
Building only for 3.19.0-42-generic
Building initial module for 3.19.0-42-generic
Error! Bad return status for module build on kernel: 3.19.0-42-generic (x86_64)
Consult /var/lib/dkms/bbswitch/0.7/build/make.log for more information.

make.log的内容为:

DKMS make.log for bbswitch-0.7 for kernel 3.19.0-42-generic (x86_64)
lör  9 jan 2016 15:37:02 CET
make -C /lib/modules/3.19.0-42-generic/build M="$(pwd)" modules
make[1]: Entering directory `/usr/src/linux-headers-3.19.0-42-generic'
arch/x86/Makefile:114: stack-protector enabled but compiler support broken
  CC [M]  /var/lib/dkms/bbswitch/0.7/build/bbswitch.o
/var/lib/dkms/bbswitch/0.7/build/bbswitch.c: In function ‘is_card_disabled’:
/var/lib/dkms/bbswitch/0.7/build/bbswitch.c:236:1: internal compiler error: Bus error
 }
 ^

这似乎是主要问题:

make[1]: Entering directory `/usr/src/linux-headers-3.19.0-42-generic'
arch/x86/Makefile:114: stack-protector enabled but compiler support broken

我已经安装了内核头文件,因此所有构建包都应该已经安装。

有人遇到过这个问题或知道任何解决办法吗?

谢谢你!

更新 1

安装和构建 bbswitch-dkms 期间,系统日志中会出现以下日志条目:

kernel: [  235.068506] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
kernel: [  235.071273] ata1.00: irq_stat 0x40000001
kernel: [  235.074011] ata1.00: failed command: READ DMA
kernel: [  235.076740] ata1.00: cmd c8/00:08:a8:95:07/00:00:00:00:00/e0 tag 27 dma 4096 in
kernel: [  235.076740]          res 51/40:00:a8:95:07/00:00:00:00:00/00 Emask 0x9 (media error)
kernel: [  235.082207] ata1.00: status: { DRDY ERR }
kernel: [  235.084957] ata1.00: error: { UNC }
kernel: [  235.119639] ata1.00: configured for UDMA/133
kernel: [  235.119667] sd 0:0:0:0: [sda] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
kernel: [  235.119674] sd 0:0:0:0: [sda] Sense Key : Medium Error [current] [descriptor]
kernel: [  235.119680] sd 0:0:0:0: [sda] Add. Sense: Unrecovered read error - auto reallocate failed
kernel: [  235.119684] sd 0:0:0:0: [sda] CDB: 
kernel: [  235.119687] Read(10): 28 00 00 07 95 a8 00 00 08 00
kernel: [  235.119704] blk_update_request: I/O error, dev sda, sector 497064
kernel: [  235.122090] ata1: EH complete

更新 2

Launchpad 问题:

https://answers.launchpad.net/ubuntu/+source/bbswitch/+question/280808

启动板错误报告:

https://bugs.launchpad.net/ubuntu/+source/bbswitch/+bug/1532538

解决了

这个问题已经解决了。请参阅启动板问题以获取解决方案。

答案1

使用 nvidia-prime 而不是 bumblebee 在集成显卡和专用显卡之间切换。

卸载所有 NVIDIA 软件和 bumblebee。

打开终端并执行:

sudo apt-get purge nvidia* bumblebee  
sudo reboot  

重新安装 NVIDIA 驱动程序和 nvidia-prime。

打开终端并执行:

sudo apt-get update
sudo apt-get install nvidia-352 nvidia-prime
sudo reboot  

打开 NVIDIA X 服务器设置 - PRIME 配置文件以在两个图形适配器之间切换。

更新1:

或者从专有 GPU 驱动程序 PPA 安装最新的官方 NVIDIA 驱动程序 358。

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-358 nvidia-prime
sudo reboot  

更新2:

可能存在兼容性问题或与开源 nouveau 驱动程序存在一些干扰。
从停用 nouveau 驱动程序的虚拟控制台执行 NVIDIA 驱动程序安装。

在 GRUB 启动菜单中突出显示 Ubuntu 条目并按下E键。
添加nouveau.modeset=0到 linux 行的末尾 - 按下F10以启动。
在登录屏幕上按++ Ctrl-输入用户名和密码... 执行命令...AltF1

相关内容