Ticket #297 (closed defect: fixed)
screen blanking broken (obsolete rules.yaml)
| Reported by: | spaetz | Owned by: | ainulindale |
|---|---|---|---|
| Priority: | major | Milestone: | |
| Component: | SHR Image | Version: | SHR-unstable |
| Keywords: | Cc: |
Description (last modified by spaetz) (diff)
Our current /etc/freesmartphone/oevents/rules.yaml
(in ipkg frameworkd-config-shr-0.8.4.4+gitr1080+c38059ea32a8ef32c1a1d7b05f1bde709b6c83c3-r1)
contains screen blanking/unblanking rules:
{{{ #
# Idleness Brightness Handling
#
trigger: IdleState?()
filters: HasAttr?(status, "busy")
actions: SetDisplayBrightness?("pcf50633_bl", 90)
-
trigger: IdleState?()
filters: HasAttr?(status, "idle_dim")
actions: SetDisplayBrightness?("c", 20)
-
trigger: IdleState?()
filters: HasAttr?(status, "idle_prelock")
actions: SetDisplayBrightness?("pcf50633_bl", 0)
}}}
This causes this dbus call to blank the screen:
2009.01.30 22:30:26 oeventsd.action INFO call dbus signal /org/freesmartphone/Device/Display/pcf50633_bl SetBrightness?((90,))
which fails with
2009.01.30 22:30:26 oeventsd.action ERROR signal SetBrightness? emited an error org.freedesktop.DBus.Error.UnknownMethod?: Method "SetBrightness?" with signature "i" on interface "org.freesmartphone.Device.Display" doesn't exist
It seems that something had changed and the Display is now just enumerated as "0". This works:
mdbus -s org.freesmartphone.odeviced /org/freesmartphone/Device/Display/0 org.freesmartphone.Device.Display.SetBrightness? 80
So what we need to do in order to fix this is update rules.yaml. The current FSO upstream uses Display name "0" rather than "pcf50633_bl" and everything seems happy.
So we could fix this by updating the package of patching our own version, as far as I can see.
Change History
comment:2 Changed 3 years ago by spaetz
- Priority changed from minor to major
- Summary changed from screen blanking broken to screen blanking broken (obsolete rules.yaml)
comment:3 Changed 3 years ago by spaetz
I am a bit confused about who brings in that file.
opkg search /etc/freesmartphone/oevents/rules.yaml
frameworkd-config-shr - 0.8.4.4+gitr1080+c38059ea32a8ef32c1a1d7b05f1bde709b6c83c3-r1 - /etc/freesmartphone/oevents/rules.yaml
but unpacking the files, it seems to be in
frameworkd-config_0.8.4.9+gitr1104+e9ce74390961554e7a7af4a6c7c90f7c1b389288-r4_om-gta02.ipk
Perhaps someone knows better than me how and where that is created
comment:4 Changed 3 years ago by spaetz
After talking to raster on IRC, I am convinced that the approach taken by FSO is very hacky and should not be implemented. It works behind X's back (just tweaking the backlight) rather than taking advantage of X feature (xscreensaver, dpms (real screen suspending!). What it should do is
a) either issue the appropriate "xset" commands to enable/disable/invoke the screen saver or
b) it frameworkd should send appropriate signals that a client (e.g. illume power settings) could listen to and issue the correct commands. This would be preferable, as the power app runs as the user and knows the DISPLAY var, whereas frameworkd.conf runs (potentially) as a different user and would have to hard code an assumed DISPLAY variable.

OK, just tested it, just replacing all occurrences of pc f50633_bl with 0 in
http://git.shr-project.org/git/?p=shr-overlay.git;a=blob;f=openembedded/packages/frameworkd-config-shr/frameworkd-config-shr/rules.yaml
makes screen blanking work again. One further problem is that illume "Power" settings also have blanking turned on by default, and those overlap and confuse each other.