[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Anyone using Sound Blaster PCI64?



On Tue, Oct 12, 1999 at 08:31:40PM -0400, Greg Wooledge wrote:
> Joop Stakenborg (aba@casema.net) wrote:
> 
> > At the moment I am using a Sound Blaster vibra16x pnp card, 
> > this card is not really supported by OSSFree (kernel)
> > or ALSA.
> 
> I have this card.  It works fine for me, but it took some hacking.
> 
> It's an ISA PnP card, so you'll need isapnptools.  Use pnpdump to generate
> a template config file, then edit it to produce /etc/isapnp.conf.  I'll
> attach mine at the end of this message.
> 
> I'm using the OSS/free driver from the stock 2.2.12 kernel.  I have the
> following options in /etc/modutils/options (and thus /etc/conf.modules
> after running update-modules):
> 
>   options opl3 io=0x388 
>   options sb io=0x220 irq=5 dma=1 dma16=3 mpu_io=0x330 
> 
> I use automatic module loading (kmod).  It loads when I play sound files,
> and works as I would expect (/dev/audio, sox's "play", xmms, mpg123,
> realplayer all work).
> 
> I do get one warning message:
> 
>   Soundblaster audio driver Copyright (C) by Hannu Savolainen 1993-1996
>   SB 4.16 detected OK (220)
>   SB16: Bad or missing 16 bit DMA channel

Here is what bothers me. The card seems to use 2 DMA channels,
but one is always working bad (the 16 bit DMA channel).
> 
> But I'm definitely getting 16-bit stereo output.
> 

That's right. I have sound too. Under enlightenment, the default
window manager for gnome, which uses a sound daemon calles esd,
the card produces no sound at all.

I get warnings in the syslog all the time.

I want to use this card with speak-freely, but it refuses to work
in full duplex mode, because of the faulty DMA channel.
Full duplex is needed to speak and listen at the same time with
speak-freely.

Thanks for your suggestions greg. Maybe I give it another try.

> -- 
> Greg Wooledge                    | Distributed.NET http://www.distributed.net/
> wooledge@kellnet.com             | because a CPU is a terrible thing to waste.
> http://www.kellnet.com/wooledge/ |

> # $Id: pnpdump.c,v 1.16 1998/10/09 22:19:06 fox Exp $
> # This is free software, see the sources for details.
> # This software has NO WARRANTY, use at your OWN RISK
> #
> # For details of this file format, see isapnp.conf(5)
> #
> # For latest information on isapnp and pnpdump see:
> # http://www.roestock.demon.co.uk/isapnptools/
> #
> # Compiler flags: -DREALTIME -DNEEDSETSCHEDULER
> #
> # Trying port address 0203
> # Board 1 has serial identifier 6d ff ff ff ff f0 00 8c 0e
> 
> # (DEBUG)
> (READPORT 0x0203)
> (ISOLATE PRESERVE)
> (IDENTIFY *)
> (VERBOSITY 2)
> (CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING
> 
> # Card 1: (serial identifier 6d ff ff ff ff f0 00 8c 0e)
> # Vendor Id CTL00f0, No Serial Number (-1), checksum 0x6D.
> # Version 1.0, Vendor version 1.0
> # ANSI string -->Creative ViBRA16X PnP<--
> #
> # Logical device id CTL0043
> #
> # 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 CTL00f0/-1 (LD 0
> #     ANSI string -->Audio<--
> 
> # Multiple choice time, choose one only !
> 
> #     Start dependent functions: priority preferred
> #       IRQ 5.
> #             High true, edge sensitive interrupt (by default)
> (INT 0 (IRQ 5 (MODE +E)))
> #       First DMA channel 1.
> #             8 bit DMA only
> #             Logical device is not 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 not 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))
> #       Logical device decodes 16 bit IO address lines
> #             Minimum IO base address 0x0220
> #             Maximum IO base address 0x0220
> #             IO base alignment 1 bytes
> #             Number of IO addresses required: 16
> (IO 0 (SIZE 16) (BASE 0x0220))
> #       Logical device decodes 16 bit IO address lines
> #             Minimum IO base address 0x0330
> #             Maximum IO base address 0x0330
> #             IO base alignment 1 bytes
> #             Number of IO addresses required: 2
> (IO 1 (SIZE 2) (BASE 0x0330))
> #       Logical device decodes 16 bit IO address lines
> #             Minimum IO base address 0x0388
> #             Maximum IO base address 0x0388
> #             IO base alignment 1 bytes
> #             Number of IO addresses required: 4
> (IO 2 (SIZE 4) (BASE 0x0388))
> 
> #       Start dependent functions: priority acceptable
> #       IRQ 5, 7, 9 or 10.
> #             High true, edge sensitive interrupt (by default)
> # (INT 0 (IRQ 5 (MODE +E)))
> #       First DMA channel 0, 1 or 3.
> #             8 bit DMA only
> #             Logical device is not 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 not 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))
> #       Logical device decodes 16 bit IO address lines
> #             Minimum IO base address 0x0220
> #             Maximum IO base address 0x0280
> #             IO base alignment 32 bytes
> #             Number of IO addresses required: 16
> # (IO 0 (SIZE 16) (BASE 0x0220))
> #       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 1 (SIZE 2) (BASE 0x0300))
> #       Logical device decodes 16 bit IO address lines
> #             Minimum IO base address 0x0388
> #             Maximum IO base address 0x0388
> #             IO base alignment 1 bytes
> #             Number of IO addresses required: 4
> # (IO 2 (SIZE 4) (BASE 0x0388))
> 
> #       Start dependent functions: priority acceptable
> #       IRQ 5, 7, 9 or 10.
> #             High true, edge sensitive interrupt (by default)
> # (INT 0 (IRQ 5 (MODE +E)))
> #       First DMA channel 0, 1 or 3.
> #             8 bit DMA only
> #             Logical device is not 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 not 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))
> #       Logical device decodes 16 bit IO address lines
> #             Minimum IO base address 0x0220
> #             Maximum IO base address 0x0280
> #             IO base alignment 32 bytes
> #             Number of IO addresses required: 16
> # (IO 0 (SIZE 16) (BASE 0x0220))
> #       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 1 (SIZE 2) (BASE 0x0300))
> 
> #       Start dependent functions: priority acceptable
> #       IRQ 5, 7, 9 or 10.
> #             High true, edge sensitive interrupt (by default)
> # (INT 0 (IRQ 5 (MODE +E)))
> #       First DMA channel 0, 1 or 3.
> #             8 bit DMA only
> #             Logical device is not 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 not 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))
> #       Logical device decodes 16 bit IO address lines
> #             Minimum IO base address 0x0220
> #             Maximum IO base address 0x0280
> #             IO base alignment 32 bytes
> #             Number of IO addresses required: 16
> # (IO 0 (SIZE 16) (BASE 0x0220))
> 
> #       Start dependent functions: priority functional
> #       IRQ 5, 7, 9 or 10.
> #             High true, edge sensitive interrupt (by default)
> # (INT 0 (IRQ 5 (MODE +E)))
> #       First DMA channel 0, 1 or 3.
> #             8 bit DMA only
> #             Logical device is not 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))
> #       Logical device decodes 16 bit IO address lines
> #             Minimum IO base address 0x0220
> #             Maximum IO base address 0x0280
> #             IO base alignment 32 bytes
> #             Number of IO addresses required: 16
> # (IO 0 (SIZE 16) (BASE 0x0220))
> #       Logical device decodes 16 bit IO address lines
> #             Minimum IO base address 0x0300
> #             Maximum IO base address 0x0330
> #             IO base alignment 16 bytes
> #             Number of IO addresses required: 2
> # (IO 1 (SIZE 2) (BASE 0x0300))
> #       Logical device decodes 16 bit IO address lines
> #             Minimum IO base address 0x0388
> #             Maximum IO base address 0x0394
> #             IO base alignment 4 bytes
> #             Number of IO addresses required: 4
> # (IO 2 (SIZE 4) (BASE 0x0388))
> 
> #       Start dependent functions: priority functional
> #       IRQ 5, 7, 9 or 10.
> #             High true, edge sensitive interrupt (by default)
> # (INT 0 (IRQ 5 (MODE +E)))
> #       First DMA channel 0, 1 or 3.
> #             8 bit DMA only
> #             Logical device is not 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))
> #       Logical device decodes 16 bit IO address lines
> #             Minimum IO base address 0x0220
> #             Maximum IO base address 0x0280
> #             IO base alignment 32 bytes
> #             Number of IO addresses required: 16
> # (IO 0 (SIZE 16) (BASE 0x0220))
>  (NAME "CTL00f0/-1[0]{Audio               }")
> 
> #     End dependent functions
> (ACT Y)
> ))
> #
> # Logical device id CTL7005
> #     Device supports vendor reserved register @ 0x39
> #     Device supports vendor reserved register @ 0x3b
> #     Device supports vendor reserved register @ 0x3d
> #
> # 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 CTL00f0/-1 (LD 1
> #     Compatible device id PNPb02f
> #     ANSI string -->Game<--
> 
> # Multiple choice time, choose one only !
> 
> #     Start dependent functions: priority preferred
> #       Logical device decodes 16 bit IO address lines
> #             Minimum IO base address 0x0201
> #             Maximum IO base address 0x0201
> #             IO base alignment 1 bytes
> #             Number of IO addresses required: 1
> # (IO 0 (SIZE 1) (BASE 0x0201))
> 
> #       Start dependent functions: priority acceptable
> #       Logical device decodes 16 bit IO address lines
> #             Minimum IO base address 0x0200
> #             Maximum IO base address 0x020f
> #             IO base alignment 1 bytes
> #             Number of IO addresses required: 1
> # (IO 0 (SIZE 1) (BASE 0x0200))
>  (NAME "CTL00f0/-1[1]{Game                }")
> 
> #     End dependent functions
> # (ACT Y)
> ))
> # End tag... Checksum 0x00 (OK)
> 
> # Returns all cards to the "Wait for Key" state
> (WAITFORKEY)




-- 

--

 Joop Stakenborg PA4TU, ex-PA3ABA 
      <pa3aba@debian.org>
 Linux Amateur Radio Software Database
    http://radio.linux.org.au


Reply to: