Posted by: Anonymous Coward
on May 07, 2005 07:42 AM
There are some very good reasons to bother. For one, even using VESA drivers for the S3 chips seems to result in nothing more then a 60Hz vertical refresh rate. This is a real pain to try and live with - that alone is reason to try and get drivers.
Let me detail in brief for you some of the problems getting a working driver for the Unichrome Pro chipset in my K8M800.
First, the regular S3 Unichrome driver won't work. The VESA driver will work; but the chipset refuses to listen to custom modelines. You're stuck with whatever resolution you like with a 60Hz vertical refresh rate. It's a real pain. Any attempt I made to use VBE extensions to change that resulted in a hardlocked machine.
Not only do I have to use a CVS version of the source code, I have to use a hacked version of the CVS source code (Although I'm not really sure I can call Ivor's work a hack, it's more elegant then that, but it's still CVS based off a CVS version of a driver)
Once you get that up, you'll notice your system will be slower then congealed blood. Your console will probably show five or six "Disabling IRQ 11" messages *just to start X*.
Thats right, you have an IRQ cascade bug, as nearly as I can tell in the BIOS ACPI implementation and its interaction<nobr> <wbr></nobr>/not/ with the linux kernel ACPI driver but with the Unichrome driver itself.
If you happen to use a USB keyboard or mouse, you're in particular trouble. Just typing an email results in my fingers getting ahead of what the screen can keep up with.
And if you happen to be using the integrated ethernet rhine-ii chipset, you're uttlerly out of luck - the IRQ cascading problem results in it being essentially completely unusable. So you no longer can get on the internet (If thats what you use it for) to try and fix the problem.
So you have the unichrome IGP, the ethernet, the keyboard, the mouse, and anything else the motherboards BIOS chooses to put on IRQ 11...
My first solution was to tell X not to use the IRQ to interact with the hardware. Sure, this gets "rid" of alot of the IRQ cascades, but the ethernet is still useless and using the keyboard still results in problems.
Sure, I can get a whopping 500 fps in glxgears, but I can't really do anything.
So I compiled a linux kernel without APM or ACPI. Guess what? This seems to resolve the Cascade issue... to a small extent. My ethernet is usable... As long as I don't use any 3d accellerated programs.
And if I do, not only is my ethernet unusable, but my wireless card starts outputting what looks like the contents of<nobr> <wbr></nobr>/dev/urandom!
so no matter what I do, I can't reach a totally usable state.
So my next step (As VIA did their "massive open-source support movement" at that time) was to download all of their drivers I could find on viaarena.
Oh my god, I get a whole framebuffer driver! Does that support 3d Accelleration?<nobr> <wbr></nobr>...
Damn, it won't even compile! What the...
Via would have been well advised to integrate an ATI Rage IIc chipset on the motherboard. It would already be fully supported in the linux community, and from the times I've used them in modern computers the 3D performance would also have been twice as good as their S3 Unichrome Pro chipset is.
So I did the last thing I wanted to do - I got my ATI Radeon 9700 out of the computer I need it for, and put it in this one.
Comparitively, the drivers were a complete breeze to install. IRQ 11 works like it ought to. My idle load dropped from between 0.3 and 0.6 to 0.0 - where I would expect it to be with an AMD64 2800+ doing essentially nothing.
So if you have a motherboard with an S3 Unichrome chipset, you have substantial reason to try and get the drivers working - a 60Hz v refresh rate is enough to drive alot of people to learn how to use it. However, I have seen story after story where people took the motherboard back because part of the reason they bought it was for the integrated graphics - they didn't want to have to buy a cheap video card and put it in to make it work right.
Also, having maintained and updated a system by hand for almost ten years, from its original 486DX to the AMD64 I'm running now, I have a significant advantage in knowing how to track down hardware problems and do things to fix them - yet I reached a dead end.
Over half my drivers were CVS versions. I spent over 80 hours troubleshooting, installing, uninstalling, testing, and compiling drivers for the S3 Unichrome Pro. In comparison, installing the newest Binary ATI Drivers (BADs) that everyone hates, I spent a grand total of 4 hours - while being exhausted from not having slept in 24 hours. Had I slept, it would have been half that.
VIA should at least provide drivers that work relatively painlessly on current systems.
To recap briefly:
There are a multitude of reasons that will provoke someone to try and use the drivers for the S3 IGP's - 60Hz refresh rate, for me. Many of them buy these motherboards to use as MythTV boxes - they have to have decent drivers to use the TV-out ports present on these IGP's. Being able to play games at a half decent framerate is a big reason for many others.
There is still many problems with these drivers, especially the S3 Unichrome Pro drivers - IRQ cascades, unusable hardware, strange bugs that don't make any sense (How does viewing glxgears cause my wireless card to output static? This should be impossible) and a plethora of hardware bugs that will hopefully be fixed in later BIOS revisions.
Then there is simply the amount of knowledge required to compile the necessary programs if you have a problem - new kernels, kernel patches / externally built modules for the kernel, X.org sources, patches, and new subtrees, etc. etc.
Sure it can be done. Luc and Ivor have done incredible work on these drivers. How much support do they recieve from VIA? Half-eaten bones, in my opinion. Source code that doesn't even placate the masses trying to get VIA's hardware to work.