# ALSA Can't See My SB16

## MBCook

When booting, starting alsa with /etc/init.d/alsasound start,  or manually loading the module, my soundcard isn't detected. It's a GENUINE SB 16 card, and I know that it's good, I've had it working in other computers (and this one under OSS). I just can't seem to get things working. Like I said, it's a TRUE SB16 card, one of the origional. It's not value, it's not PNP, etc. It's so old it has an IDE port on it for attaching a CD drive. I've checked all the jumpers and everything. Here is the error that I get every time:

 *Quote:*   

> 
> 
> /lib/modules/2.4.20-gentoo-r6/kernel/sound/isa/sb/snd-sb16.o: init_module: No such device
> 
> Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters.
> ...

 

I've checked the output of dmesg and /var/log/syslog and found both to say the same thing:

 *Quote:*   

> 
> 
> Sound Blaster 16 soundcard not found or device busy
> 
> In case, if you have AWE card, try snd-sbawe module
> ...

 

I've tried messing with the bios, I've checked the settings on the card, etc. I've booted with "acpi=off" just to see if that would make a difference for some reason. My system is SMP (if it matters), and I've gotten everything else to work. I'm BEGGING for help, I really want to get this card working. I've never used ALSA before, but everything seems fine. The card even works fine when I booted the computer on a DOS boot disk to use the diagnose.exe utility for the card to make sure it was running correctly.

Here is the alsa config file:

 *Quote:*   

> 
> 
> # Alsa 0.9.X kernel modules' configuration file.
> 
> # $Header: /home/cvsroot/gentoo-x86/media-sound/alsa-driver/files/alsa-modules.conf-rc,v 1.1 2002/12/21 06:31:52 agenkin Exp $
> ...

 

I've cut out a few commented lines, but that's the file. This is really driving me crazy. When compiling the kernel, I set sound to "module", and I got alsa by emerging "alsa-driver". I can tell you guys anything that you want to know, but I could really use some help.

----------

## Hypnos

Well, you say that it's not PNP -- is it still an ISA card?  If so, have you run "isapnpdump" (emerge isapnptools) to verify that you and Linux are on the same page viz. IRQ and base address?  Those settings look right (I used to have an SB16), but it pays to make sure.  Also, this diagnostic tells you if you have a resource conflict with another device, like with built-in motherboard audio.

Another thing:  if you can boot up into something else, like windows, you can verify that your card hasn't crapped out since you had it working last.

----------

## MBCook

It is not PNP, but it is a 16 bit ISA card. I have looked through things in /proc and can't find anything else using those resources. I've even gone through the bios and tried reserving each of those values for INA/PNP (as opposed to PCI) and that didn't make a differnece. The card is in the only ISA slot, FYI. The onboard sound is disabled (both in the BIOS and with a jumper). Also, I just tested it today under a DOS boot disk and it made sound and everything.

pnpdump can't find anything. I KNOW that the IO address is right (it's set with jumpers) and the rest of the values work under the DOS boot disk. The pnpdump output is below (I told it to start at 0x220):

 *Quote:*   

> # $Id: pnpdump_main.c,v 1.27 2001/04/30 21:54:53 fox Exp $
> 
> # Release isapnptools-1.26
> 
> #
> ...

 

I could get this card working under OSS easily, so I don't get what's going on. It's driving me nuts.

----------

## Hypnos

A quick search of "ALSA SB16" on both Google and the forums turned up little useful info.

One thing to try:  forcibly turn off PNP support in the sb16 driver with

```
options snd-sb16 port=0x220 irq=5 dma8=1 dma16=5 isapnp=0
```

Also, when doing pnpdump, don't limit base address to 220 or higher, on the off-chance that your card is actually sitting below that.

----------

## MBCook

First off, I just noticed that this is my 101st post. Yeah me!

OK, that said, thanks for the idea to force off ISAPNP. As soon as I did that, it worked. That just figures, doesn't it? Thanks for all the help.

It loads!

As for "limiting" pnpdump, I had to tell it to start at 0x220, because otherwise it would start at 0x270. But thanks for all the help.

----------

## Hypnos

Heh -- no problem.

Hopefully this will help all those out there who seem to be having similar problems.

----------

## stonent

Just a note :

If anyone is running Gentoo (or other linux) in VMware, they'll need these options:

```
modprobe sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330
```

Feel free to translate that into Alsa format.

----------

## UltraN00B

allright then given the gentoo forum practice of not dupeing threads... here is my problem..

I have the same sb16 isa card and it is in my only ISA slot on a DFI board, there is onboard sound which is disabled... ALSA is fully setup and reports no errors, I have adjusted the amixer sound levels successfully and am able to boot without any errors reported from the booting process ALSA and all associated "stuffs" load fine except there is no "ok" it just goes on to the next option... that is my first clue... next is that I have no sound from anything no matter how I adjust the volume... I have everything plugged in ok.. I have my speakers on plugged in and turned up... I hear a click when I turn 3d enhancement on and off in the mixer... however no sound from anything... is there some setting I have missed? should I try adding the options line in /etc/modules.d/alsa? the other thing is that in XMMS when I select the ALSA output plugin and set it to default device it will attempt to play w/out crashing.. If I change it to user defined it crashes... what does it sound like I am missing? I had the card working on my previous gentoo install and have not removed it on this install it should be 99.9% probable that it still works.. I suppose I could always boot into win98 and have a look see...  also I did follow the ALSA setup guide 100 percent.. the only thing that has changed is my kernel version it went from 2.4.20 to 2.4.22 could this be related to my issue? thanks for listening

-ultran00b

edit: here is my /etc/modules.d/alsa

```
# Alsa 0.9.X kernel modules' configuration file.

# $Header: /home/cvsroot/gentoo-x86/media-sound/alsa-utils/files/alsa-modules.conf-rc,v 1.1 2003/08/05 21:07:55 johnm Exp $

# ALSA portion

alias char-major-116 snd

# OSS/Free portion

alias char-major-14 soundcore

##

## IMPORTANT:

## You need to customise this section for your specific sound card(s)

## and then run `update-modules' command.

## Read alsa-driver's INSTALL file in /usr/share/doc for more info.

##

##  ALSA portion

alias snd-card-0 snd-sb16

## alias snd-card-1 snd-ens1371

##  OSS/Free portion

## alias sound-slot-0 snd-card-0

## alias sound-slot-1 snd-card-1

##

# OSS/Free portion - card #1

#alias sound-service-0-0 snd-mixer-oss

#alias sound-service-0-1 snd-seq-oss

#alias sound-service-0-3 snd-pcm-oss

#alias sound-service-0-8 snd-seq-oss

#alias sound-service-0-12 snd-pcm-oss

##  OSS/Free portion - card #2

## alias sound-service-1-0 snd-mixer-oss

## alias sound-service-1-3 snd-pcm-oss

## alias sound-service-1-12 snd-pcm-oss

alias /dev/mixer snd-mixer-oss

alias /dev/dsp snd-pcm-oss

alias /dev/midi snd-seq-oss

# Set this to the correct number of cards.

options snd cards_limit=1

```

----------

## oot

If you haven't already caught this, try uncommenting the 5 lines under section;

# OSS/Free portion - card #1

Now enter commands;

cd /etc/init.d

./alsasound stop

update-modules

./alsasound start

I hope that was it.

----------

## UltraN00B

commented or uncommented still no sound... any other ideas? The sound card works fine in windows and used to work fine in gentoo until I had to reinstall... I had absolutely no problem getting it working the first install and yet now it will not work for some odd reason.. having to boot into windows to listen to music is really quite annoying but hey at least it works... please help this is completely confusing to me..

----------

## cpdsaorg

I am trying to get my isa card to work (AZT1008) with the 2.6.3 kernel just installed isapnptools and did pnpdump and got:

```

# pnpdump

# $Id: pnpdump_main.c,v 1.27 2001/04/30 21:54:53 fox Exp $

# Release isapnptools-1.26

#

# This is free software, see the sources for details.

# This software has NO WARRANTY, use at your OWN RISK

#

# For details of the output file format, see isapnp.conf(5)

#

# For latest information and FAQ on isapnp and pnpdump see:

# http://www.roestock.demon.co.uk/isapnptools/

#

# Compiler flags:  -DREALTIME -DHAVE_PROC -DENABLE_PCI -DHAVE_SCHED_SETSCHEDULER -DHAVE_NANOSLEEP -DWANT_TO_VALIDATE

#

# Trying port address 0273

# Board 1 has serial identifier 74 ff ff ff ff 08 10 54 07

 

# (DEBUG)

(READPORT 0x0273)

(ISOLATE PRESERVE)

(IDENTIFY *)

(VERBOSITY 2)

(CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING

 

# Card 1: (serial identifier 74 ff ff ff ff 08 10 54 07)

# Vendor Id AZT1008, No Serial Number (-1), checksum 0x74.

# Version 1.0, Vendor version 0.3

# ANSI string -->AZT1008 PnP SOUND DEVICE<--

#

# Logical device id AZT0500

#     Device supports I/O range check register

#     Device supports vendor reserved register @ 0x38

#     Device supports vendor reserved register @ 0x3a

#     Device supports vendor reserved register @ 0x3b

#     Device supports vendor reserved register @ 0x3c

#     Device supports vendor reserved register @ 0x3e

#     Device supports vendor reserved register @ 0x3f

#

# Edit the entries below to uncomment out the configuration required.

# Note that only the first value of any range is given, this may be changed if required

# Don't forget to uncomment the activate (ACT Y) when happy

 

(CONFIGURE AZT1008/-1 (LD 0

#     ANSI string -->IDE CDROM DISABLED<--

 

# Multiple choice time, choose one only !

 

#     Start dependent functions: priority preferred

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0000

#             Maximum IO base address 0x0000

#             IO base alignment 8 bytes

#             Number of IO addresses required: 0

# (IO 0 (SIZE 0) (BASE 0x0000) (CHECK))

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0000

#             Maximum IO base address 0x0000

#             IO base alignment 2 bytes

#             Number of IO addresses required: 0

# (IO 1 (SIZE 0) (BASE 0x0000) (CHECK))

#       *** ERROR *** No IRQ specified!

 

#     End dependent functions

 (NAME "AZT1008/-1[0]{IDE CDROM DISABLED  }")

# (ACT Y)

))

#

# Logical device id AZT1008

#     Device supports I/O range check register

#     Device supports vendor reserved register @ 0x39

#     Device supports vendor reserved register @ 0x3a

#     Device supports vendor reserved register @ 0x3b

#     Device supports vendor reserved register @ 0x3c

#     Device supports vendor reserved register @ 0x3e

#     Device supports vendor reserved register @ 0x3f

#

# Edit the entries below to uncomment out the configuration required.

# Note that only the first value of any range is given, this may be changed if required

# Don't forget to uncomment the activate (ACT Y) when happy

 

(CONFIGURE AZT1008/-1 (LD 1

#     ANSI string -->AUDIO<--

 

# Multiple choice time, choose one only !

 

#     Start dependent functions: priority preferred

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0220

#             Maximum IO base address 0x0220

#             IO base alignment 16 bytes

#             Number of IO addresses required: 16

# (IO 0 (SIZE 16) (BASE 0x0220) (CHECK))

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0388

#             Maximum IO base address 0x0388

#             IO base alignment 8 bytes

#             Number of IO addresses required: 8

# (IO 1 (SIZE 8) (BASE 0x0388) (CHECK))

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0534

#             Maximum IO base address 0x0534

#             IO base alignment 4 bytes

#             Number of IO addresses required: 4

# (IO 2 (SIZE 4) (BASE 0x0534) (CHECK))

#       IRQ 5.

#             High true, edge sensitive interrupt

# (INT 0 (IRQ 5 (MODE +E)))

#       First DMA channel 1.

#             8 bit DMA only

#             Logical device is a bus master

#             DMA may execute in count by byte mode

#             DMA may not execute in count by word mode

#             DMA channel speed in compatible mode

# (DMA 0 (CHANNEL 1))

#       Next DMA channel 3.

#             8 bit DMA only

#             Logical device is a bus master

#             DMA may execute in count by byte mode

#             DMA may not execute in count by word mode

#             DMA channel speed in compatible mode

# (DMA 1 (CHANNEL 3))

 

#       Start dependent functions: priority acceptable

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0220

#             Maximum IO base address 0x0240

#             IO base alignment 32 bytes

#             Number of IO addresses required: 16

# (IO 0 (SIZE 16) (BASE 0x0220) (CHECK))

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0388

#             Maximum IO base address 0x0388

#             IO base alignment 8 bytes

#             Number of IO addresses required: 8

# (IO 1 (SIZE 8) (BASE 0x0388) (CHECK))

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0534

#             Maximum IO base address 0x0608

#             IO base alignment 212 bytes

#             Number of IO addresses required: 4

# (IO 2 (SIZE 4) (BASE 0x0534) (CHECK))

#       IRQ 5, 9 or 10.

#             High true, edge sensitive interrupt

# (INT 0 (IRQ 5 (MODE +E)))

#       First DMA channel 0, 1 or 3.

#             8 bit DMA only

#             Logical device is a bus master

#             DMA may execute in count by byte mode

#             DMA may not execute in count by word mode

#             DMA channel speed in compatible mode

# (DMA 0 (CHANNEL 0))

#       Next DMA channel 0, 1 or 3.

#             8 bit DMA only

#             Logical device is a bus master

#             DMA may execute in count by byte mode

#             DMA may not execute in count by word mode

#             DMA channel speed in compatible mode

# (DMA 1 (CHANNEL 0))

 

#       Start dependent functions: priority acceptable

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0220

#             Maximum IO base address 0x0240

#             IO base alignment 32 bytes

#             Number of IO addresses required: 16

# (IO 0 (SIZE 16) (BASE 0x0220) (CHECK))

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0388

#             Maximum IO base address 0x0388

#             IO base alignment 8 bytes

#             Number of IO addresses required: 8

# (IO 1 (SIZE 8) (BASE 0x0388) (CHECK))

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0e84

#             Maximum IO base address 0x0f44

#             IO base alignment 192 bytes

#             Number of IO addresses required: 4

# (IO 2 (SIZE 4) (BASE 0x0e84) (CHECK))

#       IRQ 5, 9 or 10.

#             High true, edge sensitive interrupt

# (INT 0 (IRQ 5 (MODE +E)))

#       First DMA channel 0, 1 or 3.

#             8 bit DMA only

#             Logical device is a bus master

#             DMA may execute in count by byte mode

#             DMA may not execute in count by word mode

#             DMA channel speed in compatible mode

# (DMA 0 (CHANNEL 0))

#       Next DMA channel 0, 1 or 3.

#             8 bit DMA only

#             Logical device is a bus master

#             DMA may execute in count by byte mode

#             DMA may not execute in count by word mode

#             DMA channel speed in compatible mode

# (DMA 1 (CHANNEL 0))

 

#       Start dependent functions: priority acceptable

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0100

#             Maximum IO base address 0x03f0

#             IO base alignment 16 bytes

#             Number of IO addresses required: 16

# (IO 0 (SIZE 16) (BASE 0x0100) (CHECK))

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0100

#             Maximum IO base address 0x03f8

#             IO base alignment 8 bytes

#             Number of IO addresses required: 8

# (IO 1 (SIZE 8) (BASE 0x0100) (CHECK))

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0100

#             Maximum IO base address 0x0ffc

#             IO base alignment 4 bytes

#             Number of IO addresses required: 4

# (IO 2 (SIZE 4) (BASE 0x0100) (CHECK))

#       IRQ 3, 4, 5, 9, 10, 11 or 15.

#             High true, edge sensitive interrupt

# (INT 0 (IRQ 3 (MODE +E)))

#       First DMA channel 0, 1 or 3.

#             8 bit DMA only

#             Logical device is a bus master

#             DMA may execute in count by byte mode

#             DMA may not execute in count by word mode

#             DMA channel speed in compatible mode

# (DMA 0 (CHANNEL 0))

#       Next DMA channel 0, 1 or 3.

#             8 bit DMA only

#             Logical device is a bus master

#             DMA may execute in count by byte mode

#             DMA may not execute in count by word mode

#             DMA channel speed in compatible mode

# (DMA 1 (CHANNEL 0))

 

#       Start dependent functions: priority acceptable

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0100

#             Maximum IO base address 0x03f0

#             IO base alignment 16 bytes

#             Number of IO addresses required: 16

# (IO 0 (SIZE 16) (BASE 0x0100) (CHECK))

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0100

#             Maximum IO base address 0x03f8

#             IO base alignment 8 bytes

#             Number of IO addresses required: 8

# (IO 1 (SIZE 8) (BASE 0x0100) (CHECK))

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0100

#             Maximum IO base address 0x0ffc

#             IO base alignment 4 bytes

#             Number of IO addresses required: 4

# (IO 2 (SIZE 4) (BASE 0x0100) (CHECK))

#       IRQ 3, 4, 5, 9, 10, 11 or 15.

#             High true, edge sensitive interrupt

# (INT 0 (IRQ 3 (MODE +E)))

#       First DMA channel 0, 1 or 3.

#             8 bit DMA only

#             Logical device is a bus master

#             DMA may execute in count by byte mode

#             DMA may not execute in count by word mode

#             DMA channel speed in compatible mode

# (DMA 0 (CHANNEL 0))

 

#     End dependent functions

 (NAME "AZT1008/-1[1]{AUDIO               }")

# (ACT Y)

))

#

# Logical device id AZT2001

#     Device supports I/O range check register

#     Device supports vendor reserved register @ 0x38

#     Device supports vendor reserved register @ 0x39

#     Device supports vendor reserved register @ 0x3a

#     Device supports vendor reserved register @ 0x3b

#     Device supports vendor reserved register @ 0x3c

#     Device supports vendor reserved register @ 0x3e

#     Device supports vendor reserved register @ 0x3f

#

# Edit the entries below to uncomment out the configuration required.

# Note that only the first value of any range is given, this may be changed if required

# Don't forget to uncomment the activate (ACT Y) when happy

 

(CONFIGURE AZT1008/-1 (LD 2

#     ANSI string -->MPU401 MIDI<--

 

# Multiple choice time, choose one only !

 

#     Start dependent functions: priority preferred

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0330

#             Maximum IO base address 0x0330

#             IO base alignment 2 bytes

#             Number of IO addresses required: 2

# (IO 0 (SIZE 2) (BASE 0x0330) (CHECK))

#       IRQ 9.

#             High true, edge sensitive interrupt

# (INT 0 (IRQ 9 (MODE +E)))

 

#       Start dependent functions: priority acceptable

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0300

#             Maximum IO base address 0x0330

#             IO base alignment 48 bytes

#             Number of IO addresses required: 2

# (IO 0 (SIZE 2) (BASE 0x0300) (CHECK))

#       IRQ 3, 4, 5, 9, 10, 11 or 15.

#             High true, edge sensitive interrupt

# (INT 0 (IRQ 3 (MODE +E)))

 

#       Start dependent functions: priority acceptable

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0100

#             Maximum IO base address 0x03fe

#             IO base alignment 2 bytes

#             Number of IO addresses required: 2

# (IO 0 (SIZE 2) (BASE 0x0100) (CHECK))

#       IRQ 3, 4, 5, 9, 10, 11 or 15.

#             High true, edge sensitive interrupt

# (INT 0 (IRQ 3 (MODE +E)))

 

#     End dependent functions

 (NAME "AZT1008/-1[2]{MPU401 MIDI         }")

# (ACT Y)

))

#

# Logical device id AZT3001

#     Device supports I/O range check register

#     Device supports vendor reserved register @ 0x38

#     Device supports vendor reserved register @ 0x3a

#     Device supports vendor reserved register @ 0x3b

#     Device supports vendor reserved register @ 0x3c

#     Device supports vendor reserved register @ 0x3e

#     Device supports vendor reserved register @ 0x3f

#

# Edit the entries below to uncomment out the configuration required.

# Note that only the first value of any range is given, this may be changed if required

# Don't forget to uncomment the activate (ACT Y) when happy

 

(CONFIGURE AZT1008/-1 (LD 3

#     ANSI string -->GAME PORT<--

 

# Multiple choice time, choose one only !

 

#     Start dependent functions: priority preferred

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0200

#             Maximum IO base address 0x0200

#             IO base alignment 8 bytes

#             Number of IO addresses required: 8

# (IO 0 (SIZE 8) (BASE 0x0200) (CHECK))

 

#       Start dependent functions: priority acceptable

#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0208

#             Maximum IO base address 0x0208

#             IO base alignment 8 bytes

#             Number of IO addresses required: 8

# (IO 0 (SIZE 8) (BASE 0x0208) (CHECK))

 

#     End dependent functions

 (NAME "AZT1008/-1[3]{GAME PORT           }")

# (ACT Y)

))

# End tag... Checksum 0x00 (OK)

 

# Returns all cards to the "Wait for Key" state

(WAITFORKEY)

```

Now i am following the alsa install guide to install the alsa-drivers package because the in kernel drivers got me nowhere.

----------

## Jellus

Hi can anybody help me out .. i also have an ISA SB16 card ... and the only module i have in /lib/modules ..... /isa/snd-sb-common .... is snd-sb-common ... i installed using genkernel .... how can i get extra modules compiled for my isa sb16 card .. or do i have to do differently about it ... do i have to make a new kernel ... please tell me .... what to do ...

Thanx already ...

Jellus

----------

