I dont' know if anyone has tested Vadim's shader backend on a 2400 but it might be interesting to try.
The 2400/3200/3450/4200 have always had relatively poorer performance with the open drivers than with Catalyst -- I was about to say "and I'm not sure if we know why" when it occurred to me that those parts also have shader cores which are "more weak relative to the other blocks on the chip" and so it's *possible* that making the compiled shader code more efficient would have an even bigger difference on performance than it does with larger chips.
AFAIK you need latest mesa from git and to set an environment variable : R600_DEBUG=sb.
It's also possible that the slowdown is more related to the limited memory bandwidth. I'm not sure if the kernel driver in 12.04 LTS is new enough to let you enable the most recent tiling features (which should help on a bandwidth-limited card)... have you tried them already ? Not sure of current state of hyper-z on your card, hopefully someone can comment.