web-dev-qa-db-ja.com

バックライトをオフにして、LCDをオンのままにするにはどうすればよいですか?

輝度コントロールで最小輝度がゼロ以外のラップトップで輝度をゼロに設定するにはどうすればよいですか?

ソリューションはXに関係なく機能するはずです。仮想端末でも機能するはずです。

5
James Haigh

Intelチップセットを搭載したラップトップの領域では、LVDS接続パネルとeDP接続パネルの間に区分があるようです。

eDP:

_echo 4 > /sys/class/backlight/intel_backlight/bl_power
_

…バックライトをオフにする必要があります。

_echo 0 > /sys/class/backlight/intel_backlight/bl_power
_

もう一度オンにする必要があります。

LVDS:

Thinkpad X201およびX201タブレットのバックライトをsysfs経由でオフにすることはできないことを発見しました(bl_powerは何もしません。明らかに、eDP固有です)。

このページ は、Linuxカーネルのバックライトコントロールの複雑な履歴について非常に長い説明があります。 TL; DR:

i915は、v3.18以降のeDPパネル(LVDSではない)のbl_powerをサポートしています。

ただし、intel-gpu-tools)の_intel_backlight_というツールを使用して、バックライトをオフにすることができました。 。明らかにrawレジスタに書き込むため、これにはrootが必要です。

_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を介して取得できる最小値よりも低い輝度を含む、非常に正確な明るさの変更を行うことができます。

2
Wyatt8740

XWindowsから

X Windowsからアプリケーションxbacklightを使用して、画面のパーセント輝度を取得および設定できます。

現在のレベル

$ xbacklight -get
100.000000

75%に設定

$ xbacklight -set 75
$ xbacklight -get
73.333333

100%に戻す

$ xbacklight -set 100
$ xbacklight -get
100.000000

コンソールから

仮想端末で同様のことを実現するには、/sysファイルシステムを介してACPI設定を操作する必要があります。

それを暗くします

$ echo "10" | Sudo tee /sys/class/backlight/acpi_video0/brightness 
10

完全な明るさ

$ echo "15" | Sudo tee /sys/class/backlight/acpi_video0/brightness 
15

これで遊ぶ必要があります。明るさの範囲は0〜9または0〜15です。最終的には、ラップトップによって異なると思います。

これはどれも機能しませんか?

これらの2つのオプションスイートのどちらも必要ない場合は、ArchLinuxWikiのトピック「 バックライト 」を参照してください。その記事には、これを達成するために私が今まで見たすべての方法が含まれています!

参考文献

2
slm