Slashdot Mirror


Free Linux Kernel Driver Development FAQ

schwaang writes "The recent announcement by Linux Kernel Developer Greg Kroah-Hartman that 'the Linux kernel community is offering all companies free Linux driver development' seems to have stirred up some interest as well as some questions — see the Slashdot discussion about the announcement. Greg K-H addresses some of the questions raised here, and raises a few more, in a new Free Linux Driver Development FAQ on his blog. An excerpt: 'Q: Are companies really going to do this? A: Yes, already we have received a number of serious queries from companies about producing Linux drivers for their devices. More information will be available later when details are firmed up."

34 of 84 comments (clear)

  1. Sweet by Stormx2 · · Score: 5, Insightful

    This makes an awful lot of sense. Currently, a lot of hardware gets drivers but without the assistance of the companies. This way, consumers benefit (if you can call us basement-bound linuxers consumers) and the companies benefit by reaching more people.

    1. Re:Sweet by Anonymous Coward · · Score: 2, Interesting

      if you can call us basement-bound linuxers consumers

      I know for sure I'd be much more likely to buy good new brand hardware if I knew it would Just Work with Linux.

      Right now I only grab the older stuff I need from ebay (used) or other stores.

    2. Re:Sweet by Jekler · · Score: 5, Insightful

      Linux users are definitely consumers. Believing that having the basic functionality of operating your computer for free isn't about exiting the market as a consumer. It's along the lines of how you should be able to operate your television for free. You don't need cable, satellite, or any product separate from the equipment itself for your TV to function. You can buy a TV, watch DVDs, tapes, home videos, set it up as a security monitor, or use it just as speakers for an audio tape player, whatever you want to do with it.

      Up until Linux, if you bought computer hardware, it was a dead box unless you also paid for an operating system, of which the only real choice was Windows. You couldn't use the hardware you had bought. You had a computer that couldn't compute anything. No matter how small your needs were, even if the only thing you ever needed to do was create plain text files, you had to pay $90+. With Windows XP Professional, it should burn any purchasing manager to think about paying $300 for a pinball game and another half dozen games, movie maker, media player, and various libraries and functions to support those applications, when the reason the computer is needed may not ever involve any of those. Whether or not those applications are needed you must pay for them. Enter Linux.

      It's a misnomer that Linux users are cheapskates. Linux users will pay just as much cold, hard cash as the next guy for applications and products that fill his needs, they're just not willing to pay for peripheral garbage that has no value to them. As a Linux user, I've personally paid $4500 for an IDE/toolkit.

      There are many Linux users who want to be consumers, and would gladly pay for things like 3D Studio Max, Photoshop CS2, etc. but those things aren't being offered to Linux users. Linux users are consumers lacking producers. We might have money but, for some reason, a lot of companies don't think a Linux user's money spends like the other kind, which is a shame because companies like Google have a lot of Linux money to throw around.

      Basement-bound Linux users are no different, eventually they become purchasing managers, company owners, or hobbyists who build up some cash and want to spend it on something. If someone makes a decent offer, they'll fork over the cash just like anyone else.

  2. Can users sign up for this? by Excelcia · · Score: 3, Funny

    Can users sign up for this? I've got some hardware I'd love Linux to support. :p

  3. Re:Somebody please explain what this all is about by Excelcia · · Score: 5, Informative
    You and I both should have read the FAQ before posting. ;)

    Q: This is a lame publicity stunt, Linux development has always been done this way.
    A: Well, the NDA program that we have set up with The Linux Foundation is new. But yes, other than that, this is exactly how Linux kernel development has been done. But it is good to point out exactly how it all works for those who are not familiar with how it works. (emphasis added)
  4. Sure you can by codepunk · · Score: 4, Informative

    Point your hardware vendor to the web site and ask them to participate. If you mean will someone reverse engineer your hardware, well they answer that question on the site FAQ and the answer is no.

    --


    Got Code?
  5. Zero by Mr.+Underbridge · · Score: 2, Funny

    A: Yes, the initial response to this was amazing, a measurable number of new Linux drivers will be created thanks to this program.

    As per a Simpson's episode, I'm reminded that zero is a number. ;)

    1. Re:Zero by AJWM · · Score: 2, Funny

      I'm reminded that zero is a number.

      Well yes, but arguably not a measurable one. ;-)

      --
      -- Alastair
    2. Re:Zero by srussell · · Score: 2, Funny

      A: Yes, the initial response to this was amazing, a measurable number of new Linux drivers will be created thanks to this program.
      As per a Simpson's episode, I'm reminded that zero is a number. ;)
      It'd be funnier if an unmeasurable number of new Linux drivers were created.

      "An infinite number of Linux drivers were created this week."

      --- SER

    3. Re:Zero by chill · · Score: 3, Funny

      It'd be funnier if an unmeasurable number of new Linux drivers were created. "An infinite number of Linux drivers were created this week."

      If only we had an infinite number of monkeys...

      (Gotta love preview. I just noticed the original article is on the Linux Kernel Monkey Log. Maybe we DO have more monkeys than I realize.)

      --
      Learning HOW to think is more important than learning WHAT to think.
    4. Re:Zero by dubbreak · · Score: 2, Funny

      If only we had an infinite number of monkeys...

      No, no, no.. that's how MS does it's driver development.

      --
      "If you are going through hell, keep going." - Winston Churchill
  6. Re:Somebody pleasexplain what this all is about by BigBuckHunter · · Score: 4, Informative

    "We'll write free drivers for your hardware if only you release the specification" - isn't this the same that was always done in Linux kernel? Or is the issue only about signing the NDA to get the specs?

    From the FAQ

    Q: This is a lame publicity stunt, Linux development has always been done this way.
    A: Well, the NDA program that we have set up with The Linux Foundation is new. But yes, other than that, this is exactly how Linux kernel development has been done. But it is good to point out exactly how it all works for those who are not familiar with how it works.


    BBH

  7. What we really need by gavink42 · · Score: 2, Informative

    What we really need is for companies to provide Linux drivers on their own, and delivered with their hardware. I've wondered for years why most of them don't do that.

    It's also a "critical mass" sort of thing. Once all hardware companies provide full support for Linux, then Linux will be in a position to truly be a mainstream replacement for Windows.

    I'm sure their reasons have to do with perceived user base. But, how do we get them to support us without that "critical mass" of users? It's like the chicken and egg thing, and very frustrating!

    1. Re:What we really need by oneandoneis2 · · Score: 3, Insightful

      Most of the online guides for the few bits of hardware that do exactly what you suggest tell you to ignore the drivers the hardware comes with, as a newer kernel will almost certainly be out by now with an updated driver. The last thing we should do is try to get them to supply the drivers with the hardware.

      What we want - and what this process does - is to get them to release enough information that a driver can be written and incorporated upstream into the kernel so that Linux supports their hardware out-of-the-box. This bypasses all the "critical mass" problems because they don't have to pay for the development costs, and negates the need to supply drivers with the hardware. How can they lose?

      --
      So.. it has come to this
    2. Re:What we really need by 0x0000 · · Score: 4, Insightful

      Linux explicitly doesn't allow that. With Linux it is all or nothing, and many hardware manufacturers choose the predictable 'nothing' instead of the less predictable 'all'.

      You're kidding yourself - I have used, and continue to use - a number of closed source binary Linux device drivers acquired from 3rd party manufacturers. The real reasons you don't see Linux device drivers shipping with hardware are:

      1. The manufacturers typically lack the software skills to create a linux device driver in-house, and don't feel that sales to Linux users will comprise sufficient dollar amount sales to justify paying a developer to create one.
      2. Plain Old Ingnorance (POI) due to not having anyone in a position of influence at the company with sufficient knowledge of things like GPL licensing and non-Windows systems to know just how full of shit remarks like the one you make above really are.
      3. All the usual hate, religion, and bribery that are brought into play when anyone in the industry so much as thinks about doing something that is not Windows.

      It's worth noting that in many cases Microsoft produces or buys drivers for hardware. thereby obviating the [percieved] need for the manufacturer to spend much effort on any OS drivers, let alone one as arcane as a *nix driver with some hippie "licensing" scheme...

      Also, if a device is designed to an existing h/w spec utilitized by M$, again - no driver needs to be produced by the h/w manufacturer.

      It's all about margins, market share, ignorance, and prejudice. The relative openness of the Linux systems has nothing to do with it, nor does your imagined inability of Systems other than "Solaris and Windows" to dynamically link a loaded binary module. Futhermore, I am unaware of any consumer-grade h/w device which has Solaris OS driver support, which does not also have support under Linux.

      The fact that you and/or your shop have never so much as looked at the Linux OS to a degree sufficient to producing a device driver for it is obvious from your posting, so please: Sit down, and STFU until such time as you have poked around a bit and actually know someting about what you're talking about - you've forced me to waste an unacceptable amount of bitwidth trying to clear the smoke you've blowing in front of the mirrors...

      --
      "The Internet is made of cats."
    3. Re:What we really need by mrchaotica · · Score: 2, Informative

      Yeah, it's a much more scalable solution for the kernel to continue to include every single driver for every single piece of hardware in existence.

      Yes, it is more scalable that way! You know why? Because a big chunk of what kernel developers do is re-organize the code to create better abstractions and reduce duplication. If every bit of hardware had it's own separate driver you'd have a huge mess (like on Windows) as opposed to the managed mess we have now.

      Besides, the only really scalable solution would be for hardware makers to design to a standard (e.g. make their hardware act like a generic device of type foo), so that all devices of the same kind can use the same driver.

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    4. Re:What we really need by schwaang · · Score: 2, Insightful

      Windows and Solaris provide a binary kernel API so that compiled code can be loaded. We can release drivers without giving away the keys to the hardware. Linux explicitly doesn't allow that. With Linux it is all or nothing, and many hardware manufacturers choose the predictable 'nothing' instead of the less predictable 'all'.

      It probably is true that the Linux kernel's intentional lack of ABI compatibility has been a hurdle for some vendors who would otherwise produce a proprietary kernel driver for their hardware. It hasn't stopped nvidia from doing that, and it hasn't stopped that company that sells winmodem drivers, among others.

      But really, closed-source drivers are bad for so many reasons that pretty much everyone here already knows about (unmaintainable, un-redistributable, can't be reviewed for security or other trust issues, can't be improved upon). Plus Linux has been able to grow very rapidly, and an ABI-compatibility constraint would have hampered that. So enabling closed-source drivers is a big lose on many fronts.

      Sure there are going to be a few vendors who feel they absolutely cannot open their drivers and cannot open their hardware specs enough to let the community produce an open driver. There are several different reasons a company might take this position, some more valid than others (given that binary drivers can be disassembled by a competing vendor anyway).

      My bet is that as these vendors see other companies having a good working relationship with the kernel community, more of them will see that the benefits of opening (shifting some development/support/maintenance/liability costs outside of their own budgets, having access to the increasing Linux market) outweigh the benefits of keeping their specs closed.

      So anything Greg K-H & other kernel devs & the OSDL/Linux Foundation do to reach out to these vendors and provide a process that they can understand and trust deserves kudos, IMHO.
    5. Re:What we really need by juhaz · · Score: 2, Interesting

      That's absolutely the worst thing that can possibly happen.

      Windows is pretty stable in theory and on it's own. It's not stable in practice. Why?
      Because companies provide drivers on their own and delivered with their hardware. Drivers that suck. Drivers that are unstable pieces of crap. Drivers that take the OS down with them.

      It's also a "critical mass" sort of thing. Once all hardware companies provide full support for Linux, then Linux will be in a position to truly be a mainstream replacement for Windows.

      Once all hardware companies provide the same kind of "support" for Linux, Linux won't have to replace windows, Linux will BE Windows.

  8. Could've solved broadcom by g4sy · · Score: 3, Informative

    Yes, this is not a lot different than the way device drivers have always been incorporated into the kernel. But having a willingness to work with NDAs of various companies MIGHT have solved the whole fiasco with Broadcom wireless chipsets (if you didn't think it was a fiasco, you didn't buy a iBook G4 the day they were released, May 2004, only to find out that you would be unable to use wireless on it for the next 2 years at least).
    I don't know but I think that maybe such a system might have made the suits and lawyers with Broadcom comfortable enough to allow co-operation on a linux device driver... *sigh* would have been nice.

    --
    somewhere, on a Big Red Sign:
    if(color==blue){speed--;}
  9. Cirrus Logic doesn't appreciate help by ClaesMogren · · Score: 5, Interesting

    Unfortunately a lot of companies seem totally unable to see the benefits of external contributors. They don't even see the point in getting drivers into the mainline kernel. Just take a look at this response from Cirrus Logic regarding their ep93xx boards:

    http://www.freelists.org/archives/linux-cirrus/02- 2007/msg00026.html/

    Looks like the in house coding team was bummed that Lennert Buytenhek did a better job on the port then their whole team. Ridiculous response! /C.M

    --
    /C.M
    1. Re:Cirrus Logic doesn't appreciate help by Intron · · Score: 2, Informative

      Nobody in a position of authority at Cirrus is likely to have written that post. It is full of spelling and grammar errors. My guess is some low-level developer figured it was job security to try to get rid of the outside developer. Also, why don't links work on that page?

      --
      Intron: the portion of DNA which expresses nothing useful.
  10. Re:how do these developers get paid? by TheRaven64 · · Score: 3, Interesting
    Many of them are paid by distributions. Novell and RedHat, for example, make money buy selling support for Linux. The more hardware their distribution supports, the easier it is to sell. Getting good drivers in the upstream tree is the easiest way of doing this, so they pay kernel developers. If you are able to write kernel code and interested in doing it for a living, I would suggest you send your CV off to the big distros (and possibly IBM) and ask if they have any openings.

    You may also be able to get some short-term work from companies wanting to switch existing infrastructure to Linux and needing drivers for existing hardware, although this is likely to be contingent on your acquiring the device specs first.

    --
    I am TheRaven on Soylent News
  11. Not entirely true either by WindBourne · · Score: 4, Insightful

    For starters, the norm to starting this process is that the hardware is out and somebody has an itch. Then they have to go to the hassle of getting the manufacturers specs, etc.

    Now, some manufacturer will be approaching the kernel team and offering the specs. The kernel team will probably pick an active developer who wishes to do it. Interestingly, manufacturers will be more likely to bring in alpha (or beta) hardware to have the drivers built BEFORE going to market. Once they figure out the sales potential from Linux, then they will be more likely to develop the drivers in-house.

    --
    I prefer the "u" in honour as it seems to be missing these days.
  12. liability? by popeyethesailor · · Score: 2, Interesting

    How does the foundation handle liability issues? If a driver doesnt work as advertised, who gets the blame? What happens if a buggy driver fries the device in question?

    1. Re:liability? by Frequently_Asked_Ans · · Score: 3, Informative
      11. because the program is licensed free of charge, there is no warranty for the program, to the extent permitted by applicable law. except when otherwise stated in writing the copyright holders and/or other parties provide the program "as is" without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. the entire risk as to the quality and performance of the program is with you. should the program prove defective, you assume the cost of all necessary servicing, repair or correction.

      heard of the GPL? http://www.gnu.org/copyleft/gpl.html

      --
      "Stallman says add to this code and you are one of us. Gates says use this code and you belong to us."
    2. Re:liability? by the_womble · · Score: 2, Insightful
      Besides, is oracle liable for your data loss when you lose your oracle instance? MS when you lose your IIS website?

      I think the real point in those situations is "if it goes wrong I can put the blame on a big company the PHB has heard of, otherwise it will be my fault".

    3. Re:liability? by chill · · Score: 3, Insightful

      I think the real point in those situations is "if it goes wrong I can put the blame on a big company the PHB has heard of, otherwise it will be my fault".

      Guess what. Odds are, it'll still be your fault. Your fault for not getting the specs right. Your fault for not working with the major vendor to make it work. After all, they're a big company and have hundreds if not thousands of other installations working right. Thus, if they all work and yours doesn't -- it is your fault.

      The ONLY way you might get away with that is if some executive MANDATED you use a specific product, overriding your objections or advise to the contrary, and he is a known asshole in the company. Even then, it is still iffy.

      And finally, even if it isn't your fault and you can successfully blame someone else, you'll still get a bit of a reputation of "that guy who couldn't get it done".

      Good luck!

      --
      Learning HOW to think is more important than learning WHAT to think.
  13. Re:how do these developers get paid? by oliverthered · · Score: 2, Insightful

    First you have to show your intentions and your skills, write a few drivers and try to get them into the kernel tree.

    Then you have to try and find yourself a job where they let you do kernel development, if your good enough then all you have to do is shout for a new job and someone will pick you up.

    Unless your really good and dedicated your going to have a hard time getting paid for developing kernel drivers.

    --
    thank God the internet isn't a human right.
  14. RTFA actually has some meaning here by jimicus · · Score: 2, Informative

    The FA is an FAQ, FFS! Almost every question which has been brought up in the discussion is already in the FAQ because it's an FAQ, that's what it's for.

  15. Yes it's always done like that mostly, but.... by vdboor · · Score: 3, Insightful

    isn't this the same that was always done in Linux kernel?

    Yes, but... Who told the hardware vendors about that? :-p

    Someone finally did, explained the benefits, and got an amazing number of responses :-)

    We take much for granted. When you meet a Linux newbie you'll notice how much "hidden knowledge" we have. Who the community is, that the FSF / GPL is, how the OS is layered in tools and front ends, what "compiling" does, how communication is done, how to find answers for problems. Linux newbies are not aware of this. The same can be said about hardware vendors.

    Even if a vendor jumped in a random channel, the average response is "Open Source it". We understand the meaning and advantages of that approach. They only think "help, I must give away my code". It was about time someone stepped up to shed some light on these matters.

    --
    The best way to accelerate a windows server is by 9.81 m/s2 ;-)
  16. Re:How is this news? by cortana · · Score: 2, Interesting

    The main idea is to let companies know that it is possible to release hardware specifications in an NDA-esque way to kernel developers *without* having to publish their /precious/ secrets. Chances are that, the secrets are not *within the code* but developers need to know about them to implement the drivers.
    The NDAs that Grek K-H talked about were of the kind that would keep details about the release of products secret until a specific date (e.g., product launch). I don't think he was talking about the kind of NDAs that maintain secrecy about hardware implementation details, etc. Such NDAs are harmful because they prevent the driver from being modified once the original maintainer dies, loses interest, etc. They should be rejected with prejudice.
  17. Re:How do they determine that? by WindBourne · · Score: 2, Interesting

    hmmm. Perhaps it is time to have the distros send out info about the systems that are configured. i.e. during the install, ask the admin if the object to certain info going out about the system (ala Windows). This could be done in the open and could use a number of serial numbers from the system so that unique systems can be determined. And privacy can be handled by not using macs or ip addresses.

    --
    I prefer the "u" in honour as it seems to be missing these days.
  18. monkey? by Frank+Grimes · · Score: 2, Insightful

    The announcement would likely get MORE response if it had been on an OSDL/Linux Foundation web page and signed by all of the major Linux players, rather than on a page titled "linux kernel monkey log". That said, I want Linux to succeed very much, and I think this is a good direction to take things.

    --
    CfkRAp1041vYQVbFY1aIwA== RV/hBCLKKcSTP5UFK3kqsg==
  19. Re:how do these developers get paid? by schwaang · · Score: 2, Informative

    Just like with the rest of the Open Source community, there are a mix of motives and situations. I'm not a kernel developer, but as an observer of FOSS generally:

    Some are paid to work on Linux as employees of Linux distros like Red Hat or Novel, or work for hardware or system vendors who want their products to work with Linux (HP, Intel, Dell, etc.).

    Some are in job positions in corporations where they use Linux, and need/want a particular piece of third-party hardware to work for their application (be it a financial database or what have you).

    Some are in academia and have the time to "publish" open source.

    Some are just enthusiasts or experts or learners in a particular domain, and enjoy the challenge and notoriety they get. Some leverage that unpaid notoriety in order to get paying jobs. (FOSS credentials are portable.)

    And yeah, some just get cheetos brought down to the basement by mom. ;)