Illegitimi non carborundum


So how does the KDE PulseAudio support work anyway?

So I think it's probably worth me writing up just exactly how the PulseAudio support in KDE's Phonon library actually works and why using it will give you some nice extra features!


Kudos to Dell

Well hats off to Dell. I've had my current laptop (Inspiron 6400) for about three years and it's served me pretty well. Sure I've upgraded the RAM and put in a faster, bigger disk but the core machine has done well... until recently.

The screen seems to have developed a fault near the right hand edge and the seals that protect against dirt and detritus seem to have failed. I now have several lighter spots on the right hand edge and hair and dirt has now managed to get behind the screen and is very distracting especially when workin on photographs etc.

So I'm generally quite lazy and put such things off but I figured I'd give Dell a shout before I went off to Corsica. I'm glad I did as my three year warranty expires in just two days time! If I had left it until my return it would have been too late!

Speaking with Dell wasn't quite as easy as it could have been and I was initially told that the screen would not be covered under my warranty. In fairness it is easy to presume that this occured due to some kind of damage inflicted upon the machine or to thing I was just chancing my luck and just trying to get some repair work carried out before my warranty expired (I'm not oranised well enough to pull that kind of stunt!). But after speaking to a couple people and making my case, I sent some photos over to the. Showing the problem and indicating the general good order of the machine and it's casing etc. I was contacted soon thereafter saying they would indeed cover the repair.

I've previously received a new power supply under warranty. Overall I thunk both myself and Dell have got our money's worth out if the warranty. I know other people will have both horror stories and happy tales.

I just hope don't drop the thing before I get back from Corsica!

Filed under: Development 1 Comment


Well myself and Robin are currently in the sky in a orange metal tube laughing in the face of evolution. Who says humans can fly? Pah!

We're heading to Nice where we will hopefully manage to catch our ferry to Corsica. There is not much time between our scheduled arrival and the ferry's scheduled departure and we didn't do ourselves any favours by sitting in blissful ignorance in the coffee shop while our flight went to final call! We were last in the plane but still had to queue to get on so thankfully we cannot be blamed for adding any delay!
(update from the future - we made it!)

This week is a bit of an experiment. As our company, Tribalogic Ltd, is a web development firm with our office telephones using VoIP, our physical location often does not matter. So myself and Rob have packed one of the hardware phones into a bag an are heading off to meet our colleague Gerome in Corsica where his family have a holiday home (with an Internet connection obviously!).

We should still be able to answer calls and deal with customer support etc. But time will tell if the theory matches the practice!

If all this works successfully it will maybe make me think more seriously about spending a winter season in a ski resort somewhere. I'd be able to help out on the phone and speak to customers from a little base in the alps so the only problem would be how it would affect our small team if I was away for a period of time. But before I get carried away with myself, we'll see how this week works out technically!

Filed under: Personal 2 Comments

I’ve got a new Internet

I've got a new internet and it's all shiney and fast 🙂





Which isn't too bad for £1 a month more than I'm paying now! The results are pretty inaccurate but it's still shows more than double the upload and more than 50% more download. I did get even faster speeds in other speed tests maxing out at about 47MBit download which is pretty good!
Filed under: Development 3 Comments

Finding (and purging) orphaned packages

For a couple of releases Mandriva's package management tool, urpmi, has come with a feature that tracks and reports on orphaned packages. It does this by tracking which packages were installed as dependencies of others and then reporting back when the package that contained the dependency is no longer present (or it's dep has changed). This works pretty well, but sometimes you want something that is not based on a tracked state, and just looks at the packages available and those that are installed.


Mandriva 2009.1 and Intel Graphics

As many of you already (painfully) know, Mandriva 2009.1 was shipped at a rather awkward time in the Intel Graphics Driver's lifecycle. The upstream guys were in the middle of a rather extensive rewrite and consolidation. This meant that the version shipped with 2009.1 did not work all that well for several users. The new intel driver requires careful coordination of kernel, libdrm, mesa and intel driver packages to ensure they all work properly. This requirement meant that providing official updates was difficult due to the fact that kernel updates were often required.

For this reason, myself and Thomas Backlund have been operating a semi-official repository of packages built for 2009.1 specifically for Intel users of 2009.1.


Update on KDE+PulseAudio

Just a small note to update on the progress.

The Test button now selects the right device. The way of achieving this is a little convoluted, but it seems to work well. We now generate a UUID for every phonon stream and push this into the PulseAudio stream proplist via an environment variable. We then look for all the streams in pulse and match up our UUID such that we can match up the pulse stream index to our phonon stream. We can then use this to move the stream to the appropriate device. Due to the async nature of PulseAudio, phonon sometimes requests the move before the stream is actually setup, so we have to queue up the move requests and process them when a stream appears. This approach also has the effect of causing the specific sink to be saved in module-stream-restore database, but this shouldn't matter in practice as phonon will always move it, so if the priority list changes, then we will always set the right device one way or the other even if the whole rigmarole could be avoided. But like I say, the practical outcome is fine, so let's just leave that for now.

The category is also passed through to PulseAudio now, so the the only thing that is not handled is when PulseAudio disconnects/restarts. Thankfully this is now getting less and less often as stability improves 🙂


KDE + PulseAudio != Sucks

So I've been spending altogether far too much time on getting this stuff working, but it's finally in a state where it no longer sucks.

For several releases we (Mandriva) have been patching KDE's phonon support to hide all the real devices if PulseAudio is used because the GUI really makes no sense (PulseAudio handles all the routing for us). This is an acceptable solution but it's far from ideal.

So with the latest set of three patches (one for pulseaudio, one for phonon and the final one for kdebase4-runtime) I now have a fully working system (albeit with some caveats!).