web-dev-qa-db-ja.com

ディスプレイのバックライトを手動で制御する

Debianを新しくインストールした後、「xbacklight」ツールを使用してディスプレイの明るさを制御できません(「出力にバ​​ックライトプロパティがありません」)。これは奇妙なことに(OSを再インストールする前の同じマシンで非常にうまく機能したときだったため)、手動でバックライトコントロールを処理する方法を知りたいと思います。

echo 700 | Sudo tee /sys/class/backlight/intel_backlight/brightness」のようなファイルを介してこれを管理するためのヒントを見つけました。これが機能している間、私は次の2つのトピックについて心配しています。

  1. これは安全ですか?(このように誤って高すぎる値を入力してハードウェアにブレーキをかけることはできますか?)
  2. より快適な方法ですそれを行うには? (そのためにxbacklightなどのツールをどのように使用できますか?)
4
Marc M
  1. はい、完全に安全です。 /sys(または/proc)にエコーすると、カーネル構成が直接上書きされず、入力を検証するカーネルユーザー空間関数が実行されます。

    xrandr/xbacklightは実際には(私の知る限り)かなりのパフォーマンスを発揮します。

  2. xbacklight/sys/class/backlightで間違ったバックライトディレクトリを見つけているだけだと私は確信していたため、そこには複数のディレクトリがあると思いますよね?

    100%よくわかりませんが

    xrandr/xbacklightは、/sys/class/backlight/acpi_video0(現在のドライバーが作成しているもの)のようなものを試す前にacpiディレクトリ(例/sys/class/backlight/intel_backlight/)を選択します/ using)。

    (私は100%確かではありませんが、まともなものを見つけました Arch wikiのリファレンスで、多かれ少なかれ確認しています

    xbacklightが正しいディレクトリを使用するように強制するには、次のセクションを使用してxorg.confに以下を追加します(または*.conf内の/etc/X11/xorg.conf.d/ファイルをドロップします)。

    Section "Device"
      Identifier  "Card0"
      Driver      "intel"
      Option      "Backlight" " intel_backlight"
    EndSection
    

    (免責事項:Intelカードがないのでテストしていません。このセクションが機能しない場合は、"Card0""Screen0"に置き換えてみてください)

4
grochmal

高すぎる値を入力してハードウェアを損傷するリスクは、システムをそのレベルで制御できないため、不可能です。 /sys/class/backlight/acpi_video0/brightnessファイルに入力した値は、ハードウェアのファームウェアによって対応するバックライトの輝度値に解決され、その値が実際に画面のバックライトの輝度を制御します。また、ディレクトリ/sysおよび/procの内容は、実行時にカーネルによって生成されます。これを確認するには、別のLinuxシステムのファイルシステムをマウントし、/sysおよび/procの内容を一覧表示します。システムがダウンしている場合、これらのディレクトリには何も表示されません。

また、/sys/class/backlight/acpi_video0/brightnessファイルに高すぎる値を書き込むという煩わしさを自分に引き起こさないようにするために、/sys/class/backlight/acpi_video0/max_brightnessファイルを読み取ることにより、可能な最大値を確認できます。

1
endrias