OS: Ubuntu - 18.04 LTS
/sys/class/backlight/
ディレクトリに 2 つのシンボリック リンクがあります。
acpi_video0 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0/
nv_backlight -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/nv_backlight/
明るさのホットキーは の値を変更しますacpi_video0/brightness
。ただし、実際にディスプレイの明るさが変わるわけではありません。
ただし、値を手動で変更すると、nv_backlight/brightness
実際にはディスプレイの明るさが変わります。
したがって、ホットキーをnv_backlight
の代わりに にリンクするとacpi_video0
問題は解決しますが、その方法がわかりません。
編集: 明るさ調整用の Fn キー (ホットキー) を操作すると、ポップアップ スライダーの進行状況バーが画面に表示されます。
編集:
入力:
cat /sys/class/backlight/nv_backlight/max_brightness
出力:
100
入力:
cat /sys/class/backlight/nv_backlight/actual_brightness
出力(この値は自動的に同じ値に変更されますが、私は手動で入力しました
/sys/class/backlight/nv_backlight/brightness
):10
入力:
cat /sys/class/backlight/acpi_video0/max_brightness
出力:
15
答え1
Bashスクリプトredirect-brightness
問題は、明るさを上げる/下げるファンクションキーが/sys/class/backlight/acpi_video0/brightness
、/sys/class/backlight/nv_backlight/brightness
当初の要求は、ファンクション キーを傍受し、それを使用してnv_backlight
ドライバーを制御することでした。これの問題は次のとおりです。
- トリッキーな
udev
スクリプト - 複雑な Python スクリプトなしで明るさを表示するポップアップ通知スライダーはありません。
解決策は、 を使用しinotify
て の変化を監視することですacpi_video0
。次に、明るさのパーセンテージを計算し、同じパーセンテージを に適用しますnv_backlight
。
以下の bash スクリプトでは、以下を設定する必要があります。
WatchDriver="/sys/class/backlight/acpi_video0/brightness"
PatchDriver="/sys/class/backlight/nv_backlight/brightness"
スクリプトを配置し/usr/local/bin
、以下を使用して実行可能にします。
chmod a+x /usr/local/bin/redirect-brightness
まず、コマンドラインからスクリプトを実行します。
redirect-brightness -l
問題がある場合は、次を使用してログ ファイルを確認してください。
cat /tmp/redirect-brightness.log
すべてがうまくいけば、redirect-brightness
スタートアップ アプリケーションに追加します。
redirect-brightness
bashスクリプト
#!/bin/bash
# NAME: redirect-brightness
# PATH: /usr/local/bin
# DESC: Redirect to correct driver when Ubuntu is adjusting the wrong
# /sys/class/DRIVER_NAME/brightness
# DATE: June 13, 2018. Modified June 14, 2018.
# NOTE: Written for Ubuntu question:
# https://askubuntu.com/q/1045624/307523
WatchDriver="/sys/class/backlight/intel_backlight"
PatchDriver="/sys/class/backlight/intel_backlight"
# Must be running as sudo
if [[ $(id -u) != 0 ]]; then
echo >&2 "Root access required. Use: 'sudo redirect-brightness'"
exit 1
fi
# inotifywait required
type inotifywait >/dev/null 2>&1 || \
{ echo >&2 "'inotifywait' required but it's not installed. Aborting."; \
echo >&2 "Use 'sudo apt install inotify-tools' to install it.'"; \
exit 1; }
# Was right watch driver directory name setup correctly?
if [[ ! -d $WatchDriver ]]; then
echo >&2 "Watch directory: '$WatchDriver'"; \
echo >&2 "does not exist. Did you spell it correctly? Aborting.'"; \
exit 1;
fi
# Was right patch driver directory name setup correctly?
if [[ ! -d $PatchDriver ]]; then
echo >&2 "Redirect to directory: '$PatchDriver'"; \
echo >&2 "does not exist. Did you spell it correctly? Aborting.'"; \
exit 1;
fi
# Get maximum brightness values
WatchMax=$(cat $WatchDriver/max_brightness)
PatchMax=$(cat $PatchDriver/max_brightness)
# PARM: 1="-l" or "--log-file" then write each step to log file.
fLogFile=false
if [[ $1 == "-l" ]] || [[ $1 == "--log-file" ]]; then
fLogFile=true
LogFile=/tmp/redirect-brightness.log
echo redirect-brightness LOG FILE > $LogFile
echo WatchMax: $WatchMax PatchMax: $PatchMax >> $LogFile
fi
SetBrightness () {
# Calculate watch current percentage
WatchAct=$(cat $WatchDriver/actual_brightness)
WatchPer=$(( WatchAct * 100 / WatchMax ))
[[ $fLogFile == true ]] && echo WatchAct: $WatchAct WatchPer: $WatchPer >> $LogFile
# Reverse engineer patch brightness to set
PatchAct=$(( PatchMax * WatchPer / 100 ))
echo $PatchAct | sudo tee $PatchDriver/brightness
[[ $fLogFile == true ]] && echo PatchAct: $PatchAct >> $LogFile
}
# When machine boots, set brightness to last saved value
SetBrightness
# Wait forever for user to press Fn keys adjusting brightness up/down.
while (true); do
inotifywait --event modify $WatchDriver/actual_brightness
[[ $fLogFile == true ]] && \
echo "Processing modify event in $WatchDriver/actual_brightness" >> $LogFile
SetBrightness
done
元の回答 2018 年 6 月 11 日。
進行中の回答
Ubuntu 18.04 で同様の問題を抱えている nVidia ユーザーは多数います。
- NVIDIA GTX 1060 Mobile を搭載した Ubuntu 18.04 の MSI GT72VR ラップトップの明るさが機能しない
- コンピュータがサスペンドから復帰せず、明るさを変更できませんでした
- Nvidia ドライバーを使用すると明るさコントロールが失われますが、X.Org を使用すると再び表示されます。
- Xubuntu 18.04: Fn 輝度キーを /sys/class/backlight/nv_backlight/ で動作させる
- Lubuntuでバックライトドライバーを変更する方法
- NVIDIA GTX 1060 Mobile を搭載した Ubuntu 18.04 の MSI GT72VR ラップトップの明るさが機能しない
- 明るさコントロールとビデオ再生に関する NVIDIA ディスプレイの問題
- 画面の明るさを変更できません
- ノートパソコンの画面の明るさはボタンやスライダーでは調整できません。編集
スクリプトを書く前に
/acpi_video への変更を模倣し、/nv_backlight にデータを入力するスクリプトを書くことはできますが、その前にこれを試してください:
- 編集
/etc/default/grub
。 - 探す
quiet splash
- スプラッシュの背後に追加:
acpi_backlight=vendor
- ファイルを保存する
- 走る
sudo update-grub
この回答によれば、それはあなたにとってうまくいくはずです:Xubuntu 18.04: Fn 輝度キーを /sys/class/backlight/nv_backlight/ で動作させる
ウェイランド
Wayland では明るさは機能しません。使用していないことを確認してください。参照:ノートパソコンの画面の明るさはボタンやスライダーでは調整できません。編集