不知道何时起,我的老 Dell 笔记本上的 Bumblebee service 就停止工作了。想要跑个 `optirun glxgears -info` 居然提示说 Bumblebee 服务没有启动……
找到以前的blog以及Arch的wiki仔细研究了一下,发现大概是曾经安装的nvidia驱动在某次系统更新后就出问题了。按照 [这个人的说法](https://www.reddit.com/r/archlinux/comments/a5nw93/cant_find_nvidia_module_when_doing_modprobe_nvidia/),我又回到wiki里面仔细对比了自己的设备型号,发现貌似不应该安装 `nvidia-390xx`:
> For GeForce 400/500/600 series cards [NVCx and NVDx] from around 2010-2011,
> install the nvidia-390xx-dkmsAUR package.
于是抱着试一试的心态,重新安装了这个包,中间自然将原本的那个 package 给删除了:
➜ ~ yay -S nvidia-390xx-dkms
:: Checking for conflicts...
:: Checking for inner conflicts...
==> Package conflicts found:
-> Installing nvidia-390xx-dkms will remove: nvidia-390xx
==> Conflicting packages will have to be confirmed manually
[Repo: 1] dkms-2.8.1-3
[Aur: 1] nvidia-390xx-390.132-37 (nvidia-390xx-dkms)
:: Downloaded PKGBUILD (1/1): nvidia-390xx (nvidia-390xx-dkms)
1 nvidia-390xx (nvidia-390xx-dkms) (Build Files Exist)
==> Diffs to show?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> I
:: Parsing SRCINFO (1/1): nvidia-390xx (nvidia-390xx-dkms)
.......
(1/3) Arming ConditionNeedsUpdate...
(2/3) Updating module dependencies...
(3/3) Install DKMS modules
==> dkms install nvidia/390.132 -k 5.6.15-arch1-1
重启系统后一试,dkms 果然有效:
➜ ~ sudo dkms status
nvidia, 390.132, 5.6.15-arch1-1, x86_64: installed
Bumblebee 服务也回来了!
➜ ~ sudo systemctl status bumblebeed.service
● bumblebeed.service - Bumblebee C Daemon
Loaded: loaded (/usr/lib/systemd/system/bumblebeed.service; enabled; vendor preset>
Active: active (running) since Sat 2020-06-06 14:43:55 AEST; 1h 1min ago
Main PID: 430 (bumblebeed)
Tasks: 1 (limit: 9472)
Memory: 34.3M
CGroup: /system.slice/bumblebeed.service
└─430 /usr/bin/bumblebeed
测试渲染帧率的程序也可以在独显下面跑了:
➜ ~ optirun glxgears -info
GL_RENDERER = GeForce GT 520M/PCIe/SSE2
GL_VERSION = 4.6.0 NVIDIA 390.132
GL_VENDOR = NVIDIA Corporation
GL_EXTENSIONS = GL_AMD_multi_draw_indirect GL_ARB_arrays_of_arrays ...
7397 frames in 5.0 seconds = 1479.394 FPS
7270 frames in 5.0 seconds = 1453.818 FPS
之后参考 Wiki 又添加了[一个 hook 文件](https://wiki.archlinux.org/index.php/NVIDIA#Pacman_hook),以确保今后 NVIDIA driver 更新或是 Linux 更新都会正确的更新 `initramfs` 。
还需要继续研究的问题是,为什么外界显示器之可以接在 HDMI 口上,如果换到 Display Port 就一点都没有反应。
评论