As regular readers will know I’ve been helping out with a driver to support the environmental monitoring hardware found in Sun’s E250 and E450 servers for a while – mostly reverse engineering and testing of the work done by Eric Brower. However as Eric is a little short on time at the moment, I’ve started to get my hands dirty for the first time and thanks to people doing almost instant testing of the patches I’m releasing, things are progressing really well.
I’m now hosting a Subversion repository for the driver and have also put up a page giving a few details.
Over the last week I’ve ported the driver to the 2.6.17 kernel series which was certainly an experience, given that I’ve never done any real kernel (or C!) development before. I can now understand why people moan about not having a stable kernel API — laziness. All the changes I had to accommodate going from the 2.6.11 to the 2.6.17 series were designed to provide more functionality and/or make life easier – I think it would be insane to slow the progression of Linux simply to keep a few developers happy (most of whom work on proprietary drivers and would like to be able to just write a driver and leave it unmaintained forevermore).
In addition to the porting, I’ve fixed a stack of bugs reported by the guy currently testing things for me (who I know only as ‘Eki’) so compilation with gcc 4.x now works, as does static compilation and static usage – the driver is essentially in two parts where one has to be loaded before the other, which wasn’t happening when it was statically linked. I had to ask on LKML to find the solution to this and was given a lengthy explanation of how to do it by Arjan van de Ven.
It’s great to see the community working so well – without it, this driver certainly wouldn’t exist.
As far as the driver is concerned, the next steps are to implement interrupt handling then clean-up the code a bit. That may take some time, but once that’s done the driver can start its journey towards being merged into Linus’ tree and becoming part of the kernel proper.
While I’m on the topic of Linux kernel development, it’s great to see a lot of work going on at the moment to support Sun’s new sun4v architecture (for the UltraSPARC T1 processor), mostly being done by David Miller. Naturally I will almost certainly never own such an exciting (both in terms of technology and philosophy – the CPU is GPL’d as regular readers here will know) piece of hardware since it’s rather out of my price range, but the side-effect of this work is that improvements are being made to SPARC64 support in general which benefit people like me with older Sun hardware. I don’t know whether Sun are employing David or just providing hardware, but in either case, thanks Sun!



