【精簡版】Linux(Ubuntu)無法調節亮度的終極解決方案(還原Fn組合鍵調節方法
阿新 • • 發佈:2019-01-07
完整版: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
等待啟動完成後即可測試!
左圖是正常的一格亮度,右圖實為滿格。
從反光可以看出,亮度調節已正常