Alan Hargreaves' Blog

The ramblings of an Australian SaND TSC* Principal Field Technologist

Promepis has to do porting work beyond Linux 2.6.7

This article talks about a company having to “fix” some drivers because of changes in micro-releases of the Linux kernel.


“MEPIS was slow to introduce a newer kernel due to instabilities caused by restrictive policy and code changes introduced by the kernel team after 2.6.7,” Woodford says. “The changes have raised the bar for Linux distro developers, because it is necessary to recode some third party drivers and abandon others, including the unfortunate loss of the Philips WebCam driver.”

It’s all well and good to point out just how much hardware is supported, but if you are going to annoy the folks who make the drivers for the hardware like this, how long are you going to keep support for them all?

For various reasons some vendors elect to keep their code proprietry. You know what? They have a right to make that decision. It comes down to the question, do you want support for the hardware or not? The crusade for having only open sourced drivers link with the kernel is well and good, but does not take many company’s business processes into account. There comes a point when ideology simply gets in the way of practicality. I think we’re starting to see it here. I hope that common sense starts to break out as a result.

It’s worth noting that the only time that vendors need to do a recompile or modification for a driver for Solaris is at the minor release level (i.e. 5.9 – 5.10). Micro releases (e.g. 2.5 – 2.5.1) and patches (unless we screw up) do not change the interfaces. Many vendors who find this a pleasant change.

Advertisements

Written by Alan

January 10, 2005 at 1:49 pm

Posted in Solaris

6 Responses

Subscribe to comments with RSS.

  1. My experience is that Solaris drivers work quite happily in subsequent releases most of the time, so you don’t even need a recompile or new driver to go forward a release or two. Although the LSI mega driver appears to have finally given up under Solaris 10. (And, as far as I’m concerned, requiring customers to worry about kernel recompilation at all is something that belongs to the 1980s.)

    Peter Tribble

    January 10, 2005 at 2:30 pm

  2. Hopefully Promepis and other vendors will realise the TCO advantage of Solaris’ (relatively) stable ABI over Linux will make it worth their while to support Solaris. Even if it is eventually at the expense of dropping Linux support.

    I hope someone from the ISV contact team (whatever they’re called!) is calling Promepis RIGHT NOW to highlight this fact, and to get them on board.

    Rich Teer

    January 10, 2005 at 2:39 pm

  3. “For various reasons some vendors elect to keep their code proprietry. You know what? They have a right to make that decision.”
    And it’s Linux’s kernel developers decision what to do with the kernel.
    If MEPIS wants to get their driver updated with every release then they should release the source and merge it in the kernel. That’s how Linux has always works, and if they were serious about their linux support they should know that. Maybe Opensolaris will be different. Linux is certainly not going to change.
    Take a look at http://www.kroah.com/log/linux/stable_api_nonsense.html?seemore=y

    -

    January 10, 2005 at 4:14 pm

  4. Not only the device drivers, but the applications may need to be recompiled to run on a different Linux kernel 😦

    Rayson Ho

    January 10, 2005 at 4:36 pm

  5. I actually did have a read of that the other day and it saddens me. I agree it is the decision of the Linux kernel coders, but unfortunately it is an ideological based decision, not a practical one.
    As such linux has already lost the driver to one piece of hardware (the Phillips webcam). This will almost cerainly upset some folks who were running it.
    One of the big arguments that folks use for the linux environment over the solaris environment is the number of hardware devices supported. If vendors of cards start regarding fixing their driver for every kernel release as too much work, then this number will decrease.
    One of the basics of modular programming and software engineering is that a change in one piece of code should not impact code that is unrelated. This is what interface specifications are for.
    As an example, I am currently looking at a bug-fix for Solaris 8 and 9 in the procfs code. The fix in Solaris 10 made an interface change. It actually tidied up some of the cpu_t structure. I can’t do this in Solaris 8 and 9 as that would mean that third party products such as filesystems and schedulers would break. Top would also break. Instead I’m looking at a similar fix that does not change the interface.
    This is part of what we guarantee in Solaris.
    The other thing to consider here is that if you as a vendor have invested a lot in a particular driver, you may not want someone (who knows very little about the actual hardware) fiddling with it. As such Opening the driver really does not give you very much as if you don’t do the updates, someone else will and if they break it, it’s your company who gets the bad press, not the person who did the broken port.

    Alan Hargreaves

    January 10, 2005 at 9:43 pm

  6. That should have read proc_t, not cpu_t. I don’t know what I was thinking then.

    Alan Hargreaves

    January 10, 2005 at 10:58 pm


Comments are closed.

%d bloggers like this: