Analytics Tracking Code

Sunday, June 17, 2007

3d Graphics Drivers and Open Source

I am constantly frustrated with the lack of open source drivers for my 3d graphics cards. My main workstation includes a GeForce 7800 GS which can be leveraged properly with only the proprietary nvidia driver. I am frustrated about this because of the implicit maintenance chores associated with this type of driver.

I am definitely not an open source zealot who will not use software just because it is proprietary (RMS for instance).

To really understand my grievance here, I'll relate a small tale of woe.

Like many other technical people, it is my ordained duty to help maintain the computers of my friends and family. For a variety of reasons and almost without exception, Windows XP is the operating system of choice. Almost without fail however, I am called in every 8 to twelve months to resolve the latest in a string of maintenance problems that my friends and family are experiencing. Typically, they will have downloaded some malevolent piece of software that is running amok on their computer. The only solution that I truly trust in this situation is to wipe the system drive and start over again.

Naturally, I have introduced my family and friends to Linux (openSUSE in my case) as a viable migration option for improved flexibility and security (I know this is debatable, but at least it's a smaller target).

Generally, their experiences with the GNOME user interface are not painful. Also, with Helix Banshee, they are able to enjoy their MP3 music collection out of the box.

For out of the box desktop usabilty, openSUSE is an exceptional migration candidate with only one glaring dilemma. Graphics drivers.

Unless an Intel Graphics adapter is being used, it is necessary to install those darned proprietary drivers to enable 3d support. The process and rationale behind this is mysteriously magical for my parents and friends. The necessity to reinstall the driver upon every single kernel security update is ridiculous, irritating, and impossible for these people to do on their own. I can't be making house calls every month to half a dozen people just to re-install the driver for them.

Nevertheless, there are a couple bright lights on the horizon.

The Intel adapters (with open source 3d drivers) have experienced dramatic performance improvements in the past several years, and can now be considered a completely viable option for a SOHO Linux workstation. Moreover, the rumors and rumblings about a discrete Intel Graphics solution are very promosing.

The Open Graphics Project also provides a light in the dark. The open specifications, drivers and hardware (Verilog) designs, should provide a very solid foundation for open 3d support in the operating system of your choice. Even OpenBSD may finally be able to introduce 3d.

Until the future is now, keep on swimming.


Saturday, June 16, 2007

openSUSE 10.3 Alpha 5 thoughts and hopes

Since my main desktop/workstation operating system is openSUSE, I have been following the development for the upcoming 10.3 release. It looks pretty certain that 10.3 will release with the 2.6.22 kernel, which is pretty good news for many mythtv users. As I have mentioned before, the the ivtv driver (for hauppauge TV tuner cards) has been integrated directly into the kernel for this release, thus removing many of the problems associated with out of tree drivers.

Alpha 5 seems to have some stability problems in the new GTK+ edition of YaST. Continually, I am receiving X warnings about missing theme elements. Also, pidgin seems to be missing from the installation DVD (although libpurple is included); thus I had to manually download and install pidgin from the Factory repository.

As usual, the latest evolutionary updates have been integrated for most packages.

Now in Factory, GCC has been updated to version 4.2. As a software developer, this is one of the most important behind the scenes changes for me. Specifically, this release finally brings support for OpenMP to C and Fortran (which I don't use). Since openSUSE is the base platform for all software that I write, I plan on taking full advantage of this technology (sorry if you're on a system that hasn't updated to GCC 4.2 yet, or otherwise doesn't support OpenMP). Essentially, this will simplify the development of paralizable code for use on multi-core processors. I hope to see all major OSS vendors migrate to at least GCC 4.2 in the next year or two, to take advantage of this new technology.

However, if I am going to be writing software that will use OpenMP, I need to be able to configure the compiler to use it with the autotools. The development version of autoconf (upcoming 2.62) has support for detecting the necessary configuration options for detecting how to tell a compiler to build with OpenMP support enabled. With any luck, the autoconf guys will be able to release the update before the software freeze for 10.3.

The only other package that I am interested in is Keith Packard has shown some pretty fancy stuff with hotplug input/output. Very cool for laptops, as well as people with USB tablets. Hope that the timing works out here with 7.3 and openSUSE 10.3 as well! Current estimates are for 7.3 to arrive in August, which may just squeeze in before the package freeze.

Anywho, I have had enough.


Saturday, June 2, 2007

openSUSE 10.3 might finally meet my requirements

I have been running openSUSE as my primary desktop OS since the 10.1 release. For the most part the experience has been positive, but definitely not for the technically challenged.

I initially started using openSUSE as the platform for my mythtv media server. That server sports a Pentium D 920, 1GB of RAM, a Hauppauge PVR 350, a 80GB system drive and a Hardware RAID 5 array using the Areca 1210 PCIe Raid Controller. Total RAID capacity is 900GB (4x300GB drives).

The first major problem that I encountered was that the arcmsr driver was not included in the upstream 2.6.16 kernel used by 10.1. This meant that it was not easily possible (believe me that I tried) to install onto the RAID array, since the driver is needed at BOOT time to configure the array.

The second problem that I encountered was the absence of the firmware for the hauppauge TV card in the default install. Moreover, the default ivtv driver was buggy and hard crashed the system whenever I attempted to change channels.

So cutting short the long story of how I manually built and installed updated drivers and dealt with multiple configuration issues we arrive at openSUSE 10.2.

Guess what....

The arcmsr is STILL not in the upstream kernel (2.6.18 this time) mostly because Erich Chen at Areca dropped the ball and didn't push the driver into the kernel (disappeared from the mailing lists for months at a time)

The ivtv driver is not yet ready for integration into the mainline due to numerous missing APIs in the V4L2 universe.

So I did not bother upgrading. Primarily I felt that I would only have to deal with those same problems all over again.

That brings us to the present day.

I have upgraded my Laptop and Desktop Workstation to openSUSE 10.2, and things are more or less totally peachy on both those systems. The MythTV Media Server is still somewhat stable at 10.1.

More or less, my present configuration is very pleasing. Except for the stability issues on the Media Server.

So what next?

openSUSE 10.3 Scheduled for October 4, 2007

Finally with enough community grumbling and pushing, the arcmsr driver was included in 2.6.19 so I can reliably install onto the RAID controller of my media center.

If the development schedule gods are in a good mood, then openSUSE 10.3 will include a shiny new 2.6.22 kernel. If they are in a slightly grumpy mood, then openSUSE 10.3 will include the old fashioned, and slightly ruffled 2.6.21 kernel.

Why am a cheering for 2.6.22? Well, the ivtv guys have done a spectacular job of integrating ivtv into V4L and also worked with intel/hauppauge to provide a very sleek firmware redistribution license!

This should make the upgrade of my media server one of the sweetest things to watch.

Now if only I could get a discrete graphics accelerator from Intel with Open Source drivers...