April 15, 2010

While working on the Gnome overlay with the Gnome team, I decided to give Empathy a go.  I talk to maybe 3 total people on AIM, and no one on Yahoo, which just leaves me with Jabber (Gmail) contacts that I actually talk to.  So I installed it, I even enabled webkit so that I could use Adium themes with it (I personally prefer Stockholm, just be sure to look inside the folder and only move the style into the right place.)

It was kind of a disaster.  I’m running on a Quad Core, 2.4ghz machine, and double clicking on a contact would take up to 25 seconds for the window to show up.  I was not a happy camper.  Watching htop, I could see that my DBus session bus was working hardcore.  100% cpu usage on 1 core.

No problem, I thought to myself, whipped open my handy terminal, ran “dbus-monitor –session” to watch the traffic that was causing it to use so much cpu and…. nothing.  Zilch.  There was no (apparent) traffic going on but the session bus was still using 100% cpu.

I popped over to the Gnome bugzilla, and started reading through bugs, but none were coming close to what I was seeing.  In desperation, I turned to the faithful Google.    And I searched… and came up empty – not so much empty as simply results that weren’t helpful at all.

I let it go for a few days, asked a couple people if they were having any issues, and most don’t use Empathy, so that was a bust.  Then I was looking around while I was “at work” which really meant I was sitting in the office as opposed to my room using the computer, and I came across Bustle; http://willthompson.co.uk/bustle/

Bustle is very nice, in that it can show you timings.  Once I had that compiled, I used Recordmydesktop to take a video of me using Empathy, with Bustle running, logging everything that went on with Empathy.  Then I popped in to the Empathy IRC channel (#empathy on irc.gnome.org) and mentioned in the channel that it was taking a long time for my IM windows to open, and pointed them at the video ( http://dev.gentoo.org/~steev/files/empathy-dbus.ogv (21MB)) and then at the two screenshots of Bustle ( http://dev.gentoo.org/~steev/files/screenshots/empathy-bustle1.png andhttp://dev.gentoo.org/~steev/files/screenshots/empathy-bustle2.png ), and Danni replied to me, asking why I was using the logger, when it shouldn’t be enabled.  So I disabled it, and removed telepathy-logger from my system, re-compiled Empathy, and sure enough, the IM window pops up instantly.  I’ve removed the dependency as well as got rid of the useflag (with a note in the ebuild about why) and committed it to the Gnome overlay.  Due to Danni saying that no one should be using telepathy-logger, I’ve also package.masked it in the Gnome overlay.  I must say, using Bustle is *very* nice, and I’d like to thank Will Thompson for writing it.

I also smiled at the “How?” section of the Bustle website, considering that was the exact purpose for me downloading it.

I’m hoping to write an ebuild for Bustle, and apparently it is really easy to do with Haskell as the Gentoo Haskell team has a script that you run that will write the ebuild for you.  I haven’t started working with it yet, but I definitely plan to, as Bustle is now definitely on my radar for usage in debugging what is going on with apps and their DBus usage.


Rocks, as presents…

April 6, 2010

Gentoos build their nests out of rocks, which are then jealousy guarded. Particularly nice rocks are offered as gifts by male Gentoos to females to curry favor.

All this time my ex’s thought I was just being cheap… 😉

Deauthentication Reason Codes

March 31, 2010

Client Reason Code…Description…Meaning
0…noReasonCode…Normal operation.
1…unspecifiedReason…Client associated but no longer authorized.
2…previousAuthNotValid…Client associated but not authorized.
3…deauthenticationLeaving…The access point went offline, deauthenticating the client.
4…disassociationDueToInactivity…Client session timeout exceeded.
5…disassociationAPBusy…The access point is busy, performing load balancing, for example.
6…class2FrameFromNonAuthStation…Client attempted to transfer data before it was authenticated.
7…class2FrameFromNonAssStation…Client attempted to transfer data before it was associated.
8…disassociationStaHasLeft…Operating System moved the client to another access point using non-aggressive load balancing.
9…staReqAssociationWithoutAuth…Client not authorized yet, still attempting to associate with an access point.
99…missingReasonCode…Client momentarily in an unknown state.

Just posting it here for future reference


March 26, 2010

Out of curiosity, I ran strings on the binary drivers for the Efika MX’s gpu.


description=GSL driver
author=Advanced Micro Devices Inc.


license=Dual BSD/GPL
description=Device driver for AMD 3D graphics core
author=Advanced Micro Devices Inc.

Anyone happen to know where to find the GPL source for that gpu_z430 module?

Efika MX

March 26, 2010

So, I have an overlay set up for the Efika MX.  If anyone out there has one, you are free to use it, keep in mind that some of these ebuilds are very rough and some (imx-lib) are perfect examples of how not to write an ebuild 😉

I’ve got it hosted on Github, http://github.com/steev is the main page.  There *are* other packages than just Efika MX related, simply because I use it for keyword testing, as well as for a few things that I want on the Efika MX without enabling some other full overlay.

What I currently have working is :

Xorg 1.8 RC2 (xorg-server-9999, mesa-9999, libdrm-9999) 2D acceleration in X, still no 3D driver yet (I’m watching the msm kernel closely as the video card in the Efika MX *seems* to be the same one that is in a Snapdragon.)

I need to write an ebuild for the Ralink driver for wireless.  I’m not a huge fan of it, but having used it, it DOES work.  My own attempts at getting the one in staging for the kernel by backporting the 2.6.34 stuff ended in lots of kernel panics and divide by zero errors.


Clean up the current ebuilds, make sure they do the right thing.

Ebuild for Ralink driver Thanks to Arnaud Patard from Mandriva, this isn’t needed as he got the rt2800usb in-kernel driver working.

Ebuild for the binary amd-gpu driver (this one is more along the lines of copying a bunch of files into the right place(s))

Look into what is needed to get the fsl_linux_sdk_codec_1.7.1 installed and working, and then write ebuilds.  A preliminary glance at the contents shows 3 tarballs, and a PDF.  One of the tarballs is just docs, the other appears to be a gstreamer plugin, so that shouldn’t be too difficult to compile itself, however the fsl-mm-codeclib Makefile looks like its going to make baby jesus cry.

Other things I’d like to do:

Move the Efika MX into my room, out of the office, which would put it on a different switch in the home network.  This would also put it on a slightly smaller monitor since it is currently plugged into the DVI input of one of my monitors used for work.

Get the PPC Efika back up and running – the main issue here is the lack of an outlet to plug it in.  This last one will probably have to wait for spring cleaning to come around, as I know I have some more UPSs in the garage, I just don’t remember where.

Xorg and udev (redux)

March 23, 2010

So it has been a bit over 3 years since my last post here…  And oddly enough, it is quite similar to my previous post.

Xorg 1.8 should be coming soonishly – using the scm version gives the awesomeness that is Xorg with hotplugging, without hal (hooray!)

In order for it to work though, you do need a very minimal xorg.conf :

Section "InputClass"
     Identifier "default"
     Driver "evdev"

Alternately, with git, xorg-server supports /etc/X11/xorg.conf.d – I’ve got that little snippet in a file in there called 90-input-default.conf

Hattip: “iamben” on freenode: #gentoo-desktop

Xorg Input hotplugging and me…

November 7, 2006

Okay, whilst attempting to shirk my responsibilites (read fix pam_console’s root.audio issue (I hate sed… not so much as I hate it, as it hates me and refuses to EVER work for me properly until I have struggled with it for about 3 days) 😉 ) I saw a Planet post from Daniel Stone, about *gasp* input hotplugging in Xorg. And I thought to myself, OMG MUST HAVE NOW. So, being as I idle in #gentoo-desktop on freenode (well, not always idle, but for the most part I do) I popped open the channel, and fired off a message to Donnie and Josh, to ask them about it. Turns out, Josh (or maybe it was Donnie) had added the snapshot to Portage already (that would be xorg-server- and so being the adventurous person that I am (and never really minding a broken box) I immediately unmasked it… and fail. It didn’t want to build because of a missing $(DBUS_LIBS) (since fixed) and, then Josh mentioned to me that I will want to update my device drivers as well, to the latest – which I did, luckily, I don’t use too many, xf86-input-{keyboard,mouse,evdev}

This is where the magic starts to happen… Okay, so finally have xorg-server- installed, xf86-input-keyboard-1.2.0 installed, and the evdev and mouse… and so I fire off startx (because you know, want to make sure it even works…) and fail. With a dbus error! Oh noes! What am I to do… well, lets see, its a dbus error, restart dbus? Nah, that wouldn’t fix it, I am using the new and improved dbus, no need to restart when new configs show up… Oh, I know – does it even HAVE a config… I seem to recall the planet post mentioning something about the policy not being set in stone…. so I look in /etc/dbus-1/system.d and nope! Hrm, ok, so, is there even a config file?

Pop into ~/sandbox (which is where I store everything I want to play with 😉 (hat tip Compnerd)) and extract the xorg-server tarball to look around at the files… Success! There it is – xorg-server.conf. Pop into irc again and mention it to Josh, who promptly (or not promptly, im really not sure as I am playing with a new toy weeeeeeeeeeee!) fixes it to install. And, then I issue startx as for me, I am not gonna recompile xorg-server just to copy over a .conf file – and… SUCCESS! Woohoo… Okay, so X is working again, there is my wonderful Gnome desktop looking back at me, saying, please come play with me! And I apologize to it, and say, well, I am sorry, but I must get the input hot plugging working first…

Okay, back to the drawing board… There really isn’t much info on this aside from some posts on the mailing list and the planet posts (which, have mysteriously disappeared from my cache 😦 ) so… Google it is – aha! I need something called respeclaration… Okay, time to search it out – being as Mr. Daniel Stone is on fdo, I check there first – yep, its a git repo… great… I suck at using git… Every attempt to check it out gives me an EOF, which I have no idea what it means, aside from the fact that its NOT ON MY SYSTEM. No problem, I can just download the repo manually (yes, I will do things the hard way when I don’t want to take the time to learn yet) it is only 2 files, and really, I just recreate the Makefile manually, and download the respeclaration.c file. Pop those into the sandbox, and make… success! Woohoo… ok, so, now lets see, input hotplugging…

Okay, we open up the xorg.conf file, and…

*thinks – well, lets see what happens…*

*comments out all the input device infos*


FAIL. Hmm, okay, lets try running respeclaration – oh wait, something about the dbus policy and requiring root in order to add devices – so, lets restart respeclaration as root…

sudo respeclaration –daemon 0.0 (according to the –help its –daemon displaynum)



Okay… *loads up xorg.conf to verify that all input devices are in fact disabled in there* Yep… *unplugs usb mouse* *moves the usb mouse after unplugging it because sometimes when working on things I get absent minded and do the extremely obvious to make sure* Yep… *plugs the usb mouse back in and moves it… OMG MY CURSOR IS MOVING <3*

Okay, hmmm, plugs in a usb keyboard… SEGFAULT.

Okay, so input hotplugging isn’t quite ready for primetime (this is xorg 7.3 stuff we are talking about here anyways, 7.2 hasn’t even been released) – but, I want to be one of those people who really makes sure it works, because it has been something I have wanted in X for a very very long time (come on, windows has been able to do this for AGES)

Okay, so, I wanted to be really really sure, I was really doing things right, and I hopped into the xorg development channel to thank daniels, as well as verify that what I was doing was correct…. More info coming soon…