#50 [docs] finetune backlight control on intel gpu

Open
opened 3 years ago by deb75 · 4 comments
deb75 commented 3 years ago

In debian 9, setting the register value in rc.local works, but it gets overwritten to a bad value when screen goes off, furthermore, the intel_backlight max_brightness appears to be broken : too low value so that xbacklight = 100 does not bring back full brightness

To make persistent the register setting at boot, it appears it is necessary to do it before the i915 module is loaded.

On debian systems, this can be achieved by (as root)

cat << EOF >> /etc/modprobe.d/i915.conf install i915 /usr/bin/intel_reg 0x00061254 your_value; /sbin/modprobe --ignore-install i915 EOF

Then, you can discard any settings through rc.local or systemd, max_brightness in intel_backlight sysfs seems much more reasonnable and xbacklight = 100 gives full brightness. Also, no alteration when screen goes off ot with "xset dpms force off"

Depending on the distro, it may be needed to include this hack in the initrd (if this one loads i915), I did not have to do that for debian 9 strech

In debian 9, setting the register value in rc.local works, but it gets overwritten to a bad value when screen goes off, furthermore, the intel_backlight max_brightness appears to be broken : too low value so that xbacklight = 100 does not bring back full brightness To make persistent the register setting at boot, it appears it is necessary to do it before the i915 module is loaded. On debian systems, this can be achieved by (as root) cat << EOF >> /etc/modprobe.d/i915.conf install i915 /usr/bin/intel_reg 0x00061254 your_value; /sbin/modprobe --ignore-install i915 EOF Then, you can discard any settings through rc.local or systemd, max_brightness in intel_backlight sysfs seems much more reasonnable and xbacklight = 100 gives full brightness. Also, no alteration when screen goes off ot with "xset dpms force off" Depending on the distro, it may be needed to include this hack in the initrd (if this one loads i915), I did not have to do that for debian 9 strech
Swift Geek commented 3 years ago
Collaborator

people should disable c-states to make sure that it is backlight indeed that is being noisy:

for i in /sys/devices/system/cpu/cpu*/cpuidle/state*/disable; do echo 1 > $i; done

Also we need to add some graphic with arrows to point out where 31:16 bits are, with a space between fields like

0x6000 6000

divisor [space] duty_cycle

Due to bug described by deb75 - tell people to adjust duty cycle to half or lower of divisor instead of using keys/xbacklight to adjust brightness


Also there are some patches to be tested: https://review.coreboot.org/#/c/19090/

people should disable c-states to make sure that it is backlight indeed that is being noisy: `for i in /sys/devices/system/cpu/cpu*/cpuidle/state*/disable; do echo 1 > $i; done` Also we need to add some graphic with arrows to point out where 31:16 bits are, with a space between fields like `0x6000 6000` divisor [space] duty_cycle Due to bug described by deb75 - tell people to adjust duty cycle to half or lower of divisor instead of using keys/xbacklight to adjust brightness ----- Also there are some patches to be tested: https://review.coreboot.org/#/c/19090/
Leah Rowe commented 3 years ago
Owner

We should merge patches from coreboot/librecore for changing backlight register value in cbfs

We should merge patches from coreboot/librecore for changing backlight register value in cbfs
blatxo commented 3 years ago

I was having the same issue as @deb75. The procedure works for me on Debian 8 jessie, but I had to change the intel_reg command to intel_reg_write.

I was having the same issue as @deb75. The procedure works for me on Debian 8 jessie, but I had to change the `intel_reg` command to `intel_reg_write`.
Raphi111 commented 2 years ago

I've been having this issue on Parabola for a year, I always had to run /usr/bin/intel_reg write 0x00061254 your_value manually until the next time the screen goes off. I tried copy-pasting @deb75 's command but it just left me with a > on a new line, as if the shell was waiting for another line (I don't understand the syntax well enough, maybe there's a newline missing).

I had it to work by creating the file /etc/modprobe.d/i915.conf and pasting install i915 /usr/bin/intel_reg write 0x00061254 your_value; /sbin/modprobe --ignore-install i915

Maybe those instructions could be added to libreboot's website until it's fixed in coreboot/libreboot ?

I've been having this issue on Parabola for a year, I always had to run `/usr/bin/intel_reg write 0x00061254 your_value` manually until the next time the screen goes off. I tried copy-pasting @deb75 's command but it just left me with a `>` on a new line, as if the shell was waiting for another line (I don't understand the syntax well enough, maybe there's a newline missing). I had it to work by creating the file `/etc/modprobe.d/i915.conf` and pasting `install i915 /usr/bin/intel_reg write 0x00061254 your_value; /sbin/modprobe --ignore-install i915` Maybe those instructions could be added to libreboot's website until it's fixed in coreboot/libreboot ?
Sign in to join this conversation.
Loading...
Cancel
Save
There is no content yet.