工作原因開始使用Ubuntu.桌面環境為GNOME,不過亮度調整和桌面環境沒多大關係. 思路: 不管是GNOME還是Unity,都會嘗試自己去接管亮度調整,也就是去 /sys/class/backlight下麵去找brightness.所以說亮度無法調整大概可以歸類到兩種情況: 1.sys/clas ...
工作原因開始使用Ubuntu.桌面環境為GNOME,不過亮度調整和桌面環境沒多大關係.
思路:
不管是GNOME還是Unity,都會嘗試自己去接管亮度調整,也就是去 /sys/class/backlight下麵去找brightness.所以說亮度無法調整大概可以歸類到兩種情況:
1.sys/class/backlight/下麵是空的,多見於英偉達獨顯以及某些逗比筆記本.
2.sys/class/backlight/下麵有多個,多見於雙顯卡筆記本
既然都想調亮度了,肯定是把linux作為主力系統使用的,所以先安裝好閉源驅動,再說調整亮度的事情.
筆者的情況是Thinkpad P51,使用discreted graphic,核顯完全禁用,輸出與運算都由NVIDIA獨顯負責.故屬於情況1,這個情況下NVIDIA驅動接管了亮度調整,但預設不開啟亮度調整功能.解決的話,需要開啟NVIDIA的亮度調整handler,怎麼搞下麵再說.
總體的思路總結起來,大概就是想辦法讓/sys/class/backlight下麵只有一個brightness,並且是有效的那一個.
工作:
情況1:對於NVIDIA獨顯,加核心參數把亮度調整handler開啟就行了.
對於非NVIDIA獨顯的,在grub中的內核啟動參數加上 acpi_osi=Linux 基本可以解決問題.
情況2:這個情況考慮禁掉獨顯,或者去用bumblebee,但最終的思路同上,想辦法只留一個有效的brightness在/sys/class/backlight中,哪個有效請自行 echo 到brightness中改值測試
筆者的情況:
NVIDIA獨顯,Ubuntu 18.04,操作如下:
1.安裝至少387版本的NVIDIA閉源驅動,筆者使用390.24(亮度調整handler 從387開始作為beta性功能提供,預設關閉)
2.在moprobe.conf中給nvidia kernel模塊加參數,這個文件在哪自己用whereis找吧.把如下內容加進去
options nvidia Nvreg_EnableBacklightHandler=1
3.重新載入kernel參數,也就是讓上一步的操作生效
# update-initramfs
4.重啟電腦,亮度就應該正常了,檢查/sys/class/backlight,下麵有唯一的nvidia_0,系統出現亮度滑塊,亮度快捷鍵有效.
別的情況還是看上面的思路,雙顯卡用戶儘量去想辦法屏蔽掉獨顯,除非說你的獨顯可以單獨工作.
總的來說沒有必要使用任何亮度插件,調整起來麻煩且浪費精力.