On Tue, Oct 12, 1999 at 08:31:40PM -0400, Greg Wooledge wrote: > Joop Stakenborg ([EMAIL PROTECTED]) 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/ > [EMAIL PROTECTED] | 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 <[EMAIL PROTECTED]> Linux Amateur Radio Software Database http://radio.linux.org.au