-   Slackware (
-   -   crystal 4237B sound setup - How? (

Lunar_Lamp 01-19-2006 02:26 PM

crystal 4237B sound setup - How?
I have just installed slackware 10.2 on my old laptop - very painless and I am delighted with the result. however, it would be improved if I was able to utilise sound.

my laptop is a dell latitude cp, and has a crystal 4237B audio controller. I ran alsaconf, and allowed it to do it's most rigorous searching - but it couldn't find it.

How do I go about setting it up manually?

apologies if this has already been answered, I am posting from my phone and my limited googling couldn't find a solution.

JunctaJuvant 01-19-2006 03:09 PM

A little more info would be useful. What kernel version are you using? How did you install ALSA?
And have you also tried searching here on LQ?
Hope that helps.

Lunar_Lamp 01-19-2006 03:35 PM

I am using the default slackware kernel on 10.2 - during install I chose the bare. one. alsa was installed during stanrad install procedure - I am a fresh install (as of this afternoon).

I can only get proper web access at work at the moment - I am posting this from my phone - but i doesn't like searching on it as it really fiddly and hard to read. sorry.

lestoil 01-19-2006 05:37 PM

try googling 'crystal 4327B slackware config' or slackware 10.2 on your lappy model for some guides. Good luck.

Lunar_Lamp 01-20-2006 07:44 AM

I came across this:

which contains the following instructions:


5.3.4. CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239 chips

According to the INSTALL file you need to supply the main port and
control ports for this card. Note that with a CS4237B card, I ended up
supplying all information (except DMA-size), otherwise the driver did
not work. So you may as well use the whole command line to insert the
driver, and not only supply snd_port and snd_cport. If you initialized
the card with the isapnp-tools, you can probably get info from the
/etc/isapnp.conf file for the following values:

snd_port - port # for CS4232 chip (PnP setup - 0x534)
snd_cport - control port # for CS4232 chip (PnP setup - 0x120)
snd_mpu_port - port # for MPU-401 UART (PnP setup - 0x300), -1 = disable
snd_fm_port - FM port # for CS4232 chip (PnP setup - 0x388), -1 = disable
snd_jport - joystick port for CS4232 chip (PnP setup - 0x200), -1 = disable
snd_irq - IRQ # for CS4232 chip (5,7,9,11,12,15)
snd_mpu_irq - IRQ # for MPU-401 UART (9,11,12,15)
snd_dma1 - first DMA # for CS4232 chip (0,1,3)
snd_dma1_size - max first DMA size in kB (4-64kB)
snd_dma2 - second DMA # for Yamaha CS4232 chip (0,1,3), -1 = disable
snd_dma2_size - max second DMA size in kB (4-64kB)

You would do a "modprobe snd-card-cs4236 snd_port=0x534
snd_cport=0x120 snd_mpu_port=-1 snd_fm_port=0x388 snd_jport=-1
snd_irq=5 snd_dma1=0 snd_dma1_size=NN snd_dma2=1 snd_dma2_size=NN" to
load the driver. (Without midi-support, see the note at Yamaha OPL-3,
and no joystick support). Notes:

the "NN" values need to be supplied, only I do not know what would
be reasonable values.

my CS4237B works fine without explicit dma size option.
However, I am presented with the error:

modprobe: Can't locate module snd-card-cs4237B
Do I need to download some kind of driver first?! I really am fumbling in the dark here really.

JunctaJuvant 01-20-2006 02:27 PM

You need alsa-driver, alsa-lib and alsa-utils, maybe alsa-oss too, and AFAIK that should be all you need. Note also that you need to re-install the alsa-drivers every time you re-compile the 2.4 kernel
That ALSA HOWTO site you used seems pretty outdated by the way, last update was over six years ago. You might have better luck exploring the ALSA homepage for more recent information.
Hope that helps.

Rodrin 01-20-2006 02:55 PM

Apparently you haven't recompiled your kernel, since this is a fresh install, so don't worry about reinstalling ALSA. Old ISA sound cards and chipsets are often problematic since you have to discover the correct settings and the name of the driver and install the driver manually (PCI cards are almost always discovered automatically by hotplug). It looks to me as though you are trying to install a driver that doesn't exist. Remember that the driver will be named for the basic chipset your chip is derived from or the first chip in that series that the driver supported. I think you need to use snd-cs4236 rather than snd-card-cs4237B in your modprobe statement (there's no such module as snd-card-cs4237B; this documentation is outdated and the snd-card-cs4236 module has been renamed to snd-cs4236, but it would be the correct one otherwise). This could be your only problem, but if you do not have the correct configuration settings you could still have trouble (but at least it won't say that it can't find the module). You might want to look here for up to date documentation about this driver. This page, however, tells you how to install from source, which you do not need to do. Also, you may find it necessary to include options in your modprobe statement, even though it suggests trying to load the driver without any options.

Lunar_Lamp 01-21-2006 05:48 AM

Ok, thanks Rodrin - I followed your advice, and I now get a new error message!


bash-3.00\modprobe snd-cs4236
/lib/modules/2.4.31/kernel/sound/isa/cs423x/snd-cs4236.o.gz: init_module: No such device
/lib/modules/2.4.31/kernel/sound/isa/cs423x/snd-cs4236.o.gz: Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters.
You may find more information in syslog or the output from dmesg
/lib/modules/2.4.31/kernel/sound/isa/cs423x/snd-cs4236.o.gz: insmod /lib/modules/2.4.31/kernel/sound/isa/cs423x/snd-cs4236.o.gz: failed
/lib/modules/2.4.31/kernel/sound/isa/cs423x/snd-cs4236.o.gz: insmod snd-cs4236 failed

If i try putting in the parameters mentioned previously, it lists it and says "no such parameter in this module".

the last few lines of dmesg:


isapnp: Scanning for PnP cards...
isapnp: No Plug & Play device found
CS4236+ soundcard not found or device busy

What should I try now? :-/
I know others have gotten this sound card working, so it must be supported!

Lunar_Lamp 01-21-2006 06:15 AM

I tried following info on this site here:

I wasn't sure how to do 1
number2, I do not have the directory /proc/asound
number 3:
grep VERSION_STR /usr/include/alsa/version.h
that gives me the output of version 1.0.9

"lspci | egrep audio" returns no values. I am not sure if this is a problem as it is not a PCI card afaik, it is an built in to the mb.

I think it is important that I do not even have the /proc/asound directory however I have no idea really.

Lunar_Lamp 01-23-2006 03:18 AM

Does have any ideas here?
I just don't know what to try now.

I don't know if this solution would translate onto Slackware well

Rodrin 01-23-2006 04:10 AM

Hi, again.Sorry for not replying sooner. I haven't looked on here in a couple of days (sometimes I forget to check back on my replies over the weekend).

It's most likely a matter of finding the actual options needed for your installation and applying them in your modprobe statement. The documentation you found first, again, is outdated and has the old driver options. The page I linked to actually lists all the options, but it does so only in a way that is confusing to new users. Fortunately, most people now have PCI soundcards and never need to know most of these options. If you are trying to get sound working on an old machine, though, you have to deal with ISA, and have these types of problems. Here are the possible options for that sound card:


Each of these used would be followed immediately by an equal sign and a value as specified on the ALSA documentation page, as well as demonstrated on the page of old documentation that you found. Again you may notice that some of these are options that existed at the time the documentation you had was written, but they have been shortened in form (the snd in their names was dropped). Some of the old options, however, no longer exist, and some of these options are new. Each of these options that is necessary will be separated with a space from the name of the module in your modprobe statement (as was true in the example in the old documentation). The trick is finding out which ones are necessary. Often the irq and one or two of the ports would be enough. The example given on the ALSA documentation page would translate into

modprobe snd-cs4236 snd-cmipci id="first" mpu_port=0x330

Since snd-cmipci is not listed among the options for this sound card, and due to the convention of naming options with underscores for spaces, while modules contain hyphens, apparently the snd-cmipci is another module that can be loaded (or referred to as used) as an option for this module. Whether any of these options is correct for your hardware I don't know. For the correct options, you may want to search for an example installation of Linux for your particular model of laptop (the distribution shouldn't matter), or try looking at the output of isapnp-tools as was referred to in the old documentation that you found to begin with. It's even possible that the options you have already tried are the correct values, but you need to change them to their new names (and drop any that don't exist anymore).

Just to actually show how the old modprobe statement would translate to the new driver:

modprobe snd-cs4236 port=0x534 cport=0x120 mpu_port=-1 fm_port=0x388 jport=-1 irq=5 dma1=0 dma2=1

All times are GMT -5. The time now is 10:38 PM.