Slashdot Mirror


Free/Open Source Software Hardware Requirements?

Bender asks: "Most on Slashdot seem to be concerned with getting Free/Open Source software to be compatible with hardware (firmware, register sets, etc). My question is from the other side of the table: I'm in the hardware business and I'm wondering if there are any central guidelines to better guarantee compatibility with Linux/*BSD. As an example, to guarantee that our hardware runs Microsoft Windows, we have to conform to the Windows Logo Program Requirements. These requirements dictate (among other things) firmware interfaces, debug ports, and DRM. Some of these requirements, if not implemented carefully, could trigger incompatibilities with non-Microsoft operating systems. Is there a Linux/*BSD equivalent to the Microsoft requirements to allow hardware designers to build OS agnostic systems?"

12 of 228 comments (clear)

  1. This is no problem.. by RawDigits · · Score: 5, Informative

    If you release complete documentation of said hardware ...

  2. Well... by pdbogen · · Score: 5, Insightful

    My ininformed, off-the-cuff answer would be:

    Complete and freely available documentation.

    If your product is really wanted, people will adapt (look at how hard people try to do this with things like reverse-engineered open-source drivers). If you freely provided complete documentation on your hardware, it would make it several orders of magnitude easier for developers to write software for your hardware.

  3. To make it work with linux... by Tribbin · · Score: 5, Interesting

    ... send a free piece of the hardware to every major kernel-programmer.

    --
    If you mod this up, your slashdot background will turn into a beautiful sunset!
    1. Re:To make it work with linux... by operagost · · Score: 5, Funny

      He said "Major Kernel Programmer," so you will need a commission and about 10 years in the Army. Too much trouble for a few free SATA controllers I'd say.

      --

      Gamingmuseum.com: Give your 3D accelerator a rest.
  4. Follow published standards by Anonymous Coward · · Score: 5, Informative

    Conform to freely available published standards. If you have good reason to produce proprietary hardware, publish the programming interface in sufficient detail for people to make a clean-room implementation of drivers. And don't worry -- free drivers will follow.

  5. Open Hardware Certification by Anonymous Coward · · Score: 5, Informative

    The obvious solution is the Open Hardware Certification at http://www.open-hardware.org/

  6. Hardware-compatible software by doshell · · Score: 5, Insightful

    I always felt the term "Windows compatible hardware" was a big piece of bullshit. Shouldn't it be the software to conform to the hardware, and not the other way round? Hardware seems to be the lowest common denominator here.

    Of course (as some posts already mentioned), this can only be achieved if the hardware in question is properly documented so that developers know how to write drivers for it, without having to resort to dirty (and sometimes illegal) tricks like reverse engineering.

    --
    Score: i, Imaginary
    1. Re:Hardware-compatible software by mzwaterski · · Score: 5, Insightful

      It is pretty hard for software to conform to hardware if the hardware is designed/released after the software has been released to the public.

  7. If it's open source... by ImaLamer · · Score: 5, Insightful

    ...then people will correct you if it's wrong. If you release open source drivers to the community and do it in a fashion which inspires feedback (mailing lists, forums, Sourceforge) and people find fault (bugs, standards compliance, bad code style) it can and likely will be fixed.

    If you are prepared to put paid developers at the whim of the community then you are already on the right track to wide acceptance. You have to realize it isn't your baby anymore and if you've just released a horrible monster it will get tamed and put into other projects that have nothing to do with you.

    Going open source is easy - anyone will tell you what is good and bad to do. Closed source, proprietary software tends to lean towards groupthink and suddenly a bad project is worse. There is no reason to keep discussions and ideas behind closed doors in the open source world so you can benefit from wider feedback.

    In a year you'll be discussing you're release on Slashdot, and we'll be saying *BSD is dying. But that will be some of the best marketing and market research you can do, and it will all pay off.

    I'm in a weird mood..

  8. There's a few things you can do to help by PugMajere · · Score: 5, Informative

    First of all, provide documentation and an engineering contact to answer questions about the documentation. Keep in mind that you will get asked questions from sources other than those related to the core Linux development team - the *BSD teams may have questions for you, some hobbiest may ask questions - answer them all. Incorporate the answers to their questions into your documentation, etc.

    If you are doing anything that is truly groundbreaking, for your company, but has been done in other places, at other times, the experienced OS developers in the free software community can sometimes provide invaluable feedback on what is wrong with your design.

    For example, as I understand it, the AMD64 architecture did not have an IOMMU until rather late. The Linux developers working with AMD on providing support for this architecture pointed out that it was useful and a huge performance win to have one, so AMD reworked that into the architecture. That kind of feedback is invaluable, and something a company like MicroSoft simply can't give, because they lack the necessary cross-platform experience to care. I believe the major Linux distributors are open to consulting arrangements of this type - approach them and ask them for assistance!

    If the hardware you have needs firmware to be loaded into it, consider what license the firmware is distributed under, and how that interacts with the licenses of the free software you are trying to work with. At the very least, make sure other people can redistribute the firmware, unmodified, so the users are not dependent on a download from your site.

    So, document the hardware interfaces. Answer questions on the hardware, and involve those more knowledgeable than your company early and often to give a better design.

  9. Intel is trying.... by ken-reno · · Score: 5, Informative
  10. Re:Logo? by athakur999 · · Score: 5, Informative

    The "Windows Logo Program System and Device Requirements" document linked on MS's page is 192 pages full of various hardware requirements. There's definately to it than just marketting. Most of the requirements look like pretty standard stuff to ensure that end users have as painless of an experience as possible. For example, motherboards must support booting from a CD-ROM drive and be able to support USB keyboards during bootup. Any built in USB ports must be enabled by default. Onboard graphics must be cable of 640x480 resolution. Hardware must be able to handle various shutdown modes (like hiberation) properly, etc.

    --
    "People that quote themselves in their signatures bother me" - athakur999