我安装了 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