The new "official" Radeon driver has been released! It's been a while, but it's there. With the help of ATI Technologies themselves, Thomas has been able to add the Radeon 9700, 9500, 9800 and 9600. Multiple monitors should be no problem. I fired some questions in Thomas' direction during BeGeistert.

Towards the end, Thomas Kurschel clarifies his ideas for the new driver architecture he is designing for OpenBeOS (OBOS). These ideas were first announced at BeGeistert as well. My personal view on it is that it's exactly what BeOS is all about: it's so simple and yet very smart and sophisticated. I love it.

I swear, no more video card interviews for now ;-) Happy reading with this one! IsComputerOn: What are you feelings about OpenBeOS (OBOS), and have those feelings changed much since you joined the project?

Thomas Kurschel: At the point I heard about OBOS and I got in touch with the project, there was no alternative in my opinion for BeOS to survive. There was no real competing solution for BeOS, since yellowTAB was also not really completely running and they were still in the BeOS NG phase I think. Right now there is Zeta, the commercial future for BeOS which is quite important, and I think OBOS can be more regarded as the future of BeOS itself.

By that I mean, yellowTAB doesn't really attempt to solve basic problems of the BeOS kernel, like for instance the RAM limit problem or the driver architecture. They aim for better application support. And therefore I think OBOS is vital for the so-called "R2". yellowTAB cannot modify the kernel, and for OBOS this is not a problem. We cannot break with existing OBOS drivers because we are in the stage of writing them. So OBOS has the chance to be technologically superior, at least I think in terms of the kernel, and I hope that in the future OBOS could act like a "brainstorm project" to change future directions of BeOS and we could perhaps incorporate the advances of the OBOS kernel into Zeta.

ICO: Let's talk about your Radeon driver. How come you started it, and what kept you motivated to try to suppport the whole range of Radeon cards?

Thomas: Well, the simple reason was that my laptop has a Radeon Mobility (M6) and this wasn't supported by the standard driver. In fact, the official driver crashed because there was a bug in there if it encountered an unknown card. And so I took the XFree driver and wrote my own. Actually my intention was not to provide a general-purpose Radeon driver, but after I published the initial purpose, many requests arrived, asking for support of other Radeon chipsets and I found it wasn't that hard to add support for them, so I did.

ICO: You yourself haven't launched a new driver since March this year. How come the driver wasn't updated in such a long time, and when will it be?

Thomas: The driver works quite well for almost all cards but the newest ones, and I didn't have any specification or documentation of the new cards. I tried to add support for the Radeon 9700 for example for 4 to 8 weeks long, and I really couldn't find out why it didn't work so I had to give up in the first place. A week ago, I finally received documentation for these chipsets, so things are looking much better now, and ATI even wants to send me a Radeon 9700 card for free. So currently I'm waiting for the card, because it's pointless to write a driver without having the hardware it's for. I hope that a new driver will be there in the next 1 or 2 months, but hey you never know what will happen.

[Ed.: The above answer is slightly outdated on some points. The new driver has been released yesterday on BeBits and the new card which he says here to be expected the next one or two months obviously already arrived within a week after this interview was held, accompanied by the Radeon 9700/9500 2D DDK... I love ATI. Seems like it has been a busy week for Thomas.]

ICO: How did ATI react to your initiative, what are they like towards alternative operating systems?

Thomas: Without the help of several people such as ScottMC, there was no chance for me to get in contact with ATI, I think. They are very restrictive with handing over documentation to any third party and even Bernd had to assure them that there will be a commercial future for BeOS. Actually I don't really know which particular circumstances made them to cooperate for the BeOS driver. But finally they are very cooperative, especially to me. I have sometimes received emails of driver writers of other operating systems, because obviously they weren't that lucky with support.

ICO: What is your view on the R300 Radeon driver that has been posted on BeBits quite recently?

Thomas: Well, it's a good solution to at least provide some support until the real *quote, unquote* driver comes out, but I think as soon as that happens the alternative driver will be incorporated into the new driver and disappear. I don't like having two drivers for one card, that's just a waste of effort. I prefer cooperation.

[Ed.: On his driver page at BeBits, Thomas in fact thanks Euan Kirkhope for the R300 driver, and for collecting the device-IDs and BIOS signatures.]

ICO: Is the Radeon driver your only BeOS-related project that isn't specifically for OBOS?

Thomas: Actually to maintain a Radeon driver and an IDE driver is enough work so I don't have enough spare time to even start a third project, especially not of this size. Especially I rewrote the IDE driver from scratch and designed the new OBOS driver architecture, so in the last couple of months it was my main aim to get this done, and especially since there was no possible progress in terms of the Radeon driver.

ICO: Can you tell a bit more about the OBOS driver architecture?

Thomas: The current driver architecture of R5/Zeta is quite simple but not very powerful when it comes to complex hardware, especially if you chain hardware together, like when you have a USB memory stick plugged into the USB bus which is connected to the PCI bus. The current system assumes that there's only one driver between the application and the actual hardware, but that's not the case here. You have a memory stick driver, a USB driver, a PCI driver, and many other hidden drivers before you can actually access the memory stick.

So the new driver architecture tries to create an internal representation of these driver stacks, and especially tries to simplify the detection of hardware, based on the information the hardware can provide, like the vendor-ID and device-ID.

This means that it solves the issue we currently have, that the drivers are loaded on a trial-and-error base. This is not very efficient, especially with an increasing amount of drivers. Furthermore, changes in hardware configuration like hot-plug devices are not taken care of in the current driver architecture. So the new OBOS drivers are really loaded on demand. If you plug something in, then the hardware information is read, and the proper driver is loaded. There are similar solutions for USB- or PCMCIA-cards, but these are propietary and bus-specific, and actually they are quite often simply "hacks".