1. 程式人生 > >【精簡版】Linux(Ubuntu)無法調節亮度的終極解決方案(還原Fn組合鍵調節方法

【精簡版】Linux(Ubuntu)無法調節亮度的終極解決方案(還原Fn組合鍵調節方法

完整版:https://blog.csdn.net/weixin_43599336/article/details/85981442

寫在前面

此方法僅適用於只含Intel整合顯示卡的行動式筆記本計算機!!
請先嚐試https://blog.csdn.net/u013991521/article/details/49562365

的方案,如果失敗,再使用這個
在這裡插入圖片描述
原先的亮度調節毫無作用

正文

請先安裝screen,執行

sudo apt-get install screen
# 在etc目錄建立“auto_run”資料夾以及兩個檔案
cd /etc/
sudo mkdir auto_run
sudo touch auto_run.sh
sudo touch change.py

開啟auto_run.sh檔案

sudo nano /etc/auto_run/auto_run.sh

加入以下片段

screen_name="auto_run"

screen -dmS $screen_name
#以下路徑為python程式的路徑
cmd="python3 /etc/auto_run/change.py";

screen -x -S $screen_name -p 0 -X stuff "$cmd"  

screen -x -S $screen_name -p 0 -X stuff '\n'   

按ctrl+X退出,y儲存

開啟change.py

sudo nano /etc/auto_run/change.py

加入

import time
while True:
	# 先讀取Fn組合鍵儲存的檔案
	acpi_l = open("/sys/class/backlight/acpi_video0/brightness")
	# 簡單的線性調整,偏置值+20 為了在調至最暗時不至於黑屏 480權重請自己測試,不同機型可能不一樣
	brightness= str(int(acpi_l.read()) * 480 + 20)
	acpi_l.close()
	
	# 以“w”模式開啟,方便清空
	intel_l = open("/sys/class/backlight/intel_backlight/brightness","w"
) intel_l.write(brightness) intel_l.close() # 等待0.5s,在不過多佔用系統資源的情況下獲得較好的體驗 time.sleep(0.5)

注意,不同機型的最大亮度值可能會不一樣
檢視方法:

sudo nano /sys/class/backlight/intel_backlight/brightness

在這裡插入圖片描述
顯示的數字即為最大亮度數字,然後自己迴歸一下,建一個函式即可(0為黑屏)
acpi_l.read() 的值從0 – 10。

按ctrl+X退出,y儲存

在/etc/rc.local中加入

sudo nano /etc/rc.local

如果沒找到/etc/rc.local或為空檔案,請參考https://blog.csdn.net/weixin_43599336/article/details/85970601

sudo chmod -R 777 /sys/class/backlight/intel_backlight/brightness
# 剛剛的sh檔案路徑
sh /etc/auto_run/auto_run.sh

按ctrl+X退出,y儲存
重啟

sudo reboot

等待啟動完成後即可測試!
在這裡插入圖片描述
左圖是正常的一格亮度,右圖實為滿格。
從反光可以看出,亮度調節已正常