1. 基本配置
笔记本电脑:联想拯救者 R7000P(如果是使用 Linux,我劝大伙别买 NVIDIA 显卡的电脑,因为它不开源,它的驱动会有很多毛病。)
安装系统:Ubuntu 21.04
2. 摸索
按照正常流程,安装好系统,此时,屏幕亮度调节键 Fn+F5/F6 和 系统设置的亮度调节滑块是失效的。
网上一大堆教程....一上来就让装什么JB闭源驱动,开源驱动,我一个新手,都给我看慒B了。
我直接运行命令:
$nvidia-settings
nvidia显卡的驱动界面正常打开了,这说明nvidia显卡驱动没问题。不用瞎折腾驱动,不明白的时候,一动不如一静。
也许......也许是显卡的程序也需要配置文件吧!
它的配置文件是在
/etc/X11/
下的 xorg.conf
文件,你问我为什么会知道?我不知道,,,是下面这条命令告诉我的。此时你可以看一眼 /etc/X11/
目录,看看里面是否有 xorg.conf
文件,以此来验证我的说法。
运行下面命令,生成它的配置文件。
$sudo nvidia-xconfig
更改配置文件:
$sudo vi /etc/X11/xorg.conf
在配置文件中的 Device
代码段中加入
Option "RegistryDwords" "EnableBrightnessControl=1"
如下:
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
Option "RegistryDwords" "EnableBrightnessControl=1"
EndSection
保存退出。
说明:其实系统调节屏幕亮度的方法是去改变 /sys/class/backlight/nvidia_0/brightness 中的值来实现的,你可以看一下,此时,/sys/class/backlight/ 目录下并没有 nvidia_0 目录,只有 acpi_video0 目录。虽然 acpi_video0 目录下也有 brightness 文件,但我们不被允许去修改它。上面修改 xorg.conf 文件就是为了重启后能生成 nvidia_0 目录。
重启:reboot
说明:此时你再看一看 /sys/class/backlight/,你会惊奇的发现重启前的 acpi_video0 目录变成了 nvidia_0 目录
此时,你会发现通过 Fn+F5/F6 的方式可以调节亮度了。
3. 变故
新电脑+新手,,,一天的时间,,,我成功的把屏幕亮度调节又搞失效了!
我真NB啊!
重点是我还不知道是哪里把它给搞死了!FUCK。。。
我心疼的进入 /sys/class/backlight/nvidia_0
目录下,想找一找我亲切的 brightness
文件,想寻找一丝慰藉!让我悲痛的是:不仅 brightness
没了,就连 nvidia_0
都没了!
哎.......抽完一支烟后!我还是想问为什么!干
我又试了下 nvidia-settings
命令,发现NVIDIA显卡的设置界面已经无法正常打开了,这说明显卡的驱动崩了。
4. 找原因
因为菜,,,我没办法,只能重装了一便系统,我想找找问题到底出在了哪里。
我按部就班的开始,先用 摸索 中的方法搞好了屏幕亮度调节,然后是更改到清华源,我习惯性的运行 sudo apt update
更新软件源,再习惯性的输入 sudo apt upgrade
更新软件,更新软件,,,等等!更新软件!?
我按下回车键,它给了我一大堆提示,说是有哪些哪些软件会被安装,我赫然看到 linux-image-5.11.0-31-generic
就在安装之列!不对吧!这TM是内核啊!你这是要给我升级内核!?
我又看了看自己已经安装的内核:
$dpkg --get-selections linux-image*
linux-image-5.11.0-16-generic install
linux-image-generic-hwe-20.04 install
至此,我才明白...让nvidia驱动失效的是更新了内核。
为了一解疑云...我决定只升级内核试试:
先看看,我确定了 /sys/class/backlight/nvidia_0/
目录是在的。
好,升级内核(也许这并不是升级内核的正确方式吧!请包含一下一个新手!我只是想找到问题的原因):
$sudo apt install linux-image-5.11.0-31-generic
重启:reboot
测试非常的成功,屏幕亮度调节功能不出意外的失效了:Fn+F5/F6失效,设置里的亮度调节滑块也失效了,此时我想去试试修改/sys/class/backlight/nvidia_0/brightness中的值...MD,/nvidia_0文件夹直接没了,只有/acpi_video0文件夹...但该文件夹中的brightness不能修改。除了屏幕亮度不能调节外,网卡也失效了。
5. 总结
好了兄弟们,我觉得问题差不多了,原因就在于无意中使用了 sudo apt upgrade 命令,而该命令又升级了内核,nvidia显卡驱动不适应新的内核,连运行nvidia-setting命令都出错了。
解决办法嘛......先把系统的自动更新给禁了,去设置窗口里找找。
再禁止apt upgrade更新ubuntu系统内核:
使用 dpkg --get-selections linux-image*
命令查询已经安装内核的列表:
$ dpkg --get-selections linux-im*
linux-image-5.11.0-16-generic install
linux-image-generic-hwe-20.04 install
$ uname -r
5.11.0-16-generic
正在使用的内核是 linux-image-5.11.0-16-generic
。
将正在使用的内核软件包设置为hold状态
$su
#echo "linux-image-generic-hwe-20.04 hold" | dpkg --set-selections
重要的是不要用 sudo apt upgrade
命令更新,用 sudo apt install
定点更新。
总觉得这个解决办法欠妥!!!先这样吧,,,后面有好的办法我再来更新。
本来还想再测试一下降内核后,笔记本是否还能恢复正常,但是工作来了,只好作罢!
摸鱼之际写了这篇文章!希望对后来者有所帮助。