Jump to content

Contribute for driver development?


Would you contribute towards OS X driver development?  

110 members have voted

  1. 1. Would you be willing to pay for a programmer's services to have native OS X drivers developed?

    • Yes, I would pledge up to €10
      62
    • Yes, I would pledge up to €30
      16
    • Yes, I would pldege more than €30
      11
    • No, I will wait for others to pledge and get the driver for free when it's put online
      12
    • I will not pledge, I'd rather buy supported hardware.
      7
    • I will not pledge - this is a scam
      2
  2. 2. Do you think the drivers should be open-sourced once the expected compensation has been met?

    • Yes, definitely open-source
      82
    • No, but it should be freely downloadable
      20
    • No, it can be a commercial offering as long as it's inexpensive
      8
  3. 3. Which driver would you want to see ported first?

    • Intel Wireless 2200 / 3945 / 4965 (as Airport)
      49
    • Audio drivers (ie. OSSv4 ported to CoreAudio)
      40
    • Graphic drivers
      48
    • nForce / VIA or other ATA/chipset drivers
      22
    • SpeedStep (eg. AMD Cool'n'quiet), sensors or similar system drivers
      24
    • Other drivers (post in thread)
      9


41 posts in this topic

Recommended Posts

Hi guys,

 

The biggest problem with OSx86 currently is hardware support and lack of drivers. A lot of opensource drivers exist, and lots of hardware also has documentation. But no one has really picked up the task of developing or porting existing drivers on a bigger / more serious scale.

 

After the kernel work is done, I'd like to work on porting drivers properly for OS X so that we can get rid of hacked/patched/half-baked drivers. Several other devices don't even have patched drivers. But as everyone knows driver development is a difficult and time consuming job, and it's not always possible for hobbyists to spend the time/effort to create a functional driver within a reasonable amount of time. So I'd like to make a poll to see how many of us are willing to pay for a developer's time to get drivers coded.

 

The idea is that, the drivers will be open-source and "free", but since developing it takes time, if a programmer can be compensated for his/her time, it's a win-win situation for all. This means a lot of people (probably hundreds) need to pledge some small amount. Typically a programmer's day job would fetch him €20/hr. Considering a driver needs at least a couple months work, it would mean about 400 people pledging €10 each, for example. Or 200 people pledging €20 each. Another possibility is micropayments of say 1 or 2 euro per download, hoping several thousand people download the driver over a month or two.

 

Once the development is complete and the programmer (in this case I) has received whatever compensation they hoped for, the driver and source will be put online for others to use/improve. If more than 1 dev work on the project, they can decide internally how to split up the funds. Note that ported drivers are not incompatible with any opensource license (ie. even GPL is fine, not just BSD) because you are paying for the programmer's services, not the final product, in case it is opensourced. If not, it would still be legal and allowed if the original driver is under BSD license. This kind of model is used by Intel eg. for its graphic and wifi drivers for Linux, or Canonical for ubuntu.

 

Also because this is basically paid work, a programmer can work full-time on it, and have proper QA and testing. So driver quality is guaranteed.

 

Think this is a good idea? I post this because currently I have at least a couple of months free and would like to make full use of it. If you think this is a ploy to make money - it is :D Just something that benefits everyone, however.

 

Cheers.

Link to comment
Share on other sites

As you can see I'm donater :P

if you look @ the poll moost of us would not mind paying / donating

to get the hardware working. but once the cost are paid we would like

to see it become open source.

besides if you get the Intel Wireless 2200 / 3945 / 4965 (as Airport)

working your name will go upthere in the hall of fame :(

Link to comment
Share on other sites

I like the idea, but how do we know the programmer will be able to create the driver?

If I understand correctly, we pay the programmer, he gets to work, and publishes the driver.

But what if he can't finish the driver, or it's full of bugs, ..

 

Another idea is to create some kind of driver-site restricted to donators / devs, so you pay 1$ (for example) and you can get support, request drivers, good documentation, source of drivers, download the ones you need..

 

Another thing you should keep in mind, this community is based on hacked osx versions, uploaded to torrent trackers. People _will_ find a way to get drivers for free

 

To conclude, there is a need for decent documentation/support/devs/drivers but creating a "win/win" system will be a very hard job :)

Link to comment
Share on other sites

Heh I guess you'll just have to trust the programmer :( (who on the flip side will be trusting the community to actually contribute..)

 

As for finding a way to get it for free - there are 2 things: First off, a programmer competent enough to create a driver from scratch (or even port one) will know of ways to "protect" their work - half the 'hacker' people here ride on work done by the real devs anyway :( and second, more importantly: The drivers WILL ALREADY BE freely downloadable. LOL. :rolleyes:

Link to comment
Share on other sites

The programmer doesn't have to trust the community, he gets the money before the driver is finished.

Developers being able to protect their work, I seriously doubt it, but that of course isn't necessary when it's released for free.

 

But if it's released for free, and donations are not necessary, what's the difference with the current system?

 

Sorry for being a pain in the ass, I support donations towards devs but I don't think I'd donate before I _know_ the software works / will work.

Link to comment
Share on other sites

Hey, yep if you read the original post carefully, I said that the programmer will continue writing the driver until it's ready, and then wait while the total contribution matches what he expects. Only then will it be put online - so you know the driver is ready. This is actually pretty relaxed (and requires the programmer to hope he actually gets the money!)

 

If you look at any other place where people pay for services (as opposed to products), it's always another way. ie. you pay while development is going on. Take Google Summer of Code for example, they have 3 phases: Initially the student gets 10% of total to get him started. Midway through the project he submits a progress report and gets another 40%. At the end of the project the final report and deliverables are submitted and he gets the last 50%.

 

I totally understand unwillingness to pay/contribute without actually trying out the driver/software (hey I'm a consumer too). But look at it also from the developer's perspective - he just spent 2 months working full time writing the driver, and what if no one is interested in contributing? That's some €6-7k worth of wages he could otherwise have gotten if working for a company :gathering: So it's kind of a gamble for both parties, I just think it's more so for the developer than someone contributing 10 bucks.

 

Anyway, the moment you bring money into the picture it starts to get complicated, but I just think this development model is going to work out well. There is the "No I will not pledge - this is a scam" option in the poll if you're not convinced :D

 

Cheers.

Link to comment
Share on other sites

I didn't vote for the scam because I think a system like this is absolutely necessary, and apparently I misunderstood a part of the idea. ( it's better now :thumbsdown_anim: )

One more question: how do we know it's not a scam ( how can we check that he (the dev) did actually create a _working_ driver?

 

Again, I'm sorry for all the questions :)

Link to comment
Share on other sites

Hmm... what do you suggest? I can't think of a way to convince anyone that the driver works, short of sending them a copy to try out. Actually I'll gladly send a copy unconditionally to someone who's doubting, rather than going out of my way trying to prove anything :P

Link to comment
Share on other sites

This whole topic fills me with dread. As anyone who has been in this scene any length of time will know, such schemes have been attempted before and generally ended in disaster. I won't mention names or projects, the purpose of this post is not to reopen old wounds, but I still vividly recall the occasion when one high-profile developer publically threatened to stop development because someone else's project was getting more donations than his, and whist claiming to be continuing development privately pursued other interests in order for donations to build up before releasing anything.

 

Put simply, for a scheme like this to work, there can be no guarantees: neither to the user, of suitability for any purpose (sorry, if you want guarantees, get a mac) nor to the developer of income (sorry, if you want a stable income, get a job) But both development and donation must remain entirely voluntary.

 

Likewise, the source must be made open, as evidenced by the numerous disasters we have seen where breakthroughs have been made only to die when the developer disappears or loses interest taking the source with them. In most cases, projects are based on pre-existing source under GPL or similar, so this won't be a problem, but where a driver is written from scratch, the danger that the driver will be orphaned requiring binary hacking, duplicated effort, or simply end of support for given hardware is ever-present, unless the source is kept open.

 

Any variation of holding out for a specific sum, or demanding proof of function before payment basically just speaks of a lack of trust and expectation of results which can only lead to drama and recriminations. What if a binary driver is released and it doesn't work for the specific hardware owned by a $10,- donator? is the developer expected to write & debug for one specific revision or variation for that $10,- ? or is the donator entitled to a refund because the driver doesn't work?

 

I could cite loads of examples but like I said, this is not about the past, but about the future. Every rentacoder initiative has failed. Every donations scheme that has attached results to money has failed with pageloads of flaming recriminations.

 

I know it's tempting to say that a developers work is worth $X.- and it is, but that can't be recouped in this way. Likewise it is tempting to feel that donating to a project gives you right to expect results, but this is equally false.

 

In short: If you're doing it for the money, stop now. If you think this is a neat way to buy a driver, ditto. Write because the need is there, for your own learning, for the challenge, and for the further development of OS X. Donate because it's the right thing to do, to encourage development, and to show appreciation for the time of others. And finally, keep the source open, that we may all stand on the shoulders of giants.

Link to comment
Share on other sites

Put simply, for a scheme like this to work, there can be no guarantees: neither to the user, of suitability for any purpose (sorry, if you want guarantees, get a mac) nor to the developer of income (sorry, if you want a stable income, get a job) But both development and donation must remain entirely voluntary.

 

Write because the need is there, for your own learning, for the challenge, and for the further development of OS X. Donate because it's the right thing to do, to encourage development, and to show appreciation for the time of others. And finally, keep the source open, that we may all stand on the shoulders of giants.

 

Sorry Hagar, I have to disagree here. Time to think outside of the "right thing to do" and "for the love of knowledge" mindset, because there are some things which would NEVER get done otherwise as part-time hobby projects. I have worked on Voodoo kernel a few hours every single day for the past couple of months, and I've got logs to corroborate it. But more than this I am not willing to do as 'hobby', neither anyone else ever will.

 

You say such attempts have failed in the past: it's only because these people have not been honest about it. When you start to ask for "donations" is where the entire problem starts. Then you have people claiming they contributed to the code but got nothing. You have people expecting some set amount without actually making it clear, then ceasing development because they didn't get that much. And then you have these people not opening sources, causing unfounded allegations to be hurled across.

 

I can't be any more upfront about it. I've put a straight 'quote' of €20/hr, and given an indication that about €3k-4k is the total expense. Further, I made it clear that no one has to pay, since it will be put up for free download anyway once those who can pay have contributed as much as required. And it's an open work created from scratch, by one developer, so no issue of "you stolez my codez" either. As for the issue of knowing whether the driver actually works, I'd just say it's a trust issue. Use your judgment. It's a two way street, I spend my time trusting the community will pay up. The community pays trusting the driver will work. As I've posted before, if someone still doesn't trust me enough to pay without trying it out, I'll gladly send them a copy unconditionally.

 

In summary, this could be the only way for certain projects to be completed. Too bad if the rest of the community doesn't think so, as I'll just go work for a lab or something (that's what I did last summer). Freelancing isn't new to me, but the osx86 community is, so I don't understand this whole mindset.. on one end you have people gladly paying $160 for a hardware dongle because it can't be copied/torrented, and on another end you have people up in arms when a developer asks if the community wants to avail of his services for single-digit-dollars each.

 

The drivers will always be open-source, by the way, as are all of my projects.

 

Cheers.

Link to comment
Share on other sites

I think for the really big projects this is the only way to go.

 

There is no doubt that the Voodoo kernel development has unearthed some extremely talented programmers who would be able to create the drivers needed. I think if a few of them, knowing they would get some financial reward for their work, would be willing to commit the time to these projects.

 

What I have noticed is that the developers making the actual end user distributions are actually getting donations but the behind the scenes developer gets very little reward. It really should be the other way around and the really talented people are being turned away because they feel like they are being exploited.

 

Things need to change fast, we need a real focus and community effort. The community is an absolute mess right now and there is unfortunately no sign its going to get better. It will die i we lose the real developers, you can only go so far editing plists.

Link to comment
Share on other sites

so what do you need to learn to port osx Drivers or write them ??

 

 

Lots of time

Good C++ skills

Experience with IOKit (well documented)

In-depth knowledge of computer architecture and the xnu kernel

Ability to read extremely cryptic code to figure out what it does, as a majority of hardware has no documentation

And most of all: A lot of determination - must not get annoyed at having to reboot 200 times a day and not knowing why your kext is hard freezing etc.

 

It's not like figuring out "tricks" like we do when running apple updates or hacking plists. This is real programming.

 

But it is also not very hard for the seasoned programmer - you just need to have a lot of time and motivation and be willing to do tons of reading, coding, testing on your own. Everyone's a beginner at some point - so if you want to write IOKit drivers: read the docs, download Xcode and get down to it...

Link to comment
Share on other sites

Lots of time

Good C++ skills

Experience with IOKit (well documented)

In-depth knowledge of computer architecture and the xnu kernel

Ability to read extremely cryptic code to figure out what it does, as a majority of hardware has no documentation

And most of all: A lot of determination - must not get annoyed at having to reboot 200 times a day and not knowing why your kext is hard freezing etc.

 

It's not like figuring out "tricks" like we do when running apple updates or hacking plists. This is real programming.

 

But it is also not very hard for the seasoned programmer - you just need to have a lot of time and motivation and be willing to do tons of reading, coding, testing on your own. Everyone's a beginner at some point - so if you want to write IOKit drivers: read the docs, download Xcode and get down to it...

C++ i know really really well IOKIT i dont know but can use QT gui to make kext ??

Link to comment
Share on other sites

Hagar is absolutely right. These things always end in disaster. The best you can hope for is a "level of effort" on the part of a programmer or project team, but there are no guarantees anything will ever be delivered that meets your expectations. The same is true on the developer's end. There are no guarantees that he will be compensated in any way for putting in long hours of programming if he takes on a project like a device driver with no agreement up-front.

 

In a larger community - like Linux - I can donate several months of my spare time working on a driver and I know, in the end, I will get the benefits of somebody ELSE working on another totally different driver down the road. So I gladly donate my time because I know I will get something back (even if it's not money).

 

In the OSX space there simply aren't enough qualified programmers interested in writing device drivers. There's virtually no incentive to do it. 100,000 people want something and when the 500 people capable of making it say they want to get paid for it they get treated like they have the plague.

 

Too many takers and not enough givers. My hat's off to those who donate to the ongoing projects. If the number of donors went up a hundred-fold then maybe some of this stuff would get done.

Link to comment
Share on other sites

I can't say 'these things always end in disaster' because this method hasn't been tried before in osx86 community, right? We've only had people ask for voluntary donations so far.

 

Anyway I started working on intel wifi drivers. Right now just figuring out the Airport interface properly. A short screencast of a 2 hour hackjob is at: http://www.sendspace.com/file/wy71h8

 

It's just a fake airport interface into which I'll "plug" the actual hardware driver code. Note that the crash report you see is for a comparison to iwidarwin's airport implementation :) The fake airport driver doesn't crash (it's Airport 2) because it doesn't do anything with the hardware yet.

Link to comment
Share on other sites

I also like the idea, i think that is cool that somebody is interesting

in developing drivers, i could donate like 10€.

I think that the most demand drivers are wifi and graphics cards,

besides if you get the Atheros AR5007EG and the latest nVidia Shared Memory Graphics Cards

working, you will go to the heaven :).

Link to comment
Share on other sites

 Share

×
×
  • Create New...