DDCを使用して外部モニタのバックライトを調整する簡単な方法を探しています。good-ddc-tool --monitor 0 --backlight 100
単一のモニターを接続すると(通常の場合)、これは複雑ではなくうまく機能します。
頑張ったこの質問に対する答え成功しませんでした:
最初の回答(ddccontrol)
$ sudo ddccontrol -p
[...]
Probing for available monitors........
Detected monitors :
No monitor supporting DDC/CI available.
If your graphics card need it, please check all the required kernel modules are loaded (i2c-dev, and your framebuffer driver).
$ sudo modprobe i2c-dev
$ sudo lsmod | grep i2c
i2c_nforce2 20480 0
...失敗する?
2番目の答え(ddcutil)
クイックテスト:
$ sudo ddcutil capabilities
Display not found
...失敗する。
推測する:
$ sudo ddcutil detect
Invalid display
I2C bus: /dev/i2c-4
EDID synopsis:
Mfg id: DEL
Model: DELL 2209WA
Serial number: [redacted]
Manufacture year: 2009
EDID version: 1.3
DDC communication failed
間違った表示ですか?まあ、それは正しいメーカー、モデル、製造年です。 「DDC通信失敗」の場合、それをどのように表示するのかわかりません。
モニターとケーブルが他のシステムの他のオペレーティングシステムでバックライトを完全に調整できることを知っており、Geforce GTX 550にネイティブDDCサポートがないという考えは無理に感じられます。ディスプレイモデルを正常に読んだのでそうではないようです。
3番目の答え(xrandr)
クイック(推測)テスト:
$ xrandr --output HDMI2 --brightness 0.6
warning: output HDMI2 not found; ignoring
xrandr: Need crtc to set gamma on.
$ xrandr --output HDMI1 --brightness 0.6
warning: output HDMI1 not found; ignoring
xrandr: Need crtc to set gamma on.
...失敗する。とHDMI0
同じですHDMI
。
推測する:
$ xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x279 cap: 0x1, Source Output crtcs: 2 outputs: 4 associated providers: 0 name:NVIDIA-0
私はこれが私に何を言うのか本当に知らず、「出力」をリストする方法が見つからないので、推測します。
修正する
私が見つけたNVIDIAカード用ddcutilの特別ガイドラインしかし、2つの提案の最初に記載されているファイルが見つかりません。
この変更を実行するために使用されるファイルは、デプロイメントディレクトリdata/etc/X11/xorg.conf.dにある90-nvidia_i2c.confです。
私はXubuntuを使用しています。私はどこを見ていることを示唆していますか?
リンクの2番目の提案の結果は、以下の回答で確認できます。
アップデート2
ddcutil
MacBook / Intel HD Graphics / Ubuntuで同じモニタを試してみましたが、問題なく実行されました。
これは、GeForce GTX 550またはそのドライバが問題である可能性が最も高いことを意味すると思います。
答え1
私は開発者ですddutil。
モニターにフリンジI2C実装があるようです。 Nvidiaオプションは、ドライバがI2C仕様で定義されている最低バス速度である100 kbpsを使用するようにします。残念ながら、ドライバーに低いバス速度を使用するように指示する方法はありません。
DDCデータエラーを表示するには、この--ddc
オプションを使用してください。累積エラー数と操作を再試行する回数を表示するには、このオプションを使用します--stats
。ddcutil
役に立ついくつかのオプションがありますddcutil
。最大再試行回数を超えたことを示す出力に複数の失敗が表示された場合は、--stats
このオプションを使用して再試行回数を増やすことができます--maxtries
。次に、DDC / CIプロトコルでは、アプリケーションがモニターに要求を送信した後に応答を読み取るまでに特定の時間(通常50ミリ秒)を待つ必要があります。これは、モニターにタスクを実行したり応答を収集したりする時間を与えることです。この--sleep-multiplier
オプションを使用すると、待ち時間が長くなりますddcutil
。たとえば、仕様に従って50ミリ秒待つ必要がある場合は、100ミリ秒待ってください--sleep-multiplier 2
。ddcutil
(逆に、スリープ乗算値が50ほど低い.1
、つまり仕様で50を要求したときに5msだけ待つうまく動作するグラフィックカード/モニタ実装を見たことがあります。)
最後に、ファイルを見つけるのに苦労して申し訳ありません90-nvidia_i2c.conf
。このウェブサイトのファイルに関するドキュメントは、現在の場所に合わせて更新されていません。
答え2
それが動作するには、ddcutil
まずする必要がありますこのページが見つかりました次に、これらの提案を解釈します。最初の提案を実際に理解できなかったので(参照しているファイルが見つかりませんでした)、2番目の提案を試しました。
options nvidia NVreg_RegistryDwords=RMUseSwI2c=0x01;RMI2cSpeed=100
独自の.confを/etc/modprobe.dに入れて再起動しました。
その結果、ddcutilは50%の時間動作します。
$ sudo ddcutil capabilities | grep Brightness
Feature: 10 (Brightness)
:~$ sudo ddcutil getvcp 10
VCP code 0x10 (Brightness ): current value = 0, max value = 100
:~$ sudo ddcutil getvcp 10
VCP code 0x10 (Brightness ): current value = 9, max value = 100
:~$ sudo ddcutil setvcp 10 100
Setting value failed for feature 10. rc=EIO(-5): Input/output error
:~$ sudo ddcutil setvcp 10 10
:~$ sudo ddcutil setvcp 10 99
Verification failed for feature 10
:~$ sudo ddcutil setvcp 10 50
:~$ sudo ddcutil setvcp 10 75
:~$ sudo ddcutil setvcp 10 80
Setting value failed for feature 10. rc=EIO(-5): Input/output error
:~$ sudo ddcutil setvcp 10 90
Setting value failed for feature 10. rc=EIO(-5): Input/output error
:~$ sudo ddcutil setvcp 10 95
Setting value failed for feature 10. rc=EIO(-5): Input/output error
:~$ sudo ddcutil setvcp 10 99
Display not found
:~$ sudo ddcutil setvcp 10 10
Verification failed for feature 10
:~$ sudo ddcutil setvcp 10 100
Display not found
:~$ sudo ddcutil setvcp 10 100
:~$ sudo ddcutil setvcp 10 0
Display not found
:~$ sudo ddcutil setvcp 10 0
実際の明るさは試みの約半分で変更されました。障害が常に端末のエラー出力と一致するわけではありません。
他の人にとっては良い解決策になる可能性があるので、これを答えに入れましたが、まだより安定したものを探しています。
修正する:実際、この回答のため、再起動後640x480で停止して戻す必要がありました。
問題の原因は不明です。これは偶然かもしれません。この回答で紹介されたファイル内で1行のテキストをコメントアウトしても、低解像度の問題が発生します。