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
...실패하다?
두 번째 답변 (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 지원이 부족하다는 생각은 무리하게 느껴집니다. 디스플레이 모델을 성공적으로 읽었기 때문에 그렇지 않은 것 같습니다.
세 번째 답변 (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에 대한 특별 지침, 그러나 두 제안 중 첫 번째에 언급된 파일을 찾을 수 없습니다.
이 변경을 수행하는 데 사용된 파일은 배포 디렉터리 data/etc/X11/xorg.conf.d에 있는 90-nvidia_i2c.conf입니다.
나는 Xubuntu를 사용하고 있습니다. 내가 어디를 보고 있다는 것을 암시하는가?
링크의 두 번째 제안 결과는 아래 답변에서 확인할 수 있습니다.
업데이트 2
ddcutil
MacBook/Intel HD Graphics/Ubuntu에서 동일한 모니터를 사용해 보았지만 문제 없이 실행되었습니다.
이는 GeForce GTX 550 또는 해당 드라이버가 문제일 가능성이 가장 높다는 것을 의미한다고 생각합니다.
답변1
나는 개발자입니다ddutil.
모니터에 프린지 I2C 구현이 있는 것 같습니다. Nvidia 옵션은 드라이버가 I2C 사양에 정의된 가장 낮은 버스 속도인 100kbps를 사용하도록 합니다. 불행하게도 운전자에게 더 낮은 버스 속도를 사용하라고 지시할 수 있는 방법은 없습니다.
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
먼저해야합니다이 페이지를 찾았습니다그런 다음 이러한 제안을 해석하십시오. 첫 번째 제안을 실제로 이해할 수 없었기 때문에(참조하고 있는 파일을 찾을 수 없음) 두 번째 제안을 시도했습니다.
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에서 멈춰서 되돌려야 했습니다.
문제의 원인은 알려져 있지 않습니다. 이것은 우연일 수도 있습니다. 이 답변에 소개된 파일 내에서 한 줄의 텍스트를 주석 처리해도 저해상도 문제가 발생합니다.