明るさコントロールの最小輝度がゼロ以外のノートブックの明るさをゼロに設定するにはどうすればよいですか?
このソリューションはXIeに関係なく動作し、仮想端末でも動作する必要があります。
ベストアンサー1
Intelチップセットを搭載したノートブック分野では、LVDS接続パネルとeDP接続パネルの間に違いがあるようです。
電子データ処理:
echo 4 > /sys/class/backlight/intel_backlight/bl_power
...バックライトを消す必要があります。
echo 0 > /sys/class/backlight/intel_backlight/bl_power
LVDS:
sysfsを介してThinkpad X201およびX201タブレットのバックライトをオフにできないことがわかりました(bl_powerは何もしません。明らかにeDPのみ)。
このページLinuxカーネルのバックライト制御の複雑な歴史の非常に長い説明です。簡単に言うと:
i915はv3.18以降、eDPパネルのbl_powerをサポートしていますが、LVDSはサポートしていません。
しかし、intel_backlight
というツールを使ってバックライトを消すことができました。インテルGPUツール。明らかに、生のレジスタに書き込むので、ルートが必要です。
intel_backlight 0
...私のためにバックライトを消しました。再度有効にできる明るさ調整コントロールを使用して明るさを上げます。
また、キーボードで生成されたACPIイベント(私の場合はfn + spaceまたは)に接続するスクリプトを作成しましたbutton/zoom
。システムがこのACPIイベントを使用していない場合は、acpi_listenを使用して目的のイベントを見つける必要があります。システムはそうです。
fnspace-backlight
これをトリガするために、次のファイルを作成しました/etc/acpi/events
。
# Wyatt Ward
# hook for magnify acpi event (fn+space)
# toggle LCD backlight on/off
event=button/zoom
action=/etc/acpi/actions/toggle-lcd-light.sh
/etc/acpi/actions/toggle-lcd-light.sh
また、実行可能とマークされたというファイルを作成しました。これにより、以前に設定された明るさレベルを変更せずにバックライトを切り替えることができ、一時値を/brightness
.ACPIイベントがrootとして実行されるので注意してください。
#! /bin/bash
BRIGHTSAVEFILE="/brightness"
BRIGHTSYSFS="/sys/class/backlight/acpi_video0/brightness"
# is the light on or off?
INTEL_BACKLIGHT="/usr/bin/intel_backlight"
light_state=$("$INTEL_BACKLIGHT" | sed 's/current backlight value: //g'|sed 's/%//g')
echo "light: ""$light_state"
if [ "$light_state" -eq 0 ]; then
cat "$BRIGHTSAVEFILE" > "$BRIGHTSYSFS"
else
# back up current brightness level
cat "$BRIGHTSYSFS" > "$BRIGHTSAVEFILE"
# turn off backlight
"$INTEL_BACKLIGHT" 0
fi
興味深いのは、intel_backlightを少し変更して、バックライトを信じられないほど細かく制御できることです。パラメータを整数の代わりに浮動小数点として読み取るように変更し、浮動小数点算術を実行するには、数行のコードを調整するだけで、sysfs変更で得られる最小値未満の明るさを含む非常に正確な明るさの変更を実行できます。