NF: NFE, the Nvidia nForce MCP Ethernet adapter. How did you manage to write this driver? Is it reverse-engineered?
TdR: Nvidia did not giveanyone documentation. Instead, they expect people to load a giganticblob of binary code into their kernel, and just be happy with that. Some Linux people in Germany reverse-engineered the driver years ago,but the rough story I heard is that Nvidia asked them to stop, and they did. This just astounds me! In any case, Jonathan Gray (who startedthis effort) asked for their help with a few problematic technical details, and they refused. I could not believe that, so I asked as well — and they refused again. These are Linux developers, basically placing the community in a situation where they have to run a binaryblob of unknown code from a vendor, instead of sticking to their guns about open source? I must admit, I just don't understand some people.They must have much more flexibility to their belief systems than I have.
Damien Bergamini joined Jonathan toward the end andgot all the bugs out of the driver. We are happy to say that it appearsto be working better than the Nvidia binary blob. It is alsosignificantly smaller, and it is very clean source code.
NF: In the past there was amovement in the OpenBSD community to press hardware vendors to releasedocumentation about their products (Ethernet and wireless network adapters, RAID controllers, etc.) so that drivers could be written for OpenBSD or other open source projects. Some vendors did releasedocumentation, but others didn't. Why do you think vendors do that? They don't want their products to be supported on OpenBSD?
TdR: There are always at least afew efforts in the project to get more documentation out of vendors.But some vendors are still incredibly resistant. We often run into vendors who have signed NDA agreements with Linux developers, who willthen happily write a Linux driver filled with magic numbers, which only one developer in the world understands. Having signed the NDA ensuredthat Linux got a working driver, sure, but the internals are indistinguishable from magic. It cannot be fixed by anyone else, because it is full of secrets. It is a source code version of a blob.
There are many reasons why vendors will not giveinformation out. I believe that all their reasons are a lie to thecustomer. I can get nearly complete data books for the parts that arein my car, and I should be able to get them for the parts in mycomputer. §
I use OpenBSD and NetBSD on my laptop now. Left all the linuces — waste of time. And reading interviews like these, I feel all the more glad. One of the reasons I took to Linux long ago in college (apart from my fondness for CLI and Unixy concepts) was this whole thing about "freedom" — but Linux seems to be slowly losing out on that. Giving into proprietary drivers and NDAs and stuff like that …
I am searching for a particular interview of Theo. Just can't seem to get my hands on that …