This would seem to indicate that you have no source code for any kernel installed; not only is "linux" not a symlink to a folder containing source code, there is no other folder for "linux" to link to.
To explain, here is the output on my system:
[root@Gentoo] 09:44 AM #ls -al /usr/src
drwxr-xr-x 11 root root 984 Dec 2 01:08 .
drwxr-xr-x 18 root root 544 Dec 5 02:30 ..
lrwxrwxrwx 1 root root 25 Nov 29 23:43 linux -> /usr/src/linux-2.6.10-rc2
drwxr-xr-x 19 root root 2184 Nov 29 20:11 linux-2.6.10-rc1
drwxr-xr-x 19 root root 2144 Nov 30 11:48 linux-2.6.10-rc2
drwxr-xr-x 2 root root 336 Dec 2 02:11 linux-2.6.10-rc2-mm3
drwxr-xr-x 18 root root 664 Dec 2 01:37 linux-2.6.10-rc2-mm4
drwxr-xr-x 19 root root 1520 Oct 29 14:19 linux-184.108.40.206-ck9
drwxrwx--- 18 root root 600 Nov 25 16:09 linux-2.6.9
drwxr-xr-x 18 root root 656 Oct 31 13:43 linux-2.6.9-ck2
drwxr-xr-x 18 root root 664 Nov 5 16:10 linux-2.6.9-gentoo-r3
rwxr-xr-x 3 root root 72 Nov 18 03:04 xorg-x11-6.7.0-r3
[root@Gentoo] 09:52 AM #
As you see, "linux" is a symlink to /usr/src/linux-2.6.10-rc2, which is the source code for the kernel of that version. I could recompile any of the kernels whose source I have installed (2.6.10-rc1, 2.6.10-rc2-mm3, 2.6.10-rc2-mm4, 220.127.116.11-ck9, 2.6.9, 2.6.9-ck2, 2.6.9-gentoo-r3) by changing the target of the symlink from linux-2.6.10-rc2 to whichever kernel source folder I wanted to work with.
So what you need to do is install the kernel-source for 2.4.25. If this is the kernel that came with Slackware, you should be able to find it on the Slackware CDs or repositiories. Interestingly, the Slackware Package browser
indicates 2.4.26 for Slackware 10.0 base, and 2.4.27 in Slackware-current. So if you are using Slackware 10, you've downloaded what seems to be the wrong kernel anyway. In fact, no version of Slackware offers 2.4.25 in the package browser (I checked them all). So it's possible that you are getting a false version reading based on the fact that kernel 2.4.25 is the one in /usr/src/linux (I don't know where uname gets its kernel information from).
Alternatively, if you download it from www.kernel.org,
it should be extracted to /usr/src, which should result in a folder /usr/src/linux(or_kernel)-2.4.2*. However, I would choose to do a package search using the Slackware Package Browser and use a "certified Slackware" kernel, just to be sure. I also wouldn't worry about the upgrade-- at this point, you're already doing so much work, you might as well get a kernel upgrade out of it, even if it's only a couple of points (2.4.25 to 2.4.27 is not really a major upgrade, after all). You might also consider upgrading to a 2.6-series kernel, which uses ALSA by default, but that might be a big step for you; do your research before making the change.
You should then delete the /linux folder, and create a symlink in /usr/src to /linux(or_kernel)-2.4.2*, in /usr/src/, called "linux".
You will need to configure this kernel; you can try a make oldconfig
to use your current settings and only be prompted for new ones if you have upgraded your kernel. You might, once that is finished, want to do a make menuconfig
to both confirm your settings, and also see if there is an option for ISAPnP support (which I assume you need, as the SB 16 that we are discussing is an ISA part afaik, even if it's onboard). You might also want to check out the instructions for the SB 16 on the ALSA Project site
, to make sure your kernel has the correct options enabled/disabled so that the alsa-drivers package will install properly later on.
Once you have configured the kernel, you should follow the instructions to compile and install it (it's been a long time since I've compiled a 2.4-series kernel, and the procedure is different from the 2.6-series, so I will not give you instructions that I am not sure of-- however, the Slackware Essentials online Book does give instructions
), then try installing the alsa packages again.
Hope this helps.