Archive for the ‘Hacks’ Category

Looking for the EFI UGA spec

Sunday, July 20th, 2008

Lazyweb-type post ahead :)

I am looking for the UGA (Universal Graphics Adapter) specification. It is part of EFI 1.10, but was developed by Microsoft, so it’s not documented in the Intel spec.

Instead, the Intel spec contains a Microsoft URL where the spec used to be available, but that URL doesn’t exist anymore and I can’t find the spec anywhere.

So, if anybody out there has a copy of that spec, I’d very much like to get it.

I am looking for the UGA IO Protocol spec, which may very well be the key to solving an annoying framebuffer issue I’m working on.

Thanks!

pommed v1.21: composited gpomme

Monday, July 14th, 2008

It’s been on the TODO list for ages now, and Soeren finally tackled it: compositing support for gpomme.

This is the only change in this release. Please report any issue with gpomme and compositing, as this code has only been tested on a limited number of configurations.

For people not running a compositing manager (like myself), don’t worry, gpomme works just as before.

pommed v1.20: minor fixes

Monday, June 16th, 2008

pommed v1.20 is out, with two minor fixes:

  • a segfault that could not trigger on any normal setup;
  • use of the correct bus type to detect the Apple wireless keyboards.

Available on Alioth now, in unstable after the next mirror push.

Also I have to block pommed >= 1.19 from entering testing because Linux 2.6.25 is not yet available in Lenny. I hope this will be fixed soon, in the meanwhile, grab the packages from unstable if you’re running testing with a 2.6.25 kernel.

pommed v1.19: reduce CPU usage

Saturday, June 7th, 2008

pommed v1.19 has landed, with improvements wrt CPU usage.

This is especially true for gpomme, which won’t cause 10 wakeups/sec anymore. PowerTop fans, rejoice! I plan to fix wmpomme too, but as I’m probably the sole user, this can wait.

pommed will also consume a bit less CPU, especially on machines without ambient light sensors.

The new code in pommed makes use of the timerfd API introduced in Linux 2.6.25, hence you’ll need to run a 2.6.25 kernel or later; pommed will not operate properly on earlier kernels.

pommed v1.18: small things

Sunday, May 18th, 2008

I’ve just released pommed v1.18, which is mainly a maintenance release.

I’ve added some more USB IDs for Apple external keyboards and relaxed the event devices identification for internal keyboards.

pommed will now happily start on a machine fitted with a keyboard+trackpad assembly that normally isn’t found on this model. This can happen when the topcase of the machine is replaced with the wrong part. I expect this situation will happen more and more often as people buy parts from EBay or similar to repair their laptops.

Analysis of NagVis 1.2.x

Friday, April 18th, 2008

NagVis is a visualization add-on for Nagios, offering a somewhat better summary view compared to Nagios.

As we are faced with abysmal performance on a “large” setup here, I conducted a quick analysis.

Given what I found pretty early on during this analysis, I’ve given up trying to salvage NagVis. We’re looking at alternatives and considering writing our own tool to cover our needs.

pommed v1.17: update for Linux 2.6.25

Thursday, April 17th, 2008

I’ve just released pommed v1.17, which is a pure maintenance release to accomodate changes in Linux 2.6.25.

The path for the led interface exposed by applesmc for the keyboard backlight has changed, so if you lost the keyboard backlight when switching to 2.6.25 or a pre-release, now you know why ;)

No new features this time around :-)

Getting things done on SANE again

Sunday, April 13th, 2008

There have been a number of discussions on sane-devel in the past months revolving around the SANE2 standard (still in development) and/or extensions to the current SANE1 standard. SANE2 is an effort that has been “ongoing” (on and off, mostly off, unfortunately) for a number of years already.

This led to a number of questions being raised, most notably this one: do we need SANE2, or can we get away only with extensions to SANE1? Or should we just redesign the whole stack from the ground up?
This matter is undecided as of yet, but extensions to SANE1 are planned, being discussed or in the making for some of them.

During the discussions, a fork of SANE has been announced, dubbed “SANE Evolution”. No idea where that is going, but it’ll probably end up being merged back into SANE in the end.

So, in a nutshell, things are moving again (albeit slowly), which is good news considering the project was mostly asleep in recent times.

To celebrate that (and because I now have total control over my free time again), I’ve been working on the network side of SANE again. In 2 weeks (3 week-ends, roughly):

  • saned has been turned into a regular, full-fledged daemon
  • mDNS/DNS-SD service announcement & discovery has been added to saned and the net backend (using Avahi)
  • I have 20% of a WireShark dissector for the SANE protocol written, and already spotted (and plugged) an information leak bug in the net backend thanks to it

Turning saned into a regular daemon made it possible to clean up a good chunk of the code duplication that was introduced by my previous AF-indep/IPv6 work; the startup code is readable again.

The Avahi support is (I hope) a very nice thing as, when enabled, configuration of the net backend on the client side is no longer needed. This is an experimental feature still and as such it’s disabled by default at build time. I have a couple of ideas to improve that feature, but this means saned will have to evolve even more so it’ll take some time.

The WireShark dissector is a tool for working on enhancing the network protocol. It proved useful already with the information leak I spotted with it (though it’s minor). It’ll be a long work to extend the network protocol and implement that into saned and the net backend in a backward-compatible manner.

pommed v1.16: MacBookAir1,1, MacBookPro4,1, MacBook4,1

Sunday, March 2nd, 2008

I’ve finally got enough information to complete the MacBookAir1,1 support, it’s been tested and it works.

I’ve also got the information I needed for the new MacBook Pro and MacBook released in February 2008, but there I’ll need some feedback. I have some doubts on which machine uses which keyboard+trackpad assembly.

  • The MacBook Air uses an entirely new device, the so-called “MultiTouch” trackpad, dubbed “WellSpring”
  • The MacBook Pro has got a “MultiTouch” trackpad in its latest revision, so it’s using a WellSpring device too, and I think it’s using the WellSpring II device
  • The MacBook hasn’t got the “MultiTouch” trackpad, I think it still uses a Geyser IV-HF device

I’ll need to confirm those two last points, so if you are running pommed on either one of these machines, your feedback is welcome.

On a slightly related note, I have some sound troubles on my MacBookPro2,2 with 2.6.24.3 which I didn’t have with 2.6.24.2. I cannot play WAV files anymore, be it with pommed, with aplay or with any other software. In the best case, the sound is distorted and too fast, in the worst case I can’t hear anything at all. And they call it the stable tree, hmgrmpf.

pommed v1.15: sysfs power_supply class support

Tuesday, February 12th, 2008

I’ve released pommed v1.15 this week-end with support for the new power_supply class which is used to report ACPI power information starting with kernel 2.6.24.

This release also contains pretty much everything needed for the MacBook Air1,1, except the keyboard/trackpad USB IDs which I couldn’t grab yet. So expect v1.16 for the MacBook Air as soon as I’ll have those IDs.