Fix for Section 7.2.1.1 - Soundblaster 16 driver

Fred Wheeler fred.wheeler at gmail.com
Thu Sep 15 16:15:10 UTC 2005


Marc,

Thanks for the the test suggestions.  Having run them I understand
this much better now.  The lengthy output is below.  

The real problem is that I thought "snd_sbc" was the driver for
SoundBlaster 16 cards, but "snd_sb16" is what I really need.  If I use
snd_sb16_load="YES" (and nothing else) in /boot/loader.conf then the
sound card is found.  The other required drivers are brought in as
they should be.

I either did not see, or did not understand the significance of the
"kld snd_sb16" in /dev/sndstat when all the sound drivers were used.

Section 7.2.1.1 made me think that "snd_sbc" is *the* driver for SB16
cards ('man snd_sbc' seems to me to imply this as well), but
apparently it is not the primary driver but some sort of extra helper
driver for ISA cards.

If anyone would like specific suggestions for handbook section 7.2.1.1
and man snd_sbc that make it clear that other drivers are required
also I'd be happy to send something to this list.  Based on my
experience, a few parenthetical comments indicating that sbc is a
"helper" or something and that other drivers are required for SB16
would be helpful.

Regards,
Fred Wheeler

### SoundBlaster 16 /boot/loader.conf tests

# uname -a
FreeBSD mobile.earthlink.net 5.4-RELEASE FreeBSD 5.4-RELEASE #0: Sun
May  8 10:21:06 UTC 2005    
root at harlow.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386

### 1. Just load "sbc" -> no sound

# emacs /boot/loader.conf

# cat /boot/loader.conf
snd_sbc_load="YES"

# shutdown -r now

# kldstat
Id Refs Address    Size     Name
 1    9 0xc0400000 5dde24   kernel
 2    1 0xc09de000 49ec     snd_sbc.ko
 3    2 0xc09e3000 1d4fc    sound.ko
 4   14 0xc0a01000 56270    acpi.ko
 5    1 0xc188a000 17000    linux.ko

# cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:

# dmesg (just relevant section shown here)
orm0: <ISA Option ROM> at iomem 0xc0000-0xc7fff on isa0
pmtimer0 on isa0
sbc0: <SoundBlaster 16> at port 0x240-0x24f irq 10 drq 1 flags 0x15 on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0

### 2. Load "sbc" and "sound" -> no sound

# emacs /boot/loader.conf

# cat /boot/loader.conf
sound_load="YES"
snd_sbc_load="YES"

# shutdown -r now

# kldstat
Id Refs Address    Size     Name
 1    9 0xc0400000 5dde24   kernel
 2    2 0xc09de000 1d4fc    sound.ko
 3    1 0xc09fc000 49ec     snd_sbc.ko
 4   14 0xc0a01000 56270    acpi.ko
 5    1 0xc188b000 17000    linux.ko

# cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:

# dmesg (just relevant section shown here)
orm0: <ISA Option ROM> at iomem 0xc0000-0xc7fff on isa0
pmtimer0 on isa0
sbc0: <SoundBlaster 16> at port 0x240-0x24f irq 10 drq 1 flags 0x15 on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0

### 3. Load all sound drivers -> sound works!

# emacs /boot/loader.conf

# cat /boot/loader.conf
snd_driver_load="YES"
sound_load="YES"
snd_sbc_load="YES"

# shutdown -r now

# kldstat
Id Refs Address    Size     Name
 1   32 0xc0400000 5dde24   kernel
 2   29 0xc09de000 1d4fc    sound.ko
 3    5 0xc09fc000 49ec     snd_sbc.ko
 4    1 0xc0a01000 328c     snd_driver.ko
 5    2 0xc0a05000 45b8     snd_vibes.ko
 6    2 0xc0a0a000 46c8     snd_via82c686.ko
 7    2 0xc0a0f000 47dc     snd_via8233.ko
 8    2 0xc0a14000 4664     snd_t4dwave.ko
 9    2 0xc0a19000 4604     snd_solo.ko
10    2 0xc0a1e000 4de4     snd_sb16.ko
11    2 0xc0a23000 49fc     snd_sb8.ko
12    2 0xc0a28000 1095c    snd_neomagic.ko
13    3 0xc0a39000 b6f8     snd_mss.ko
14    2 0xc0a45000 8378     snd_maestro3.ko
15    2 0xc0a4e000 7200     snd_maestro.ko
16    2 0xc0a56000 5884     snd_ich.ko
17    2 0xc0a5c000 4b54     snd_fm801.ko
18    3 0xc0a61000 505c     snd_ess.ko
19    2 0xc0a67000 62ac     snd_es137x.ko
20    2 0xc0a6e000 7494     snd_emu10k1.ko
21    2 0xc0a76000 bfe4     snd_ds1.ko
22    4 0xc0a82000 7464     snd_csa.ko
23    2 0xc0a8a000 443c     snd_cs4281.ko
24    2 0xc0a8f000 517c     snd_cmi.ko
25    2 0xc0a95000 4e1c     snd_als4000.ko
26    2 0xc0a9a000 4c9c     snd_ad1816.ko
27   14 0xc0a9f000 56270    acpi.ko
28    1 0xc1897000 17000    linux.ko

# cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <SB16 DSP 4.05> at io 0x240 irq 10 drq 1:5 bufsz 4096d kld
snd_sb16 (1p/1r/0v channels duplex default)

# dmesg (just relevant section shown here)
orm0: <ISA Option ROM> at iomem 0xc0000-0xc7fff on isa0
pmtimer0 on isa0
sbc0: <SoundBlaster 16> at port 0x240-0x24f irq 10 drq 1 flags 0x15 on isa0
pcm0: <SB16 DSP 4.05> on sbc0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0

### Hmmm.  Now I see snd_sb16 above.
### 4. try sbc and sb16 -> sound works!

# emacs /boot/loader.conf

# cat /boot/loader.conf
snd_sbc_load="YES"
snd_sb16_load="YES"

# shutdown -r now

# kldstat
Id Refs Address    Size     Name
 1   10 0xc0400000 5dde24   kernel
 2    1 0xc09de000 4de4     snd_sb16.ko
 3    2 0xc09e3000 49ec     snd_sbc.ko
 4    3 0xc09e8000 1d4fc    sound.ko
 5   14 0xc0a06000 56270    acpi.ko
 6    1 0xc1887000 17000    linux.ko

# cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <SB16 DSP 4.05> at io 0x240 irq 10 drq 1:5 bufsz 4096d kld
snd_sb16 (1p/1r/0v channels duplex default)

# dmesg (just relevant section shown here)
orm0: <ISA Option ROM> at iomem 0xc0000-0xc7fff on isa0
pmtimer0 on isa0
sbc0: <SoundBlaster 16> at port 0x240-0x24f irq 10 drq 1 flags 0x15 on isa0
pcm0: <SB16 DSP 4.05> on sbc0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0

### 5. try just "sb16" -> sound works!

# emacs /boot/loader.conf

# cat /boot/loader.conf
snd_sb16_load="YES"

# shutdown -r now

# kldstat
Id Refs Address    Size     Name
 1   10 0xc0400000 5dde24   kernel
 2    1 0xc09de000 4de4     snd_sb16.ko
 3    2 0xc09e3000 49ec     snd_sbc.ko
 4    3 0xc09e8000 1d4fc    sound.ko
 5   14 0xc0a06000 56270    acpi.ko
 6    1 0xc1885000 17000    linux.ko

# cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <SB16 DSP 4.05> at io 0x240 irq 10 drq 1:5 bufsz 4096d kld
snd_sb16 (1p/1r/0v channels duplex default)

# dmesg (just relevant section shown here)
orm0: <ISA Option ROM> at iomem 0xc0000-0xc7fff on isa0
pmtimer0 on isa0
sbc0: <SoundBlaster 16> at port 0x240-0x24f irq 10 drq 1 flags 0x15 on isa0
pcm0: <SB16 DSP 4.05> on sbc0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0



On 8/29/05, Marc Fonvieille <blackend at freebsd.org> wrote:
> On Mon, Aug 29, 2005 at 12:46:14PM -0400, Fred Wheeler wrote:
> > Marc is correct that my previous post makes little sense and section
> > and section 7.2.1.1 is good as it is.  I was trying to recall what I
> > did a couple of days ago and by mistake I focused on 7.2.1.1 when my
> > suggestion really applies to 7.2.1.  (That's why I was mixing up
> > loader.conf and kernel config file syntax.)
> >
> > Section 7.2.1 explains how to use
> >
> >   # kldload snd_emu10k1
> >
> > on the command line or put
> >
> >   snd_emu10k1_load="YES"
> >
> > in /boot/loader.conf.
> >
> > I think this needs to be
> >
> >   # kldload sound
> >   # kldload snd_emu10k1
> >
> 
> No, since when you do a kldload snd_emu10k1, it also loads sound.
> You can check it with a kldstat.
> 
> > and
> >
> >   sound_load="YES"
> >   snd_emu10k1_load="YES"
> >
> 
> snd_emu10k1_load="YES" is the only needed line.
> 
> > However - I'm not 100% sure this is correct - so this should only be
> > added if someone else knows that this is an obvious omission.  I'll
> > carefully verify this if needed, but will not be able to get back to
> > the machine for two weeks.  What I do know for sure is that
> >
> >   snd_sbc_load="YES"
> >
> 
> Could you do a simple test:
> 
> Use of snd_sbc_load="YES" and then do a kldstat and post the result.
> 
> > did not work for me (sbc0 card found, but /dev/sndstat listed no
> > installed devices), but
> >
> >   snd_driver_load="YES"
> >
> > worked (snd0 shows up in dmesg and audio works great).
> 
> What is the output of
> cat /dev/sndstat
> 
> What are the revelant lines from dmesg?
> 
> >
> > While 7.2.1.1 seems complete I think 7.2.1 implies that only the
> > driver for the specific card is needed and does not mention the
> > generic audio driver.
> >
> 
> These both sections are correct.
> But please try the tests I mentioned above, I suspect another problem...
> 
> Marc
>



More information about the freebsd-doc mailing list