Getting your SB Live! to work (with minimal pain)
Written By: Morganth
Let me start by saying that getting the SBLive! to work
under linux is probably easier than getting it to work under
Windows, as long as you have some grasp of what you're doing.
It basically involves you getting the emu10k1 driver
(emu10k1 is the chip on the SBLive board) and configuring
the module in one file and at the command line. So, let's
get started, and finish up in a timely fashion.
Getting the driver
I'm going to tell you how to do this from the command-line,
so it's easy for ya to follow the directions. First, I'd
head over to your home directory, and make a directory for
your project.
cd
mkdir sblive
cd sblive
Now, invoke the following in a xterminal:
ftp opensource.creative.com
(or ftp://opensource.creative.com in your browser)
Enter anonymous as your "name"
and a real or bogus email address as your "password"
cd /pub/snapshots/
ls emu10k1*
get emu10k1-[newest date].tar.gz
where newest date is the closest date to
present, dummy. It'll be listed there ;-)
Ok, now we have the driver downloaded!
Uncompressing and compiling
The next step is relatively easy, just follow these commands:
gunzip emu10k1<tab>
tar -xvf emu10k1<tab>
that is, hit the [tab] key in order to auto-complete
your line, to save you some keystrokes
cd emu10k1
which is usually the extract path, but it
might not be
rm *dep*
make depend
make clean
make
Superuser, Copy, Edit, Probe, Reboot, Viola!
The next few steps are relatively intuitive.
First off, we gotta become root for a few minutes--we're modifying
precious system files and copying to unpermissioned directories.
su
Password: [your root password]
Then, since you're still in your emu10k1 driver directory...
ls emu10k1.o
Is it there? Good! If not, go back to uncompressing/compiling. You did
something wrong ;-) Now we have to copy it to our modules directory. The
next few steps of installing the driver can sometimes be bypassed by
running
make install
in the emu10k1 directory... however I found that under both
RH 6.0 and 6.1, when I first got the driver, the make install would plop
my emu10k1 driver in the wrong directory, that looked something like
/usr/lib//misc (those two forward slashes aren't a typo). If it works for
you though, it works for you...
Findingyour modules directory is tricky, since it's different with
every single fricken distro. But... here's what we can do.
cd /lib/modules
that part is always the same
ls
Now, check out those version numbers.
You probably want the newest version number, sometimes there's an
"mdk" tagged on the end of it. That's alright. Once you find
what you think is the appropriate one, change directory [cd] into it.
Invoke an Ls and you should see a bunch of directories naming device
categories. There should be one called "misc." That's our guy.
So let's change directory [cd misc] into there. And now, let's copy our
file:
cp /home/[username]/sblive/emu10k1/emu10k1.o ./
depmod -a
Now let's edit conf.modules to reflect our new driver:
echo alias sound emu10k1
>> /etc/conf.modules
what that did, if you're wondering, is echo'ed "alias
sound emu10k1" to the screen, and than sent that output to the end of
the conf.modules file. Quick, one-line editing.
If at the end of your install, the sound isn't working, it's probably due
to the above step being incorrect. Some distros I recently found out have
their conf.modules stored in other files. I'd reccomend you check your
respective distro's manual or help files to find out where it's module
configuration file is.
Anyway, now let's probe the sucker.
modprobe emu10k1
it may/may not say "no dependency file found for
emu10k1.o" It doesn't matter. Sometimes this has happened to me (on
some computers), other times it
hasn't.
And we're done with the setup.
Technically, your sound should work right now... however I've noticed that
on Mandrake Linux even after probing the module, my sound still
isn't initialized. However, a reboot seems to remedy that. Some users
claim that by following these steps their sound works without a reboot, so
hats off to them.
At this point your driver should work! Congrats... start playing your MP3s
and CDs happily. Otherwise, maybe your fix is below...
The fix to the hated "unresolved symbols" errors
The first emails I got from this NHF were positive praise, however
after a day of letting linger, a good 20% of my email messages were from
people who got the same error. This "unresolved symbols" error
happened to tons of users even when the SBLive! driver just came
out. It occurs right after you try to modprobe the emu10k1 driver, and
looks something like this:
/lib/modules/2.2.9-27mdk/misc/emu10k1.o: unresolved
symbol unregister_sound_mixer_R7afc9d8a
/lib/modules/2.2.9-27mdk/misc/emu10k1.o: unresolved symbol
unregister_sound_dsp_Rcd083b10
/lib/modules/2.2.9-27mdk/misc/emu10k1.o: unresolved symbol
unregister_sound_special_R99c95fa5
/lib/modules/2.2.9-27mdk/misc/emu10k1.o: unresolved symbol
register_sound_dsp_R0f7ad10d
/lib/modules/2.2.9-27mdk/misc/emu10k1.o: unresolved symbol
register_sound_midi_R4fe7b251
/lib/modules/2.2.9-27mdk/misc/emu10k1.o: unresolved symbol
register_sound_mixer_R82b8ae63
/lib/modules/2.2.9-27mdk/misc/emu10k1.o: unresolved symbol
unregister_sound_midi_Rfdab6de3
/lib/modules/2.2.9-27mdk/misc/emu10k1.o: unresolved symbol
register_sound_special_R17814d41
However, I found a fix posted by MXR4LIFE on the LinuxNewbie.org message
board awhile back, that worked for many users back then.
Before compiling (make) the module, we have to edit the Makefile in the
emu10k1 directory where we untarred the tarball. Find the file named
Makefile in that directory, and edit it so that the line:
MODVERSIONS = n
reads
MODVERSIONS = y
instead.
In addition, edit the line that has:
INCLUDEDIR=...
to read
INCLUDEDIR=/usr/src/linux/include
[or the appropriate directory for your install]
If you haven't toyed with editors yet, pico probably comes
standard on your distro, and by running pico Makefile you'll be able to
easily edit the file, hit [CTRL]+O to save it, and [CTRL]+X
to quit.
After you complete this step, run make again and follow the above
directions as normal past the point of compilation. Your unresolved
symbols problem should disappear forever! Enjoy!
p.s. I'd like to give my thanks out to all the people who sent their
feedback to this article when it first went up, for helping me add more to
it. I'd also like to thank Manuël Beunder a.k.a. MBR with his wonderful
tutorial whose link was emailed by one of this NHF's readers. His tutorial
along with feedback and the LNO message board let me post up the fix to
the unresolved symbols error. You can find his web site, which has some
valuable information on SBLive! drivers, among other things, at the
following URL:
http://www.euronet.nl/~mailme/
Thanks, and enjoy your MP3 playing, when it comes to you. ;-)
Note: Added 1-05-2000
contributor: Rob Pryor
If you are getting undefined symbols, make sure the 'soundcore' module is loaded
before you load the emu10k1 module.
Note: Added 2-25-2000
If you are having problems with running your mp3s non-root.
try this:
chmod ugo+rwx /dev/dsp
Remember you have to be root to issue the command :)
|