This is a really involved question but I will throw it out anyway. To start, I am using RedHat 5.0, kernel 2.0.32 on a system with a Jaz drive, an Adaptec SCSI 2940 card, and Ensoniq AudioPCI card using OSS Comercial.
Here goes: I dual boot linux with Win95 for several reasons, and I recently wanted to compile fat 32 support into my kernel so I could mount my windows partitions and play with them under linux. I used the patch found at http://bmrc.berkeley.edu/people/chaffee/fat32.html
to patch a fresh kernel that I just downloaded. Everything patched OK and then compiled OK, using the old config modified slightly for the patch.
When I subsequently boot, I get an error when I try to load the aix7xxx module, something about failed dependencies. When it later tries to load the Jaz drive, it also fails, saying that it does not seem to be a valid block device. I can now mount my windows partitions, but my jaz drive will not mount, and my SCSI CDROM does not work. If I issue the command "/sbin/modprobe sg" everything works correctly, except for soundon with OSS, but that is a different problem. Why does this not work on bootup?