Package Details: intelpwm-udev 20170105-1

Git Clone URL: https://aur.archlinux.org/intelpwm-udev.git (read-only)
Package Base: intelpwm-udev
Description: UDEV rules for setting backlight PWM frequency on Intel HD Graphics
Upstream URL: http://devbraindom.blogspot.com/2013/03/eliminate-led-screen-flicker-with-intel.html
Licenses: GPL
Submitter: edio
Maintainer: edio
Last Packager: edio
Votes: 9
Popularity: 0.517648
First Submitted: 2014-08-03 13:36
Last Updated: 2017-01-04 23:53

Dependencies (1)

Required by (0)

Sources (3)

Latest Comments

spijet commented on 2017-09-22 09:32

@sheinz, thanks a lot! This way makes backlight controls in various DEs (like GNOME) actually aware of the new PWM frequency!

sheinz commented on 2017-09-21 08:44

I solved the problem not using udev at all. I used modprobe.d config file.

/etc/modprobe.d/i915-pwm.conf:
install i915 /usr/bin/intelpwm; /sbin/modprobe i915 --ignore-install


This will call intelpwm before i915 module is loaded.

sheinz commented on 2017-09-20 14:54

99-intelpwm.rules blocks 85-tlp.rules from execution.

After installing this aur tlp stopped auto mode switching.

As far as I can see this 99-intelpwm.rules brakes any rule that uses ACTION="change"

edio commented on 2017-06-10 20:09

@spijet

Hi. This package is not on github (yet?). But feel free to do with the code whatever you want. Consider it as a public domain or wtf license :)

(that differs from what is stated in the license section - I just noticed, but still copyleft :P)

spijet commented on 2017-06-02 19:14

Hey @edio, I wanted to ask you if you have this script hosted somewhere on GitHub (or any other Git hosting). I want to create an "intelpwm-udev" ebuild for Gentoo (as I switched over to Gentoo on my laptop) and I wanted to include your original version.

If you don't host it anywhere else -- can I post my modified version on my GitHub page (and put your name in credits)? :P

spijet commented on 2017-01-05 04:12

It works well now, thanks a lot! :)
Also, if you're interested, I took some liberty to modify it a little bit more so it could work with my backlight control script:
http://ix.io/1PbT/sh

This way the script dumps current PWM period (which is also the maximum backlight level) to /tmp/pwmfreq, which is used by my backlight script to calculate backlight level cap and delta correctly, depending on current PWM frequency:
https://github.com/spijet/dotfiles/blob/master/herbstluftwm/helpers/backlight

Maybe you'll find this useful too. :P

edio commented on 2017-01-04 23:58

I messed up with the pkg version previously. Accidentally used US-like date format, with day coming after year instead of month.

So, for some, pkg manager may say it is a downgrade.

Also, /etc/intelpwm.conf is now in backup array, thus should be preserved correctly between upgrades and on removal (unless -Rn is given).

Hope it works well now.

spijet commented on 2017-01-04 17:08

I tested the update and it works, thanks!

One problem though -- my config was already in the new format (with PERIOD="007d") and it got overwritten with default value, "0470". Could be bad for some users. :)

Also, it seems that you've mistakenly bumped the version to 20170301 instead of 20170103. :D

edio commented on 2017-01-03 21:34

spijet,

thanks for the fix!

I did not have an issue, though, and this update does nothing for me, so can't check, if it really works. Probably, my hardware is too old.

I also added post_upgrade hook to update /etc/intelpwm.conf from the old PERIOD value.

I'd appreciate, if you test if it works for you (for me it works :) )

spijet commented on 2017-01-03 18:01

There's a small caveat with this scipt -- it resets the backlight level to maximum whenever it's run. That's because of the way it sets the register value. I changed it in a way that it reads current backlight level from the register and then sets it to "0x<PERIOD><backlight level>":

#!/usr/bin/env sh
source /etc/intelpwm.conf
RAW_DATA="$(intel_reg read ${REGISTER})"
CYCLE="${RAW_DATA:56:4}"

intel_reg write "${REGISTER}" "0x${PERIOD}${CYCLE}"

$PERIOD for me (Lenovo IdeaPad U330p) is "007d", which corresponds to 1500Hz PWM modulation frequency, and ~50% level for this setup looks like "0x007d003c".