バックライトを制御するには、次のことを行う必要があります。
Sudo setpci -s 00:02.1 F4.B=x
これは次のように読むことができます:
ID 00:02.1のPCIデバイスの場合、レジスタF4(バイトのみ)をxに設定します。
Xに必要な値を把握するために、現在の値を読み取りたいと思います(私が書いているスクリプトで)。どうすればよいですか?
初期の仕事:
これはlspci
のドメインのようです。私は試した
Sudo lspci -x -s 00:02.1
しかし、これでは十分な範囲が得られません(レジスタ/アドレスF4に到達しません)。ただし、-xxx
コマンドラインで実行できます。これにより、F4のバイトを確認できるダンプが得られます。これは、setpci
コマンドで操作できることを確認しました。ただし、マニュアルには次のように書かれています。
-xxx Show hexadecimal dump of the whole PCI configuration space. It is available only to root as several PCI
devices crash when you try to read some parts of the config space (this behavior probably doesn't violate the
PCI standard, but it's at least very stupid). However, such devices are rare, so you needn't worry much.
したがって、rootとして自動的に実行されるプログラムには入れたくありません。レジスタF4の値を読み取る方法はありますか? getpci
プログラム? setpci
フラグ?私が逃したいくつかの特別なlspci
フラグ?
(環境は、SamsungN140ネットブック上のUbuntuNetbook Remix 9.04(karmic)(32ビット)です)
プログラムsetpci
が必要です。このフォーマットはあなたが望むことをするように見えます:
setpci -s 00:02.1 F4.B
見る - man setpci
:バージョンとの唯一の違いは、レジスタを設定しようとしていることです。そのため、レジスタに名前を付けて値を割り当てます( "F4.B=x
")。ここでは、名前を付けるだけです。値を割り当てないでください。
マンページから:
オペレーション
構成レジスタの値を照会するには、名前を付けるだけです(名前を入力するか、レジスタの幅をバイト、ワード、またはロングワードとして指定するオプションの.B、.W、または.Lサフィックスを付けてレジスタアドレスを入力します)。
レジスターを設定するには、reg = valuesを書き込みます。ここで、regはレジスターの照会に使用するものと同じであり、valuesは、指定されたアドレスから開始して書き込む値のコンマ区切りリストです。書き込まれる各値は、16進数、またはマスク内の2進数に対応するビットをビット内の対応するビットの値に変更するビット:マスクペアとして指定できます。
ディスプレイが新しいintel_backlightインターフェースを使用している場合、これは機能しないことを考慮に入れてください(この日付までは、gnome電源マネージャーのみが管理できます)。
これを読んでください: https://askubuntu.com/questions/57236/unable-to-change-brightness-in-a-lenovo-laptop/81389#81389 そしてリストされているリンク特に私の投稿(アルバロという名前で)