PPC Linux: Becoming a Third Class Citizen

by chromatic

When I switched over to Linux full-time back in 1998, I had a run-in with a particular video card manufacturer. My how times have changed.

Yes, this manufacturer eventually released beta, binary-only drivers for Linux. No, they never followed up on their pledge to send me a prerelease GeForce 2 (wow, this was a while ago!) to make up for my pain and suffering with the TNT 2 driver situation. No, they never released source code for their 2D drivers. (That's two fibs from one marketing guy -- you'd think I'd learned my lesson.)

One of my points in pushing for open drivers was that the world of free Unix is not limited to Linux. It's nice to see the manufacturer finally supporting FreeBSD. Of course, the closed source drivers may be causing the kernel swap daemon to crash. That's unfixable; how are kernel developers to debug code they can't read? Since this has bitten me several times in the past months, the binary-drivers are next to useless.

Far be it from me to rant and rave about just one video card manufacturer, though -- especially as this all happened on the x86 platform. Back to the laptop.

To write effectively about Linux, I need to run it on my laptop. I'm also interested in Linux on alternate platforms (to become an article series). Not least, Mac OS X isn't Free enough for day-to-day use. I've been pleased with Gentoo GNU/Linux on a server, so it seemed like a natural fit.

I found it pleasing that Apple is using an alternate video card manufacturer in their laptops. This is nice hardware; I'm very pleased. The company has been helping a couple of XFree86 developers write drivers for the video chipsets.

Unfortunately, the situation is much, much worse on the PPC platform. Not only are there many times fewer developers, but even though the company has recently released binary-only drivers, they support x86 only!

I'm writing this on an operating system built on a free Unix. I'm hardly the only person running an operating system composed of or including a free Unix on the PPC platform. My colleague Edd, for example, is running Debian PPC on his iBook. For the sake of argument, I'll also consider everyone running Mac OS X to be another vote in favor of the viability of Unix on PPC. (You can't swing a meerkat in my group at O'Reilly without hitting several people running some sort of Unix.)

Here's my postulate. Linux is worth supporting, as evidenced by quasi-open and truly open and even binary only drivers. Unix on PPC is viable, with so many people switching and quite a few weirdoes like me running Linux. Thus, does it not make sense that Linux PPC deserves a little support, let alone the venerable BSDs?

After four years of running Linux on my desktop, I'm used to being treated like a second-class citizen. Now that I'm on a different platform, I'm even lower on the ladder.

Hardware Manufacturers, wise up! If you're going to support a platform (either hardware or software), don't do it halfway.

Update, 02 December 2002: I forgot to mention the video card in question.

Am I nutty, or am I on to something here?


2002-12-01 09:51:03
paying the bills
developing hardware drivers in the competitive video card industry costs. not only keeping top-notch talent but staying a step ahead.
releasing the code for free might make them popular with opensource folks. and with their competition.
but it doesn't pay the bills.
2002-12-01 17:07:18
One thing I don't understand: why is it necessary for hardware manufacturers to keep their drivers closed? I can understand if they were charging for the drivers in the first place, but they don't. The cost of development is passed onto the consumer. This I do understand. The drivers are necessary and therefore must be present, thus it is incumbent upon the company making the hardware to make sure that the drivers are available. However, once that has been done what gain is there in keeping the drivers closed? Would there not be a potential plus for the hardware makers to make their work public in the form of source so that they make it possible for others to adapt their product on untargeted hardware and thus become more prevalent in the market still?
I am not a programmer so I truly don't understand the in's and out's of this, so if I am grossly ignorant then at least I will state that I am aware of it. However, on a first take it seems that the control is only useful for companies that make a profit off of their software, Adobe, Microsoft, etc., whereas there is no gain to be had for a company which makes a piece of hardware to be used. They make their money on the initial sale of the hardware. If I am completely wrong, again I fully admit this possibility, would someone minde explaining the benefit a hardware company has in keeping their drivers closed?
2002-12-01 17:08:25
paying the bills
I don't buy this argument.

1) I've already paid for the hardware.
2) The companies already release free-as-in-cost drivers for Windows and x86 Linux.
3) OpenGL 1.2 and 2.0 are standards; it's no secret what interfaces the drivers must expose.
4) Hardware and software can be reverse-engineered, especially when kernel source code is available.
5) The XFree86 and DRI folks will provide free-as-in-freedom drivers eventually.

Customer support doesn't pay the bills, but many companies do it anyway.

2002-12-02 11:47:12
Drivers and responsibility
I can not speak for hardware companies, as I don't work for one. I used to work for a modem manufacturer, so I can speak from a certain degree of knowledge, but not a huge degree -- I was a telephone tech support grunt, and the company has long since gone Chapter 11.

On the one hand, there may be some benefit to making drivers open source, in that a source code driver would allow uptake on other platforms not originally targetted by the manufacturer. On the other hand, there are a few downsides to this scenario. The disadvantage is that the company is no longer in control of the destiny of the part. Once a driver has been released as source, the company cannot any longer use drivers as leverage in dealing with other companies or with the public.

This loss of control means that, for instance, if there is no HARDware difference between, say, an ATI 9700 Pro for PC and a 9700 Pro for Mac, then there is no way for ATI to leverage platform differences to generate greater revenue by charging more for the part for the Mac. In that case, if they have released the driver as source, Apple simply tasks a couple of engineers to port the code.

Loss of driver control also means that it is very possible that, in the above situation for example, Apple could add additional value to the driver, in the form of turning on certain features that aren't turned on in the ATI-produced Windows driver. Doing so makes ATI look bad, and also destroys ATI's marketing schedule for board revisions. And what happens if ATI hasn't enabled certain features because they aren't quite ready for use on a given run of board? If there are still known-only-to-ATI bugs in the onboard controller code, they could be exposed by an open-source driver, and ATI's reputation (and stock price) could tank as a result.

Also, open source drivers eliminate a revenue possibility for ATI, if they want to produce a new "revision" of a given product, whose only differentiator is in the software driver and what it enables.

Also, if ATI releases the source to their drivers, then they have much less control over which software products can integrate the driver, or otherwise make a product that works with or around it. They cannot actually charge software companies for access licenses. Their whole ability to negotiate relationships with hardware and software companies would change, in a way that would likely bring in less money.

And again, there is the argument that the manufacturer becomes at least somewhat responsible for both the quality of the released driver and its end uses. I think this argument is full of holes, but I've seen CEOs frightened into keeping source proprietary by the thought of having to deal with the hassles that could theoretically attend the release of driver code. A good for-instance is this: if Gramma Jones' OpenBSD machine won't take advantage of her new 9700 Pro, is she more likely to call her granddaughter who installed OpenBSD, or is she likely to call ATI's tech support? Not releasing drivers for a platform does tend to minimize support calls for that platform. Releasing the source opens up the possibility that Gramma may actually call, with a somewhat reasonable expectation of receiving support.

And, last but not least, how valuable would it be for the alternative-OS community to have access to the source code for drivers for Windows? I'm not a device driver programmer by any means, but I'd be willing to bet that while it would be *somewhat* helpful, by pointing out what hardware functions are exposed, and by showing the overall design of the driver, a driver programmer would still have to rewrite the driver from more-or-less scratch to get it to work on *nix, including Mac OS X. I repeat, though, this last assertion is based on my guess, not on knowledge. Any driver developers out there are invited to correct and clarify.

Please understand, I do not mean to pick on ATI, I simply use them as an easy source of examples.

2002-12-02 14:21:37
paying the bills
What lifetime are you expecting free drivers for 3D hardware? Despite the help ATI has provided the free drivers are still a disaster forcing ATI to release their binary only drivers. Open source works in many ways, but other areas like fast 3D drivers it fails miserably.
2002-12-30 02:21:42
the question is; Unilateral or Multilateral drivers ...
it is the old trust versus ant-trust thing all over again.

given the small number of actual manufacturers, if both [ or all ... if you can find a third manufacturer after ATI and Nvidia ] were to release their drivers openly, both would progress their own drivers faster.

but how many consumers *really* buy a card on the basis of its driver's performance ?!? And that includes OEM manufacturers.

price and pretty pictures on the box count for much more. i'd reckon on 98% of all IT users not even knowing what a driver was in the first place.

how much does it really cost to develop or compile a driver anyway? i am sick or being a Mac user that is expected to pay 300 bucks for something i could buy for 50 on an x86. so sick i am on the verge of dropping Apple.

and what happened to all the Hollywood production houses using Linux workstations that were meant to be fluxhing out their old drivers that they wrote for equipment?

it is such a waste to pee development work up the wall and no one benefit from it. i'd pay extra for a Mac driver if I had to, 15 or 20 bucks shareware is a lot better than 200 bucks on some piece of archaic hardware.


2003-01-07 19:22:04
New PowerBook 12" - with nvidia
Well, at least an ATI 9000 should work with opensource drivers.

There's no NVidia Geforce4go PPC drivers. I'm torn! I'd like working openGL in Linux too!

Feh. Guess I'll have to find something else.

2003-02-18 08:06:16
Drivers and kernel crashes
Of course, closed-source drivers wouldn't be such a problem if the OS didn't force you to build bits of your video driver into the kernel!
2003-04-30 19:34:51
Linux on Macs
I've noticed that, in general, Linux users are somewhat cost consious. They tend to run Linux on mid to low end x86 systems; relying on the efficiency of Linux to boost performance.

My question is this, why would they pay top dollar for a new Mac and then load Linux and scream that they can't get support for a specific peripheral? I guess the only time Linux on a Mac would make sense would be when the hardware becomes, in Apple's view, obsolete and no longer supported.

2003-07-11 12:27:39
Linux on Macs
... sometimes, a Linux user is looking for better hardware. The PPC Notebooks arent very fast, but very stable and long sprinters.