Fixing sndshield recompile problems
===================================
Sndshield is a special kernel modules that contains all kernel version
dependent code of OSS/Linux. The OSS installation package contains a
collection of precompiled sndshield modules for many commonly used kernels.
However due to huge number of different kernel images we are not able to
provide an precompiled module for all of them.
There are four different paths ahead:
1) If you have not yet tried the [Download] button, please return back
to the previous menu and try it first. If it doesn't work you should
return back here by pressing the [Compile locally] button again and try
the next alternatives.
2a) If you are using a precompiled kernel that was included in a Linux
distribution, please read the "Precompiled kernels" section.
2b) If you have compiled the kernel yourself, please read the "Locally
compiled kernels" section.
3) Only if the above steps don't help, you should read the "Last resort"
section.
--------------------------------------------------------------------------
Precompiled kernels
-------------------
This section is only for the OSS customers who have installed the kernel
together with the Linux distribution (ie do not have compiled it
manually).
The procedure to compile the sndshield module requires some software packages
to be installed in the system. They can be found from the Linux installation
CD.
The required tools are make and gcc. To test if they are present you can do
the following:
cd /tmp
gcc -v
make xyz
If you get an "command not found" error from the gcc or make command you need
install these packages before continuing (all other (error) messages are OK).
In RedHat based Linux distributions (such as Red Hat Linux and Mandrake Linux)
the required packages (RPMs) are gcc-VERSION.rpm and make-VERSION.rpm. You
propably need to install binutils and some other packages too. Please consult
the installation guide of your Linux distribution for more info about
installing packages.
Another set of packages is kernel sources. You need to install the kernel
source and header packages for your current kernel in case they are not
installed yet. You can get them from your Linux installation CD (or from the
same place you got the original installation files).
On RedHat based systems you need to install the kernel-headers-VERSION.rpm and
kernel-source-VERSION.rpm packages. However you don't need to compile the
kernel.
On SuSE systems you can download and install the kernel-source rpm. Then go to
directory /usr/src/linux and execute commands "make cloneconfig" and
"make dep".
After installing the required packages you should check that /usr/src/linux
points to the directory that contains the newly installed kernel sources
(usually this is the case). Then invoke oss-install again.
Locally compiled kernels
------------------------
This section is only for the OSS customers who have installed and compiled
the Linux kernel from sources themselves. Please skip this section if you are
using a precompiled Linux kernel.
Since you are already running a locally compiled kernel you propably should
have the kernel sources/headers and the required tools (gcc, make and
binutils) installed properly. If this is not the case, please install them
before continuing.
Since oss-install failed to compile the sndshield module there seems to be
something wrong in your kernel setup. Please scroll down and check the
error messages caused by the previous sndshield recompile.
There are some common mistakes that may cause sndshield compile to fail:
- The sources for the currently active kernel are not in /usr/src/linux
or /usr/src/linux-`uname -r`. These are the places where oss-install
expects to find the kernel header files. In case you have the current
kernel sources installed somewhere else, make /usr/src/linux to be a
symbolic link to this directory.
- The kernel that is currently running is not the latest one that has been
compiled. This is a very common problem since the "make" command in
the kernel source directory only compiles the kernel but doesn't install it.
Even "make install" in some systems requires that lilo is run manually to
update the actual boot information. Execute uname -a and verify that
the kernel version and the compile time match.
- The kernel sources have been modified after the currently running kernel
was compiled.
Last resort
-----------
If it was not possible to compile an sndshield version that works with your
system there is still one alternative: Try to get a different kernel image.
It's possible that you can find a kernel that is already supported by OSS.
In particular this is true in case you have installed your kernel long time
ago.
Take a look at the web site of your Linux distribution vendor. They may have
available a kernel update that works in your system. Run oss-install again
after updating the kernel.