[KLUG Members] SiS900, RedHat 7.2 and failure to make a driver disk (partial rant)

Bryan-TheBS-Smith members@kalamazoolinux.org
Sun, 16 Dec 2001 22:47:48 -0500


Okay, I'm going to have to _retract_ my previous comments on the SiS735
chipset on the ECS K7S5A being 100% Linux compatible.  It is "largely
Linux compatible" but some really messed up (and completely f---ed up)
technical and political crap is making this s--- a real nightmare.

I found this out _firsthand_ in trying to build a driver disk for RedHat
7.2 -- something I've done many times with other drivers.  I'm not
pointing fingers at anyone, let alone people who help with OSS projects,
but it is obvious this isn't the problem of a single vendor, developer,
the kernel team nor Linus.  But it does tell me that _way_too_much_ is
being changed in a, supposedly, "stable" (i.e. you know, the
even-numbered "4" in "2.4.x"???) release.

This looks _really_, _really_ bad IMHO!  But I'm just a sysadmin, and
occassional developer, but definately not a kernel hacker in the least
most.  Been using Linux since 0.96 and this really makes me scratch my
head.  Read on if interested.


JUST WHAT SIS900 DRIVER RELEASES ARE IN WHAT VERSIONS?

Since SiS' own site is crap, up and down all the time, I couldn't find
out much info on their driver update (and the info is hard to find).  So
I made do with Linux kernel releases I had or downloaded.  Specifically:

   RedHat 7.1's 2.4.2-2 -- SiS900.c 1.07.10
   RedHat 7.1's 2.4.9-12 -- SiS900.c 1.08.00
   RedHat 7.2's 2.4.7-10 -- SiS900.c 1.08.00
   RedHat 7.2's 2.4.9-13 -- SiS900.c 1.08.00
   Kernel.ORG 2.4.16 (i.e. stock) -- SiS900.c 1.08.01
   (various other stock 2.4 kernel samples)

Entries for each of these releases are at the top of the SiS900.C file:

   Rev 1.08.01 Aug. 25 2001 Hui-Fen Hsu update for 630ET & workaround
for ICS1893 PHY
   Rev 1.08.00 Jun. 11 2001 Hui-Fen Hsu workaround for RTL8201 PHY and
some bug fix
   Rev 1.07.11 Apr.  2 2001 Hui-Fen Hsu updates PCI drivers to use the
new pci_set_dma_mask for kernel 2.4.3
   Rev 1.07.10 Mar.  1 2001 Hui-Fen Hsu <hfhsu@sis.com.tw> some bug fix
& 635M/B support 
   Rev 1.07.09 Feb.  9 2001 Dave Jones <davej@suse.de> PCI enable
cleanup

>From what I could tell, RedHat hasn't been adding any SiS900
patches/version changes in their RPMs, and seemed to match stock kernel
releases for that driver.


WHAT HAS BEEN WORKING FOR ME, OTHERS?

By far, everyone I have spoken to has had few problems with 1.07.10 nor
1.07.11.  These are in the 2.4.2/2.4.3 kernel releases from RedHat and a
few other vendors.

By far the 1.08.00 has _not_ worked for anyone I know of with an SiS900
chip.  If anyone has a ECS K7S5A mainboard and has a kernel with 1.08.00
running with it, please let me know.

Several people have reported that 1.08.01 works with the SiS900 chip.


COMPILING DIFFERENT VERSIONS INTO DIFFERENT KERNELS

Now this is my favorite part.  Maybe I don't know what I'm doing, or
fail to understand _how_ I should be doing this, but it is _definately_
*NOT* something I _ever_ experienced with kernel 2.2.x.

I wanted to make a driver disk for RedHat 7.2, which uses their
2.4.7-10BOOT kernel config.  I was able to compile 1.07.10, 1.07.11 and
1.08.11 *1*, but got unresolved symbol errors when loading them under
2.4.7-10BOOT.  I built the kernel with the same config for 2.4.7-10BOOT,
the same source, headers (even system), etc... for 2.4.7-10, which
really makes me wonder.

In every case, it was asking for all kinds of symbol and variable
errors, as if the internal structure of the 2.4.x kernel has changed
radically again, and again, and again, that the drivers are now only
good for specific kernels???  I guess this must be related to the VM
stuff?  Since it changed in 2.4.5/6 (between SiS900 1.07 and 1.08 it
seems?) as well as in 2.4.10/14 (depending on whether your talking stock
or ac/RedHat).

If anyone can confirm my issue _is_, in fact, because I'm using a newer
driver built for a newer kernel with newer VM on an older kernel with an
older VM, I'd greatly appreciate it?  Otherwise, all other explainations
are quite welcomed.


SOME OTHER THINGS I'VE NOTICED

[ NOTE *1* ] One really _annoying_ "wrench in the mechanics" is the
sudden "MODULE_LICENSE" crap.  Yes, I *DO* agree this was necessary for
legal maintanence, but why oh why in the middle of a release???  A
simple commenting out of it fixed it for the 1.08.01 driver on
pre-"MODULE_LICENSE-aware" kernel, but it really made me wonder just WTF
is being added in the middle of a _stable_ release?!?!?!

Also, remembering back to the Linus-Becker "debates" of kernel 2.2,
Becker introduced something called "pci-scan" and additional
modularity/versioning.  Would something like that actually help in this
situation we are in?  Or is it completely unrelated?


TO CLARIFY WHAT I'M SAYING

I don't want to act like I'm complaining or second-guessing what the
kernel developers are up to.  God knows I don't have the understanding
nor familarity to do so.

But the fact is that I _used_ to be able to build drivers on different
kernels in the same series.  That no longer seems to be true on 2.4.x. 
While I could understand there are some VM issues and resolutions that
have forced this, and there is nothing that can be done about that now
in the middle of an even/stable release revision, it just is really
frustrating for people like me.

I could very well be well off of the path of what and where the problem
really is.


-- TheBS

-- 
Bryan "TheBS" Smith    mailto:b.j.smith@ieee.org   chat:thebs413
Engineer  AbsoluteValue Systems, Inc.  http://www.linux-wlan.org
President    SmithConcepts, Inc.    http://www.SmithConcepts.com
----------------------------------------------------------------
"in a situation where you have someone against you ... an ac-
 cusation ... can lead to time in jail.  This fear can be more
 effective in controlling a group of people than the enforcement
 of the law as is. -- Joao Miguel Neves on the US DMCA and EU CD