Thursday, January 31, 2008

HAL: sysfs ACPI batteries fixed

With the recently released linux kernel v2.6.24 and if configured with ACPI_PROCFS_POWER and ACPI_SYSFS_POWER, you get now two ACPI battery interfaces in the system. One, as before, under /proc/acpi/battery/ and a new in the power_supply subsystem in the sysfs under /sys/class/power_supply/ . HAL listed both batteries, which was fixed by show the proc batteries only if there is no power_supply battery in the system [1]. Unfortunatly the sysfs battery was never updated (except on add/remove events of the AC adapter). This could lead, besides missing information updates, to a system crash on empty batteries if the userspace tools as e.g. KPowersave trusted these information. They never reached critical battery levels in this case.

I have now fixed this problem in HAL git master with several patches (last one was this), which also fix the power_supply battery handling in general (since it were several bug in the code). HAL poll now the power_supply ACPI batteries every 30 seconds as HAL already does for proc batteries. The code should work basicly, but I assume there are some corner cases left. Need to check the existing ACPI code for the proc batteries to find and port them. Maybe it make sense to split up the ACPI sysfs battery part from the existing power_supply handling to merge it into the existing ACPI code ... we will see.

I have added an updated HAL version for openSUSE factory (and for openSUSE 10.3 as testing package) to my OSBS HAL project repo and to the next Alpha2 of openSUSE 11.0. Fell free to test and report problems.

Tech Tags:

Friday, January 11, 2008

Fixed KDBus

I commited today two fixes to the KDE SVN to make KDBus usable again on DBus method calls:

  • fixed show the input widgets for input/output method parameters, show in the 'Output:' section only the output and not again also the input parameter widgets [1]
  • fixed handling of boolean method parameters, now you should be able to call e.g.  SetPowerSave(bool) on the org.freedesktop.Hal.Device.SystemPowerManagement interface again without errors [2]

Updated RPM packages are already available for openSUSE 10.2 - openSUSE Factory and SUSE Linux Enterprise (Desktop) 10 as always in my openSUSE Build Service project.

Tech Tags:

Thursday, December 13, 2007

New hal-info package released

Yesterday I released a new package of hal-info. The new version (20071212) contains now also most of the suspend quirks from the s2ram whitelist. For more information about the changes see the release mail on hal@lists.freedesktop.org.

For openSUSE you can get an up-to-date hal package (which contains the latest hal-info) for Factory and 10.3 here.

Tech Tags:

Monday, November 26, 2007

HAL patch collection (4)

Here my actual HAL patch collection. I send them already to the HAL mailing list, but they are not aproved yet (also because David isn't active/present on the list).

  • a patch to remove the Eject() methode from dm-devices. The eject command is a ioctl and not supported by dm-devices (at least on Linux). On crypto volumes you should use Teardown() instead, which do the same.
  • a patch to fix calculation of the remaining time of ACPI batteries, if they report the wrong charging state (e.g. if they report 'charged' if the battery is charging). With this patch HAL try to guess the correct state depending on the AC state and the state of the other primary ACPI batteries in the system.
  • a small fix to prevent endless loops on fdi-files with a empty rule (only a match, but nothing merged etc.).
  • two patches for the Dell brightness [1] and killswitch [2] (against hal-info) devices. With kernel 2.4.24 (or this patch) there is now a uevent if the platform device of the dcdbas module get added/removed. Attach the Dell devices now to this platform device in the HAL device tree. This should fix the problem that HAL provide the Dell devices and methodes also if the needed kernel module isn't loaded.
  • extend HAL try to get the smbios information from sysfs on startup instead of call a prober (which call dmidecode, parse the output and set the properties to HAL). If /sys/class/dmi/id isn't present it falls back to the prober.
  • small fix to ignore module and drivers uevents in HAL, since they aren't events for devices
  • a patch, needed also for the Dell devices, to remove also via fdi-files spawned devices if the parent device get removed. Currently the devices get not removed, also if they are not visible in lshal (because the parent was removed), which mean also the may started addons get not stopped.
  • two patches to add more checks: to the partutil code [3] which should prevent possible crashes and to libhal [4] to check e.g. if a given UDI is valid (should start with: /org/freedesktop/Hal/devices/)
  • extend HAL to add also drm (Direct Rendering Manager) devices to the device tree.
  • a fix to stop HAL from flood syslog with warnings if the remaining time get over 60 hours (which can happen on broken batteries)
  • small patch to fix possible segfaults if HAL get compiled without IDs (PCI/PnP/USB) support

These patches are against current HAL git. As always: you can find all my current HAL patches here, if a link to a patch doesn't work, the patch was maybe moved to this directory. The patches are already part of the HAL beta package in my openSUSE buildservice repo.

Tech Tags:

Tuesday, November 06, 2007

TabletPCs: Cellwriter

Recently I found a new cool tool for TabletPCs: Cellwriter. The developer describe it as 'a grid-entry natural handwriting input panel' and it reminds me to the input panel on the Windows XP TabletPC Edition.

It provides a way to enter text by write characters with a pen to a grid. The big advantage in comparison with e.g. tools like xstroke is: there are no limitation for the way you write a character. You can take off the pen for one character and write points or an other line. This allows to write all characters of Unicode (e.g. German umlauts or chinese). As first you have to train the tool to correctly recognize your input. For this you can use the 'Train'-dialog where you should write each char five times into the related grid.

After the user trained CellWriter, he can use it to simple input text, commands or whatever to any desktop application that has the focus. Cellwriter show as applet e.g. in the KDE Panel and can get hide/shown via click on the applet icon. You can place the window free on the desktop or dock it to Top or Bottom of the screen. The input dialog allows also to correct wrong recognized input or to simply delete input. If you finished, simply press enter to send the text to the application with the input focus.

If you prefer to enter text via a virtual keyboard, CellWriter has also a solution for this. Simply press on the Keys icon and you get a virtual keyboard. Unfortunately this works for me only if the window is docked to the screen, but I assume it is a bug. There is also some more room for improvement: I could not find a way to configure the layout of the virtual keyboard, it was always US.

Cellwriter is a relative young project. The Changelog show the initial package is from end of August 2007. But it is a great tool and work well, also if there is some room for improvements:

  • The user need to train the tool before use the first time. It would be useful to have a basic pre-trained mode, which would allow the user to simply use it from the first start (at least for basic Latin characters).
  • The keyboard need to get fixed (see above) and should support configurable key maps.
  • If CellWriter is docked it should simply roll itself up if the focus get lost (like yakuake). If Cellwriter is in not docked the window is unfortunately always on top, thats annoying.
  • It would be cool if Cellwriter would detect input areas automatically and would show a icon besides this area to pop-up the input window. Not sure if this is that simple or if this need some changes in the desktop environments, but it should be IMO possible.

Conclusion: Cellwriter is a great tool, I like it. It allows TabletPC users to get basic, but natural handwrite recognition. Simply forget xstroke, this tool is very much powerful. I have already packaged it for openSUSE 10.2, 10.3 and Factory. You can get the packages from my repository. Feel free to install and use it. We plan to add the package to the next openSUSE release.

Tech Tags:

Sunday, November 04, 2007

KPowersave 0.7.3 released

Some days ago I released the next version of KPowersave (v0.7.3). Also if this is a package is marked on sf.net as 'unstable', which mean it's from the development tree, this is a really stable version.

Here a list of the major changes since the last release:

  • new feature autodimm, which allow to reduce the brightness of the display automatically if the user get inactive (after a defined time) and dimm up if the user get active again
  • new dialog shown up 30 seconds before autosuspend call the suspend, to warn the user and allow chancel the suspend
  • new dialog to show logfiles if a suspend/resume fail and allow the user to save the log (need to get enabled per distribution, depending on the suspend solution)
  • added code to check if the current desktop session is active and handle usecases if the session get inactive (via ConsoleKit)
  • KPowersave work with new PolicyKit/ConsoleKit/HAL combination and checks if the user is privileged (for HAL >= 0.5.10 and related PolicyKit versions)
  • prepared to work also with HAL >= 0.5.10 (handle renamed policy names in HAL)
  • release/aquire org.freedesktop.Policy.Power if the session get inactive/active to allow powersaved or other active KPowersave instances to handle powermanagement
  • use now kdebug functions instead of own macros, added --dbg-trace option to allow trace function entry and leave points

The release contains also many smaller changes and lots of bugfixes and translation updates. For a complete list of changes, take a look at the package Changelog or the commit log which is part of the source.

You can download the source and rpms as always via kde-apps.org or directly via the sourceforge project page. On sf.net are besides the source tar.bz2 already packages for these distributions (for ix86 and x86_64) available: Mandriva 2007.1/2008, openSUSE 10.2 (also for ppc) and Fedora Core 6/7/8. The package is already part of the released openSUSE 10.3.

Tech Tags:

Friday, July 06, 2007

Novell is now Patron of KDE

Great news: Novell became as first Linux distributor an official patron of KDE. I don't understand why this wasn't announced by Novell yet. I could only find Novell now listed on a webpage of KDE e.V.: 'Supporting Members', but I think this is a good step of Novell/SUSE to give some back to the (KDE) community.
Tech Tags: