Friday, November 24, 2006

KPowersave config tutorial

As wrote in my last post about the current KPowersave release 0.7.1 there are some settings which the user can't change at the moment via the configure dialog. Here now a small tutorial how to control this settings via the KPowersave config file.

You can control the settings for these options:
  • battery warning levels
  • actions for battery warning levels and lidclose
  • default AC and battery scheme
  • CPU frequency policy for each scheme
To change the config keys for these options you need to open in your home with a editor of your choise this file (if the file is not present, create the file): ~/.kde/share/config/kpowersaverc

KPowersave provide three different battery warning levels: warning, low and critical. To define the percentage (between 0 and 100) of battery fill for these levels you need to edit config keys in the section [General]. If the section is not there, simply add a line with [General] at top of the file and add/edit these keys there :
You can also define a action (currently only one per level) which is called if one of the battery warning levels reached. The available actions are:
  • shutdown the machine (SHUTDOWN)
  • suspend to disk (SUSPEND2DISK)
  • suspend to ram (SUSPEND2RAM)
  • change the CPU freqency policy to 'performance' (CPUFREQ_POWERSAVE) or 'dynamic' (CPUFREQ_DYNAMIC)
  • change the brightness if supported by your hardware (BRIGHTNESS)
To define the actions for the battery warning levels you have to change this keys (also in the section [General]):
The values in this example are the already defined defaults, so you don't need to add/change the keys if this is what you want. For the action BRIGHTNESS you need an additional key for each level to define the level (in percentage) of brightness to set:
You can use the same actions and values as for battery warning levels also for the event if the lid of your laptop get closed. To control the behavior you need to change these keys:
To control which scheme KPowersave should use on battery or on AC you need to know the names of the available schemes. You can find them in this file: /opt/kde3/share/config/kpowersaverc . Currently there are (excluding the [default-scheme]) these schemes per default: Performance, Powersave, Presentation and Acoustic. To set the schemes you have to change these keys:
At least you can change the CPU frequency for each scheme. For this you need, if not already there, for each a own section in the config file (a section starts with the name of the scheme withing '[ ]'). The available CPU frequency policies are: PERFORMANCE, POWERSAVE and DYNAMIC. Here a example for the performance scheme:
If you canged all you want, you need to restart KPowersave to apply the changes.

Thursday, November 23, 2006

KPowersave 0.7.1 released

Monday I released the first offical (v0.7.0 was only for openSUSE 10.2) release from the new development tree of KPowersave. With this release KPowersave depends no longer on the powersave daemon (sadly!) and use HAL (>= instead to get hardware information and to trigger suspend or set brightness and the CPU frequency policies.

Also if KPowersave depend no longer on powersave, I would recommend to use the new powersave daemon furthermore. The daemon can, if there is no program that claim org.freedesktop.Policy.Power on the D-Bus system bus, handle system powermanagement without do crazy things like start a applet in KDM or GDM. If KPowersave start up the daemon stop automatically to handle powermanagement policy and KPowersave applet can force (if allowed) the user specific settings.

With this release KPowersave handle the different schemes and battery/lid actions independently. This include this parts:
  • definable battery warning levels (warning, low, critical)
  • definable actions for each battery warning level (e.g. suspend, change brightness, set a special CPU frequency policy or shutdown the machine)
  • definable actions if the lid get closed (same as for batteries)
  • set CPU frequency policy for each scheme
  • define AC and battery schemes
Currently the user can't change these settings via the config dialog in KPowersave, I concentrated for this release on reproduce the former functionality of KPowersave together with the old powersave daemon. A tutorial to change the settings in the config file follow as soon as possible. Extend the config dialog is one of the todos for the next releases.

I also fixed the KDE screensaver and DPMS handling to reduce/avoid interfer with the KDE user settings (e.g. if KPowersave exit). There is a KDE patch, from Dirk Müller (Thanks!), available to check if KPowersave already handle DPMS settings and call the KPowersave config dialog instead of the KControl dialog.

You can download KPowersave from or directly from the sourceforge project page. This version is included in openSUSE 10.2. Feel free to test the package. Bugreports (for openSUSE to the Novell bugzilla, for other distros to the powersave-devel mailinglist) are really appreciated!

Tuesday, November 21, 2006

Why waste GNOME/GConf /etc ?

I was always wonder why /etc need on a fresh installed system so much space, if there are only config files. On a fresh installed openSUSE 10.2Beta2 with KDE and some development pattern /etc need ~39 MByte on my harddisk. The question is: Which config files need all this space?

After some investigate: /etc/opt need 28 MByte and /etc/opt/gnome need 96 % of this. So why the hell need GNOME 27 MByte for config files in /etc ? I was wondering how many config keys they could have there and what they could configure within 27 MByte, but after taking a look at the files in e.g. /etc/gnome/gconf/schemas/ it become more clear. GConf store in this directory on my machine 1630 config keys, but need ~12MByte for them because they also have translations (and hints for the translators) for the key descriptions within the files.

Why store GConf translations/localisation information of key descriptions within the config files and not in seperate files e.g. under /opt/gnome ? The current behavior waste /etc with (for configuration) bootless information, make it painful to change the keys e.g. with vim and is IMO potentially incompatible with FHS 2.3 because this files are more translation than config files.

So my proposal: separate the translations from the config data and hold only a generic english description in the files under /etc (as already e.g. in firefox.schemas). This would: reduce the needed space under /etc/gnome/gconf/schemas/ significantly (e.g. for gfloppy.schemas from 64KByte to 1.5 KByte which means -97.5 %), make it easier to find the keys and values and should make it easier to update the translation part without touch the config files.

Let see what the discussion in this bug bring ...

Wednesday, November 08, 2006

HAL patch collection (2)

Today again some new patches I send to the HAL mailing list which aren't included in the git repository because they are not approved so far :
  • fix detection of wireless network capability for devices which use drivers with dscape stack as e.g. rt2500pci: here
  • fix to add hardware specific/dependent sound devices to HAL (as e.g. /dev/snd/hwC0D0): here
  • fix of libhal related to changed behavior of dbus_error_is_set(error) if error == NULL in the new D-Bus. Now the check would crash the realated application which use libhal. Download: here
These patches are against current HAL git. As always: you can find all my current HAL patches here.

Novell bring some light in the dark ...

It was about time. So many questions from the community about the Novell/Microsoft deal and the details. All this (justified) spec and rumours about Novell violoate the GPL section 7 with this arrangement and the other issues like Novell and the Open Invention Network (OIN) or Mono. Now we have some answers to the questions. Take a look at: Novell Answers Questions from the Community.

Here some parts (for more read the FAQ):
How is this agreement compatible with Novell's obligations under Section 7 of the GPL?

Our agreement with Microsoft is focused on our customers, and does not include a patent license or covenant not to sue from Microsoft to Novell (or, for that matter, from Novell to Microsoft). Novell's customers receive a covenant not to sue directly from Microsoft. We have not agreed with Microsoft to any condition that would contradict the conditions of the GPL and we are in full compliance.

Novell's end user customers receive a covenant not to sue directly from Microsoft for their use of Novell products and services, but these activities are outside the scope of the GPL.

Will Novell's involvement with the Open Invention Network (OIN) change due to this agreement with Microsoft?

[...] Novell is a founding member of the OIN and remains strongly committed to its mission. We have contributed valuable resources to OIN and will continue to participate in OIN in the future. Novell remains firmly in support of the goal of creating an environment of open innovation in the Linux world, without worry about the threat of patent lawsuits.

The value of OIN's patents as a deterrent remains critical to the entire Linux industry, including Novell, and is not affected by our agreement with Microsoft.

There is now also an new Novell announcement with more details of the deal. This also include a statement about GPL Section 7 and (very interesting) about the financial parts:
As part of the business cooperation agreement, Microsoft will make an upfront payment to Novell of $240 million for SUSE Linux Enterprise Server subscription certificates. [...] Microsoft will dedicate $60 million total over the five year period for marketing Linux and Windows virtualized scenarios and will also spend $34 million over the five year term of the agreement for a Microsoft sales force devoted primarily to marketing the combined offering.

[...] Under the patent cooperation agreement, Microsoft will make an up-front net payment to Novell of $108 million, and Novell will make ongoing payments of at least $40 million over five years to Microsoft, based on percentages of Novell's Open Platform Solutions and Open Enterprise Server revenues.
I think this should bring finally some light in the dark ...

Tuesday, November 07, 2006

Novell, Microsoft ... and what think RedHat?

Today I read a article about a interview with Mark Webbink from RedHat. There is no denying that they feel inadequate:
... In the end, Red Hat's high customer satisfaction ratings will allow his company to ride the tide. In one year's time [...] Red Hat will be the only Linux commercial vendor left standing ...
I've rarely laughed so hard! We will see if this come true, next November and if SUSE, Ubuntu and e.g. Mandriva still standing ... or Oracle bought you. ;-)

Sunday, November 05, 2006

KPowersave on the way to 0.7.0

Only some hours until deadline for openSUSE Beta2 and a new version of KPowersave, which no longer depends on the powersave daemon and use HAL instead.

In the last days I removed the complete powersave related code and replaced it with new classes and hardware abstraction. Today I finished the basic part and we have now a powersave independend version in SVN which runs. But this does not mean the new version work as planed ... there is enough work left.

Yesterday I added an pre-annoucement for the new 0.7.x development version at planed for this week. And as you can see in the comments there are people which are not so happy about switch from powersave to HAL (as you can see in this post I'm not that happy too):
... going HAL is a real downer and ( at least to me ) it turns Kpowersave into just "another" solution, stripping it from what made it different ..

powersave was EXACTLY the way to go .. and to tell you the truth, knowing why Kpowersave is going HAL is what makes everything even worse. It makes me feel like mediocrity and disdain won once again.
And there is also this question in the comments here:
What are the benefits of changing from powersaved to HAL?
So, what are the reasons for change from powersave to HAL? As first: Since the powersave developer decided to kill the powersave daemon and integrate (the most of) the functions of the daemon into HAL and pm-utils, we have no choise. We have to use the new infrastructure or KPowersave die with the daemon. This was the main reason to rewrite KPowersave.

So what are the benefits?
  • No dependency to the powersave daemon (the package is not in every distribution default).
  • We can move the most of the scheme management from the daemon to KPowersave. This make KPowersave anymore flexible than before.
  • We have now the chance to get KPowersave into the KDE SVN and maybe KPowersave could replace KLaptop as default KDE powermanagement solution.
And the disadvantages?
  • We lose the great powersave daemon, but for more read this post.

How to cheat distrowatch ranking

You always wanted to know how to promote the ranking of your Linux distribution at distrowatch? Simply do the same as in the english version of the Fedora wiki start page and link against the page of your distribution at instead of provide your own package list (as e.g. Debian or openSUSE do). And don't forget to name the link 'Packages' ;-) :

And whoso want to know which packages are available push the level of popularity for your Linux distribution in the 'Page Hit Ranking' with each click (checked google's cache and this link in the fedora wiki is new):

Thursday, November 02, 2006

Novell and Microsoft ?

I'm not quite sure what to make of this news/rumors:
The best would be to wait for the offical annoucements from Novell and Microsoft (webcast), but sounds a littlebit like sup with the devil ;-) . We will see.

Update: Annoucement "Joint letter to the Open Source Community"

Sunday, October 29, 2006

KPowersave status

Today a short update about the current status of the KPowersave development for the next stable version running with HAL instead of the powersave daemon:

We have a new deadline for the first running base version on KPowersave. It's openSUSE 10.2 Beta2, which means I need to checkin the new package at least Monday the 06.11.2006 to get a running version into the release. In Beta1 KPowersave is not in the default selection because of problems with the connection to D-Bus. I had no time to take a look at this issue, so thanks to Timo Hoenig for the patch to fix the problem in the old and new upcomming versions.

Unfortunately I could not commit the fix (and work on KPowersave) because of problems with the SVN server of Novell Forge. The server is down since Friday (27.10.) without any previous announcement from the admins. This is very annoying for the users and really unprofessional from the admins of Novell Forge, also because the service is down the complete weekend. Very good for the deadline for Beta2 if you host a project there.

Nevertheless we finished the most of the work on the hardware information and abstraction part of KPowersave. Now we can start with integrate the new base classes into the applet/GUI.

Thursday, October 26, 2006

HAL patch collection

There a currently some patches I send to the HAL mailing list which aren't included in the git repository so far. They should be included in the new HAL package for openSUSE 10.2 Beta2. Here a list of these patches (feel free to use them on your own distribution):
  • fix build (hald-addon-macbookpro-backlight) against newer versions of libpci: here
  • add support for Standby (S1) to HAL: here
  • remove backend postfix from script filenames (need maybe rename files by hand, for more see this mail thread): here
  • A performance fix for search in pci.ids for vendor and product information of PCI devices. This patch is a reworked version of a inital patch from Ihno Krumreich. I extended the patch to fix bug in the search algorithm and to stop search if found everything we looking for. This patch speed up the search in the list by factor ~8-15 if HAL starts up: here
  • A new version of my patch to detect Tablet PCs (as e.g. with Wacom tablet devices and some Fujitsu Siemens machines) and to set the needed serial ports on boot: here
These patches are against current HAL git. You can find all my current HAL patches here.

Tuesday, October 17, 2006

KPowersave development for next stable (0.8.x)

Today a (short) brief/information about the current planed and already started development for the new KPowersave development tree (0.7.x) and the next stable version (0.8.x):


Since Powersave starts to die and the powermanagement tasks going into HAL we need to change KPowersave to use HAL instead of Powersave.

Only for the log: I don't like this step and for me is the concept to put _all_ (hardware information, powermanagement, mounting, partition, format ...) stuff into one daemon, (into this crappy HAL and only because some desktop developer are not able to write a UNIX like daemon for special tasks) a really stupid idea.

I liked the old powersave. This was a great piece of code which contains several man-years of knowledge about ACPI/APM and powermanagement and did a great job over the years. I'm not happy about losing it.

This changes mean at least also more trouble in KPowersave.

Table of contents:
  1. HAL/Powersave basics
  2. Replace Powersave
  3. GUI
  4. Testing
  5. Documentation/Translation
  6. Timeframe

(1) HAL/Powersave basics

Currently KPowersave use Powersave and libpower from powersave to get hardware information, to switch schemes, to set CPU Freq and to trigger suspend2*/standby.

In general we need to connect now directly to HAL to get a signal if something on hardware changed, if we want to avoid permanent polling e.g. for battery information via libpower. There are two possible ways: listen to HAL for changes and call libpower to fresh up device information or listen to HAL and collect all device information directly in KPowersave.

I would go the second way. This should reduce the overhead of the library (libpower currently (old version KPowersave currently depends on) provide several info we never need and miss some other info we need now). If we implement this directly in KPowersave we can cache the information and need only to update the changed values (e.g. we need only call hal for current battery percentage and only for this key and only for this special battery) which should reduce the overhead on DBUS and allow KPowersave a finer grained signal and information pool.

Needed work:

implement a new class to:
  • hold connection to the HAL interface via DBUS (done)
  • to provide a layer to libhal to get device info (done)
  • add methods to find devices by capability and property (done)
  • to provide a layer to call DBUS methodes on HAL/DBUS interface (done)
implement a class to collect and abstract:
  • battery, ac, lid information (75% done, need to think about the battery stuff)
  • info about suspend, brightness, CPU Freq (done, TODO: add support for PolicyKit information)
  • add function to update the related info if something changed. (in progress, Danny/Frank)

(2) replace Powersave

To replace currently by powersave provided functionality we need to change several issues in KPowersave:


Old Powersave provided a interface to trigger suspend2*/standby and to check if the user is allowed to call this methodes. HAL provide currently only a abstraction of the kernel interface, which mean we can only say if the machine/kernel can suspend in general, but we can't say if:
  • the user is allowed to call these methodes
  • the machine is really suspendable (or if the machine is e.g. not able to suspend2ram and is blacklisted e.g. in s2ram).
  • I have currently no idea how we can fix this. Maybe via PolicyKit, but this is not sure because we don't know if this go really in SUSE 10.2 or if PolicyKit is mandatory for HAL upstrean in the future. This situation is really bad and the sideeffects are annoying for the user.
  • HAL only support suspend2* and not standby atm upstream (on SUSE we have a patch for this).

battery alarm states:

Powersave currently provide the battery alarm states and the config at which point which state is reached. We need to move this to KPowersave and make it configurable only in general and not per scheme. We need to configure the three states and the related actions (e.g. warn user, suspend, shutdown)

  • Several different users can be connected to the system and every user can define different states and different actions which results in a chaos. This is at least again the same problem as with CPU freq via HAL and fighting clients. Maybe we add this to a admin mode dialog as e.g. in KControl and allow only a systemwide config, but this is only a solution for KDE. (evaluate: discussion started by Holger at: g-p-m Mailing list)
CPU Frequency Policy:

Since CPUFreq settings are moved from powersave to HAL, we need also to replace the current settings in KPowersave. There are two issues:
  • make the currently existing different CPUFreq Policies configurable
  • make them configurable per scheme
  • Fighting Clients and other tools (see above).

Powersave currently provide some schemes (powersave, performance, presentation and acoustic), two of them are automatically switched if the AC plug is removed/inserted. We need to implement _real_ schemes in KPowersave. We have currently schemes in KPowersave (with brightness, screensaver, DPMS, autosuspend settings and so on), but we need to make them configurable. This mean we need this stuff:
  • create new/remove/edit for current schemes
  • make configurable default schemes for AC online/offline (and maybe other events as e.g. lidclose or if detectable adding a beamer to the machine for presentation scheme)
  • per scheme CPU Frequency settings (see above)
  • per scheme disk settings
  • There is currently no way to set the harddisk settings, but we need this on some machines which change the settings e.g. via the BIOS on suspend or if the AC plug is removed (which maybe increase Load_Cycle_Count and reduce lifetime of the disk).
  • Fighting clients with different settings.

(3) GUI:

Based on the changes from (2) we need to update the configuration dialog to make all the settings configureable for the user. As a first step we don't need to implement this (first finish the basic stuff), we can do the config via the config file. Tasks to do:
  • create/remove schemes, as first new schemes with a default config (first steps done). Later we can maybe add a wizard for inexperienced users
  • CPU Freq stuff (per scheme, and per policy)
  • AC state and actions (global settings)
  • Battery states (global settings)

(4) Testing

Provide first working version as always on and, send a mail to opensuse ML.

(5) Documentation/Translation

Need to extend, update and translate the documentation. We need also some new translations.

(6) Timeframe

A first stable running version - without not needed stuff from (3) - until openSUSE Beta1/2/final. With the new stable and without dependecy to powersave we can think about push KPowersave into KDE SVN as default KDE powermanagement applet.

You can find all already done changes in the KPowersave SVN at trunk.

Sunday, September 03, 2006

Logitech DiNovo Keyboard

Since some weeks I use this really nice Logitech DiNovo Bluetooth ultra-flat keyboard. But the keyboard is unfortunately not listed in the KDE Control Center (under Regional & Accessibility --> Keyboard Layout). Hence I patched the keyboard layout into the X files.

I must say it's really a pain to do this. As first you need to run /usr/X11R6/bin/xev to get the keycodes of the extra (multimedia) keys, but unfortunately the keycodes are not the same codes as X use in /etc/X11/xkb/symbols/inet. You need to search each code in /etc/X11/xkb/keycodes/xfree86 to find the correspondent XFree86 code. Why the hell can't xev display also the matching XFree86 codes?

As next you need to patch 4 files to get the keyboard running. Why 4 different files? This should be also possible with only one file! If you have this keyboard you can download the diff of my changes from here (simply download the file and do this as root user in '/': "patch -p0 < /tmp/keyboard_Logitech_DiNovo.diff" ) .

Wednesday, August 30, 2006

Hacking KMailCVT

Since a long time ... Yesterday I did some maintanance work for KMailCVT . In the last months I couldn't find the time to fix some known problems in the mail import tool of KMail but now I taked a look at this issues (for the KDE 3.5 branch):
  • I could not move imported mails from mailinglist archives to a Cyrus IMAP account because of not allowed line starting with "From " (not to mistaken with "From: ") in the header. I fixed this by removing the line while import (see commit).
  • If you import mails from a mbox file the state of the emails is not set back to KMail. All mails are marked as new (see e.g. bug #114923). I added detection of the X-Status flag to set the correct state the imported mails (see commit). I tried also to add the same to the kmail-maildir import filter (which worked), but unfortunately there are some problems in KMail with set the X-Status flag correct to the mail files (bug #133210).
As next I plan to check also the other mailfilter to read and set the state of the mail. There are also some problems with the interactivty of the filters if you chancel the import process which need some work. And at least: I need to port the changes to the KDE4 tree ...

Tuesday, July 04, 2006

KPowersave update v0.6.2 released

Sunday I released the a new update for the stable tree of KPowersave with version number 0.6.2 and also a new powersave version (v0.12.20) to This release fixes more than eight bugs. Here the most important changes:
  • KPowersave depends now on powersave >= 0.12.18
  • fixed bugs:
    • #1483392/ SUSE #177792: set changes for autosuspend state via DCOP back to the applet menu, added DCOP functions to set the current scheme, the current CPUFreq policy and to open/close the detailed dialog
    • #1483392/ SUSE #177788,180000: added workaround to fix two bugs in the DPMS- and Screensaver extension of X, related to autosuspend and detect user inactivity (DPMS timeouts are abstracted from current idle time, but shouldn't / DPMS timeouts are currently additive but shouldn't). This fix problems with autosuspend if the timeout is longer than the DPMS timeouts.
    • SUSE #168619: changed errorhandling if HAL, DBUS or the powersave daemon is not running or if the user has not the needed rights to access the powersave daemon via DBUS. Added new errormessages and translations.
    • SUSE #182515: Changed configure dialog to respect rules for DPMS timeouts
    • SUSE #176782: patch from Timo Hönig to allow (if supported and enabled in the scheme) change brighness via mousewheel over the applet icon.
    • SUSE (SLED) #183745: fixed detection of SUSE Linux/SLES/SLED and added Fixed bugzilla link for SLED/SLES configure option to force SLES/SLED as distro with --enable-suse-sles.
    • SUSE #184076: fixed wrong command to start dbus daemon in errormessage.
    • added additional check before autosuspend if this was disabled via applet
  • added new configure check to detect Ubuntu/Kubuntu
  • changed link to Ubuntu bugzilla to and use now the same link for applet menu entry "Report a bug ..." if compiled for Ubuntu/Kubuntu
  • updated default blacklist for autosuspend with gmplayer,kaffeine,xine,mencoder
  • updated translation: cs,de,es,fi,fr,hu,it,km,pl,pt_BR,zh_CN,zh_TW
  • updated (cs) and fixed translation of eventsrc for KNotify
  • fixed and updated code documentation
Packages are, as always, available on the sourceforge project page for SUSE Linux 10.0, FC4/5, Mandriva and Slackware and via links on for other distributions (note: the new version is maybe not available for all of them at the moment) including Debian, K/Ubuntu, Arch Linx, Gentoo or ALT Linux.

Thursday, June 15, 2006

And again ... more distributions

KPowersave is now among SUSE Linux, Debian, K/Ubuntu, Mandriva, Slackware, ALT Linux, Arch Linux, Fedora Core 4/5 and Gentoo available on two additional distributions.

On FoX Desktop 1.0 Professional (a Fedora based KDE distribution) KPowersave and powersave are the default powermanagement solution (see Release Notes).

KPowersave (and also powersave) is now available in the development tree of PLD Linux. You can download the package from the 3.0 tree of the ftp server. PLD Linux is also a former RedHat based polish distribution.

Monday, May 15, 2006

KPowersave stable update v0.6.1 released

Yesterday (5/25/2006) I released the first update for the current stable tree of KPowersave. Packages are, as always, available on the sourceforge project page for SUSE Linux 10.0, FC4/5, Mandriva and Slackware and via links on for other distributions including Debian, K/Ubuntu, Arch Linx, Gentoo or ALT Linux.

This release fixes some UTF-8 [bug #165462] and translation [bug #168838] issues in the KNotify dialog and fixes the applet tooltip and displayed remaining battery time on APM machines (incl. code cleanup) [bug #167296]. This version also fix the detailed dialog for multiprocessor/-core machines without CPUFreq or throttling support and offline CPUs/Cores. Other updates: translation updates (fi, km, pl) including desktop files and eventsrc (ru from Anton Farygin ), updated README and an additional configure check for needed dbus-qt3-devel.

For Fedora, it is strongly recommended to update powersave to 0.12.17 (powersave is added automatically to boot). For all other distributions, updating powersave is also recommended.

Sunday, April 23, 2006

New packages ... more distributions

Some new messages about powersave and KPowersave: I added packages for Fedora Core 5 to the sourceforge project website. It was again a pain to create the new rpms. I don't know if really someone develop KDE applications on FC5, but if I need to compile a own dbus-qt3 and dbus-qt3-devel package - only because there is no rpm available and the related section in the specfile is out-commented - something is wrong with this distribution. Btw. Because of this I added also the needed dbus-qt3 rpms here. If you try to install and use KPowersave on FC5 you need at least the dbus-qt3 package. Unfortunately if have no experiences with SELinux and also the guys on the fedora selinux irc-channel were not very helpful. Hence you need to disable selinux support or at least the rule for acpi(d) on FC5. Patches for powersave are welcome.

Since powersave supports s2ram, I also added a suspend package (which include s2ram) for SUSE Linux 10.0 to You also need to update pciutils to version 2.2.1, packages are available on the same download page.

Finally: powersave and KPowersave are now also available for Arch Linux. You can find the PKGBUILD powersave packages in the unstable tree and the KPowersave PKGBUILD here.

Thursday, April 13, 2006

KPowersave 0.6.0 (stable) released

Monday I released the new stable KPowersave, version 0.6.0. The release contains several fixes for the processor information in the detailed dialog (e.g. for multiprocessor machines with throttling support), fixes for the battery infos in the tooltip, a fix from Michael Biebl for events after autosuspend, fixed errorhandling for call YaST power-management module and fixed the timeout for connection to powersave on startup to avoid problems with slow machines and autosuspend. I reduced the size of the package by optimize the included png-files and added a german version of the handbook. Also included: translation updates, changed links for report bugs from the applet menu if the installation is a SUSE/SLES/SLED, added support for lock screen with gnome-screensaver and added fake a key event after resume if the screen was locked to get the unlock dialog automatically. For all changes since the last stable version and the release news, read here.

Thanks to all people which helped to develop KPowersave and make the hole project successful with code, patches, testing all the unstable versions, reported bugs, their ideas and all the spend time. Special thanks to Holger Macht, Stefan Seyfried, Michael Biebl and Daniel Gollub.

You can download KPowersave for SUSE 10.0 (for 10.1 from factory repository or from the CD/DVD), Fedora Core 4 and Mandriva from the sourceforge project page. You can find links to download packages for e.g. Debian, Ubuntu, Kubuntu, Gentoo and Alt Linux on the KPowersave page.

Wednesday, April 12, 2006

kernel module packages

Last week , while testing KPowersave on Kubuntu to force UpstreamVersionFreeze Exception process, I tested a LG M1 Express Dual as first with SUSE 10.1 Beta9, but it was a pain to install on this machine. I couldn't start installation via SLP: the kernel doesn't support the network card, USB and cardbus tulip network card also not worked. At the end I used a DVD to install the laptop.

After installation, in the running system the network worked via the usb docking station (also if KNetworkManager alway try to use COM1 instead of the correct networkinterface and I need to switch this always manually) but not correct via a Tulip cardbus card. I need pci=assigned_busses as kernel parameter and the card must be inserted before the yenta_socket kernel module is loaded. But also in this case the tulip module is not loaded automatically.

Btw. the onboard networkcard is not supported by the kernel. It's a Agere Systems ET1310 ethernet card. There was a patch (from a Agere developer as it looks) available e.g. on to add kernel support. I tested the module on the machine and it worked. But I needed to add some little fixes to get the patch compile. While testing I recognised that the module generate random mac addresses. Looks as if the first read from the EEPROM, to get the mac of the hardware, fail and instead of try again it generates a random address. With a little workaround (read directly two times from the EEPROM) I get the correct address.

Because it's not really a good idea to compile each time while BETA testing, after each kernel update or new installaation I made a et131-KMP package. Thanks to Andreas Gruenbacher for the help to get the package build. It's not available via factory tree at the moment. But If you need this package you can download it (without any support or guaranty) here. I hope Agere fix the module and try to get this in the linux kernel.

I also added a omnibook-KMP package to the factory tree. I should allow a lot of machines e.g. to get support for brightness change. For more information about the supported Laptops (HP Omnibook and Pavilion, Toshiba Satellite and some FSC, Compal, Acer and Compaq) and the features see the
omke project page. I already added support for the module to powersave. The package should be on the media of RC1 and SUSE Linux 10.1/SLES 10/SLED 10.

Wednesday, April 05, 2006

Testing (K)powersave on Kubuntu

The Kubuntu LaptopTestingTeam announced a help request for testing KPowersave/powersave on the current Kubuntu Dapper test release (Dapper Flight 5/6). The tester should test if KPowersave work better than the current default solution klaptop and document the results on a wiki page.

As I taked a look at the page some days ago, I could only found three reports. Hence I started testing Kubuntu here on several laptops from the Mobile Devices team at SUSE and reported the results back to the wiki. After eleven machines I can say two different things:
  1. klaptop sucks! (it's not really maintained anymore, it hangs up in the most cases if you try to trigger suspend to ram ... )
  2. on all tested laptops it works better with KPowersave/powersave than with klaptop
I hope the tests help to get KPowersave on the upcomming Kubuntu release - it's definitely the better solution. And if they maybe also integrate the s2ram tool, as we do on SUSE, more laptops should work out of the box.

Feel free to install Kubuntu Dapper Flight 6 on a small partition on your latop and run the requested tests to support the powersave project. All test reports would be really appreciated!

Thursday, March 23, 2006

KPowersave 0.5.11 - last RC before stable v0.6

Yesterday I released the next KPowersave version on and added a announcement on (and today on freshmeat and forge.novell). This release (v0.5.11-rc5) is planed as the last release candidate before the next stable release since September 2005.

I fixed the handling of set brightness. In the previous version KPowersave allowed to use all available brightness level to be set. But e.g. on machines with PMU brightness interface the lowest level off the display. From now only the last usable brightness level, defined by powersave, can be set. With powersave >= 0.12.7 you can now also change the brighness on machines supported by pmu and omnibook module.

On a request I added a function to check if the machine is a laptop, by asking HAL. Now KPowersave display laptop specific widgets and functionality only on laptops. I think this is now less confusing for the user of workstations which not expect to be able to configure lidclose handling.

The new version also include: handbook, translation and documentation updates and fixes; a Slackware specific fix again; some code cleanups and a little fix to prepare for QT4. I added furthermore a patch from Holger Macht to allow the root user always all kind of suspend/standby independent from the powersave settings for the other users.

Fell free to download the current version (available for SUSE, Fedora Core 4, Mandriva and I think in the next days also for Debian and U/Kubuntu). All bugreports are welcome for the stable release.

The last two weeks ...

I didn't wrote anything here since two weeks. So here a update about some of the issues I worked on in this time:

  • I installed the first time a SUSE Linux 10.1 Beta 7 on a Apple iBook G4. The installation process is really abortive compared to normal install on ix86 or x86_64. By the way powersave also work on ppc and I tested (K)Powersave on this machine. Suspend to Disk work perfect, but I could not get Suspend to RAM running on this machine. Looks as if this not work on ppc via apm, need to investigate if this maybe is possible somehow via pmu. I added support for change brightness on machines with pmu support to powersave.
  • I also added brightness support for the omnibook kernel module. They released now a updated version of the package and now you can also unload the module on a 2.6.x kernel. I try to build a km_omnibook package in the next days.
  • Added more support for TabletPCs to HAL. From now HAL set automatically the serial port (by call the correct setserial command) for the Wacom Tablets if they are detected. Because HAL starts early enough before the X server this addon should be able to activate the port to be used in X. I also added a FDI file to set the correct ttyS* device on machines where we should not use ttyS0.

Wednesday, March 08, 2006

KPowersave 0.5.10-rc4 released

Yesterday I released the next KPowersave version. This new release candidate (yes we are now at RC4 and there follow also some more rc's, because of the changed releaseplan for SUSE 10.1) depends now on powersave >= 0.12.2.

I fixed, based on a report on powersave-devel, the handling of the lidclose event. Now KPowersave call 'xset dpms force off ' on lidclose and reset the dpms and screensaver settings on lidopen to off the LCD backlights. Also included: a fix to display processor infos on multiprocessor/-core machines for all CPUs/cores also on non-CPUFreq/throttling machines, a fix from Daniel Gollub to read throttling informatation also on multiprocessor machines, a fix to display battery infos in the detailed dialog only if at least one batterybay is available. While porting to Mandriva, I made also some autotool releated changes: changed detection of Mandriva and read location/name of the D-BUS system socket from pkgconfig. I added at least a patch from Michael Biebl to use pkgconfig from powersave for checks and linking.

With this version the packagesize increased to ~3.3 MByte because I updated and added missing screenshots for the localized handbook versions and added a icon to avoid problems on non-SUSE distributions. The changes also include language updates.

The last release was really successful! It was, after released, downloaded 1421 times in the first seven days from the project page at sourceforge. This is nearly the same as normaly in one complete month (~1500 downloads). I don't know who are all the people which downloaded the files but I like it and hope they like and use KPowersave. The most downloads was for SUSE and the source tar.bz2 but also many downloads for Fedora Core 4.

Saturday, March 04, 2006

KPowersave/powersave for Mandriva

I released today our first packages of KPowersave and powersave for Mandriva 2006.1. It was a hard work to get both packages running and packaged for Mandriva. They have no matching DBUS, HAL and not the correct version of cpufrequtils in there stable release and unfortunately I also could not find the needed devel rpms on the 2006.1 release CDs. Because of this I used 2006.1 and needed to update several packages to Cooker - the testing/devel three of Mandriva.

There where also some problems with the DBUS configuration for powersave. As it look the desktopuser is not in the group at_console - thus I needed to open the powersave interface for default. Btw. now powersave and KPowersave work on Mandriva. I released packages for ix86 on the project home on

There are some point to consider if you install (K)powersave on Mandriva:
  • you need to update HAL (>=, DBUS (>=0.61) and install cpufrequtils (>=0.4) via RpmDrake from Cooker
  • if you use a ACPI machine you need acpid
  • you have the choise, uninstall these packages or be sure that the related services are not running parallel to powersave: apmd, cpufreq, cpufreqd, powernowd . If you not stop/remove these services you can get in races with the powersave daemon
  • currenly the user need to add powersaved manually to the boot process wirth chkconfig. At the moment I do this not automatically while install the rpm.
These packages are the initial version and my first Mandriva rpms. If there are any bugs feel free to mail to Any comments and suggestions are welcome.

Thursday, March 02, 2006

KPowersave 0.5.9-rc3 released

Yesterday I released a new KPowersave release candidate (RC3). This new version (v0.5.9) fixes APM support in KPowersave. I found several problems with battery informatiion on APM with the applet tooltip and the information dialog which based on bugs in powersave. Looks as APM was not really tested with powersave since the HAL support was added. I fixed this in powersave and also the battery state if no battery is available. Because of this changes KPowersave depends now on the new powersave version 0.12.1.

With the new powersave version I registered that HAL poll every 2 seconds /proc/apm. The apm interface recalculate with each read the remaining time. Thus HAL change with each poll the battery remaining time properties and send events over D-Bus. If we get every 2 seconds new events in powersave and with it also in KPowersave we use the D-BUS more often than with ACPI if the machine is on battery. Everyone say DBUS doen't need much CPU, but in this case (APM/battery/powersave/kpowersave/2 second poll in HAL) the DBUS daemon produce a CPU usage between 5 and 25 %. This is IMO to much - we need to investigate what the reason is.

In fact the APM handling in HAL is complete broken. HAL should not poll battery information every 2 seconds. This is okay to get AC information, but not for remaining time. I plan to rewrite APM in HAL: poll AC every 2 seconds, poll battery every 30-60 seconds and compute the remainig time over the percentage because the APM remainig time information are not really trustable and APM does not provide remainig time for changing mode. Here a list of the major changes in KPowersave since 0.5.6 (the last version I wrote about here):
  • removed the sound settings from the configure dialog and replaced this functionality with KNotify support (thanks to Michael Biebl), added more KNotify events to KPowersave (now with KNotify support the user can play sound, change the type of notification and/or start e.g. a programm or script for a event)
  • fixed CPU information on machines with throttling support and on machines without CPUfreq or throttling support
  • several GUI fixes in the information dialog
  • some fixes to be more portable (autotool fixes and fixed path to pidof for autosuspend on FC4)
  • string, translation and handbook fixes and updates

Tuesday, February 21, 2006

Packaging - kdbus

Last week I found on a new interesting package: kdbus. It's a KDE application to discover D-BUS services on the system and session bus and call found methodes. This is the same as kdcop for DCOP. I added the package to the SUSE build system and it was approved for production on the next day - really fast, thanks to Andreas Jäger - and is now available on factory and the next release.

By testing the package I could see that currently only D-BUS itself is full supported for introspection via the bus. I'm not sure if the other services are broken or only not support introspection. In case of HAL and also powersave I could not found any introspection code in the source. So I think we should add at least to powersave the related methodes and the needed xml file with the description of the available services, methodes and signals from the powersave daemon.

Btw. the application is very usefull if all services would implement intospection also If the GUI need some fixes and improvements because currently resize the GUI did not work so well.

Wednesday, February 08, 2006


Last week I added a new package to the SUSE STABLE/factory tree. The package is called xournal and is an application for notetaking, sketching, keeping a journal using a stylus. Instead of Journal this is not written in Java, it's written in gtk2 and we could ship this package also on the OSS version. This extend the support for Tablet PCs. I think we get this package also in SLES and NLD 10.

Now Jarnal and Yakuake, the package I added the last time, are aproved and now in state production. This mean they should be on the upcomming 10.1. release (Jarnal not at OSS version). I think releaseforge follows in the next days.

Tuesday, February 07, 2006

KPowersave 0.5.6 released

Monday I released a new version of KPowersave (v0.5.6). This is the last unstable release. With SUSE 10.1 RC1 we ship a release candidate and with SUSE 10.1 the final version 0.6.0. Currently we only work on bugfixes and translation updates. This detailed dialog contains a new summary bar for multi battery machines to display the complete time and percentage with more than one battery in the system. I hope Seife is now happy ;-).

Thanks again to Michael Biebl for the help with porting KPowersave to Gentoo and Debian/Ubuntu. He catched a bug with autosuspend and the path to pidof, which we fixed now. The package includes translations updates (thanks to Dawei Pang and Dawid Wróbel for translation updates), new handbook versions (cs, pt) and several bugfixes as e.g. reduce excessive CPU usage if detailed dialog was displayed and a fix for Slackware 10.2.

I started last week a help request on to find community members which would support translation of KPowersave, because we are late in the translation process and we implemented several new features in the Beta's. We already could (as you see above) integrate some new of the translations back from the community. I hope we could translate with help of community and the SUSE/Novell translation team the most of KPowersave.

Wednesday, February 01, 2006

subfs dropped and now?

Since SUSE 10.1 Beta2 subfs is dropped from the kernel and with this also the submount package. Because of this we have no default automatic mount for hotplugable media (as e.g. CD/DVD/USB-Storage) on console/for console users. The user can now only mount this storage devices under KDE/GNOME but not on console or in any other WM (without enter root password/sudo).

I know subfs was really ugly and many people sad: 'Subfs is a piece of shit' but this worked as it was. Yes, there where bugs with subfs (stat and df/du didn't work, and the slow data rates on VFAT -osync mounted volumes wasn't a subfs bug), but they was fixed. But because of changing HAL from netlink-socket to poll /proc/mounts every 2 seconds to detect mount state of volumes there was a race between hal and submountd. With this race submountd was not able to umount the device if it was in use. IMO this was fixable and maybe polling /proc/mount was a bad idea. But the solution was: drop subfs with no replacement for hal-subfs-mount.

As now several bug reports demonstrate: it's a problem for users to have no automount solution on console and IMO the biggest problem: no solution on other WM's. With dropping subfs we lost some features (as e.g. mount CD for a user if he access the mount and umount if not used) we can't replace currently with other working and tested tools. In my opinion we need a well working tool to automount also for non-KDE/GNOME cases ... maybe readd and fix subfs?

Monday, January 30, 2006

KPowersave v0.5.5 released

Today I release the new KPowersave version 0.5.5. After some discussion and fair comments from Timo Hönig about the with 0.5.4 introduced detailed dialog, we reworked the dialog to look better and more like the KPowersave configure dialog.
This release contains also a new help menu with a about dialog, open KPowersave Handbook and a item to open the sourcefoge project side to report bugs. I added a new icon for the 'Advanced Powersave' scheme and a full translated german language file. And as with every release: bugfixes and cleanups.

Friday, January 27, 2006

KPowersave vs. klaptop on Kubuntu

While searching with Google for news or articles about KPowersave i found a interesting mailthread on kubuntu-devel. Jonathan Riddell started a discussion to drop klaptopdaemon and replace with KPowersave. That sounds great and it would be really nice if we get KPowersave in the next Kubuntu release.

This show us that it was a good idea to spend more time to make Powersave and KPowersave more portable to other distributions. In this case we need to say thanks to Michael Biebl for packaging the Debian/Ubuntu packages.

Btw. We should also support suspend2 in the powersave daemon. There where several people asking for this on Fedora and Ubuntu to get this in. We should take a look at this feature request to get more happy users.

Monday, January 23, 2006

KPowersave 0.5.4 released

Today night I released the next development version of KPowersave (v0.5.4). This new release contains as major enhancement a information dialog (to activate click with left mouse button on the applet icon).

This new dialog provides this information:
  • current CPU frequency (with support for multi CPUs machines)
  • current Battery state (with multi batteries support)
  • AC state
  • current scheme, current CPU Frequency policy
  • powersave state (if the powersave daemon is currently running)
Thanks to Daniel Gollub for the basic patch to add this to KPowersave. I plan to add for the next release more information to the dialog as e.g. if Autosuspend is enabled. As the next major enhancement step (and one of the last befor next stable version) we plan to add unload modules for defined device classes to the configuration dialog. This is currently only planed for the 'Advanced Powersave' scheme.

Feel free to download and test the current release for SUSE 10.0 and in the upcomming SUSE 10.1 Beta 2. If you want get actual information about new releases, subscribe here. Packages for other distributions planed for the next days.

Sunday, January 22, 2006

HAL, on the wrong way?!

In the last time, the HAL development is on a unclear way. Is HAL a Hardware Abstraction Layer or a 'All-in-one-big-black-hole'? It's not only the discussion on the HAL list about implement power management related active code (e.g. set/control cpufreq) which give me the impression that the project is on a wrong way.

Currently there are several people which try to implement all things in HAL only because they will not (or not be able to) implement their needed things in a clean, small and effective programm or daemon - simply in the UNIX way.

The discussion between the g-p-m maintainer and other pm-related people (including the powersave developers) is only one example for this. Instead of develop a powermanagement daemon with a DBUS interface or to define a DBUS interface for all pm-daemons or much more easier: use a existing daemon, they implement parts of this in HAL (as e.g. calls for suspend/standby/set brightness ...) - this is not a solution for anything. An other example is adding methodes for reboot and shutdown in HAL. Now we have one more place (HAL dbus configuration) where we need to change settings if we want to disallow the user to shutdown the machine (as e.g. on SLES/NLD). Thanks!

But the screwiest idea is to add Format() and PartitionDisk() to HAL to allow unprivileged users to format volumes and to partition disks. There are good reasons why this is only allowed
privileged users. You can't allow a unprivileged user to format a device which he not own. You can't as user delete/access files on a device you not own, but you can format the disk? This is not only screwy, this is really stupid and break all exstining securtity and permission concepts.

I can understand that there are use-cases where the user would be able to format a floppy (also if I think floppys are obsolete ... we should drop support floppydisks ;-) ) or his FAT usbstick without root-password, but how often is this needed? Once per month or week? Sorry, but in this cases it's o.k. to use sudo/su or a solution like YaST.

If we get such bypasses in HAL, and allow everything to everyone, only because some people think "input root password is extremely unintuitive and user don't grok it", then we could also set all permissons to 777, drop HAL and all security concepts. In this case, I wait for the first linux-viruses which use HAL methodes to format your disk without need root permissions (maybe only because the HAL dbus config is not aligned on the environment). Windows lets greet and if it's in HAL it is also used by someone.

I would suggest: Think more about sense and nonsense before implement such (unneeded) security breaking features and work on really important things as e.g. needed hardware abstraction, ..., stability and speed of HAL.

Friday, January 20, 2006

Builds for old dist with new deps is a pain

Yesterday we realised, from a helprequest, that our last K(P)owersave release for SUSE 10.0 was complete broken. They was build against 10.1 STABLE tree, but not against 10.0. But this was only the start of a long and painfully build session to get new packages. Powersave needs new cpufrequtils which needs new sysfsutils. I thought I need only do this against --distset=10.0:
  • build sysfsutils
  • build cpufrequtils with --prefer-rpms=(...) path to sysfsutils
  • build powersave with --prefer-rpms=(...) path to sysfsutils and cpufrequtils
But this did not work. The mbuild fetched up the prefered rpms and it looked also that them where installed, but it didn't work. After myriad of trials to build them and checking all build logs I found out that the mbuild didn't used the prefered rpms. I don't know why mbuild is so stupid. At least I added the sysfsutils package to --extra-packs and also to needforbuild - and it worked then. I don't know why this dependency between cpufrequtils and sysfsutils together with --prefer-rpms was not resolved by mbuild. Sometimes I really hate the SUSE build system or is rpm the problem?

Btw. We wondered, that (K)Powersave was together nearly 140 times downloaded for SUSE 10.0 and only one of them saw the problems with the rpms.

Feel free to download the new packages for SUSE 10.0 ... or Fedora, Debian, Ubuntu ... bugreports would be really appreciated.


After the cruel of add releases on Sourceforge at the last time I searched for a tool to manage releases on Hey and I found releaseforge. I taked a look at the tool and it's really nice and helpful.

You can add new new packages, new releases (add notes, changelog, files and fileattributes), edit/manage the existing releases and add project news. The pain ends now! But I wondered: Why is there no SUSE package for releaseforge in our distribution? No problem I created a new package and added it to the build system. I hope we get this at least in the factory tree.

But there is some room for improve releaseforge: There should be a way to change the release date and the automatic detection of ix86 > i386 rpms did not work (they are detected as AMD64). At least: If you release a news - the format is destroyed and all linefeeds are removed. But if you released only one time more than one file with the SourceForge File Release System (FRS) - here is your alternative.

I also added some other new packages to the build system (feel free to test them if they go to the factory tree):
  • Jarnal - a Java based notetaking/sketching application for Tablet PCs (v7.80)
  • Yakuake - a really nice retractable KDE terminal emulator (v2.7.3)

Thursday, January 19, 2006

(K)Powersave @ Fedora Core 4

Now KPowersave and Powersave are also availabel for Fedora Core 4 on ix68. Because Fedora currently use swsuspend2 instead of the SUSE way Suspend and Standby shouldn't work on FC4. Thanks Holger Macht for packaging the rpms.

Currently (K)Powersave is available on:
The next step: Dominate the world of Linux powermanagement!

Wednesday, January 18, 2006

KPowersave 0.5.3

Yesterday I released a the new KPowersave version 0.5.3 to the world. It was a cruel to release the files on sourceforge because was permanently switch between available services and down for maintenance.

The package on sourceforge and forge.novell differ from the package in SUSE 10.1 Beta1 because I used the old name of the new experimental 'Advanced Powersave' scheme in Beta1. The new releases on fix this problem - the user get now the new warning message if switch the scheme. Also added: a default configuration for the new scheme to save more power by shutdown the display earlier.

KPowersave needs now powersave >= 0.11.15. With this new powersave version (also released yesterday) a new dependency was added. In succession SUSE 10.0 user need a new cpufrequtils version (>=v0.4). I added a update to the powersave downloads. We release currently only new SUSE rpms for 10.0 - rpms for 10.1 are available from the factory repository.