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

Re: Sound woes (& Platinum framebuffer advice)



David,

>>>>> "DG" == David Given <dg@tao-group.com> writes:

    DG> I'm running potato Debian on a boring beige 8200/120, using
    DG> the DMA sound driver compiled into kernel version 2.2.13. Now,
    DG> it's mostly working very well --- the general sound quality is
    DG> pretty good --- but I am having some problems.

    DG> You see, it claims to be OSS compatible. It's not
    DG> particularly. It works okay if I'm just streaming sound to it
    DG> but if I try to do anything complex --- like running esd or
    DG> xmms --- it's got a nasty tendency to fall over or lock up the
    DG> controlling process.

There are definitely problems with esound and xmms (see the bug
reports for those packages -- <http://www.debian.org/Bugs/>).  I've
had all sorts of interesting (and annoying) problems.  Try playing
MP3s with mpg123 (command-line utility).


    DG> And is there any way of persuading the Platinum video hardware
    DG> to do anything better than a frankly pathetic 640x480?

Yes!

I have a PowerCenter 132 (based on the Catalyst motherboard, with
a Platinum framebuffer), and I run X at 1152x870, 75 Hz.  (It's
awesome, even compared with 1024x768, which is what I run under
MacOS.)

To do that, you have to use the fbset command to set the
resolution of the monitor.  I figured out what would run and what
wouldn't by feeding the output of `grep "^mode" /etc/fb.modes |
awk -F'"' '{print $2}'` into a foreach loop, changing the mode,
sleeping for a few seconds, and then restoring the resolution to
something I knew would work.

I currently set the resolution with the following script (in
/etc/rc.boot, called 0fbdev):

   #!/bin/sh
   # /etc/rc.boot/0fbdev 
   # 
   #  Sets resolution and refresh rate for framebuffer.
   #    11 Jul 1999 by MEO
   #    many changes CMC
   #

   FBSET=/usr/sbin/fbset

   # If the serial executable has been removed abort the configuration
   [ -x ${FBSET} ] || exit 0

   echo -n "Configuring frame buffer..."

   # fbset --all 1024x768-75
   # We now have a new X server, with a new XF86Config file that
   # seems to allow us to specify a different depth than the
   # console have.  So
   # ${FBSET} -a -depth 16 1152x864-80
   ${FBSET} -a -depth 8 1152x864-80
   # Note that with a depth of 8, we can see the cursor on consoles!

   # From Hartmut Koptein
   /etc/init.d/gpm restart
   /etc/init.d/gdm restart

   echo "done."


I have found in the past that gdm will start up in the wrong
resolution unless I reset the framebuffer when it's running, and
then restart it (thus the line restarting gdm).  gpm is restarted
because Hartmut (and others) explained that the gpm server can get
confused if you change the resolution of the monitor.

Also, the console has to be set to a color depth of 8 (or less) or
you'll get strange color combinations and, usually, no cursor
(which makes it very difficult to work with).  The most recent
xserver-fbdev package (3.3.6-3), along with its
/etc/X11/XF86Config file, allowed me to start X at a different
color depth than the console, allowing me to do 16-bit color.  (I
could do 32-bit, or at least 24-bit, but there are some
applications out there that object to that level of color.  Since
I'm not doing anything much in the way of graphics on the machine,
16-bit seems to be fine.)

Here's my XF86Config file -- I'm sure there's much wrong with it,
but I haven't had the time to mess around trying to get multiple
resolutions working.  While it would be nice, in some ways, to
have slightly larger characters on the console (mostly because
it's kind of disturbing to edit a file and have it only take up
half the screen), I'm quite happy to have what I'm currently
running.  I'm happy to hear advice from anyone who wants to offer
it.

   # $XConsortium: XF68Conf.cpp /main/3 1996/10/23 18:39:05 kaleb $
   #
   #
   #
   #
   # $XFree86: xc/programs/Xserver/hw/xfree68/XF68Conf.cpp,v 3.3.2.2 1998/11/06 09:45:32 hohndel Exp $
   #
   # Copyright (c) 1994 by The XFree86 Project, Inc.
   #
   # Permission is hereby granted, free of charge, to any person obtaining a
   # copy of this software and associated documentation files (the "Software"),
   # to deal in the Software without restriction, including without limitation
   # the rights to use, copy, modify, merge, publish, distribute, sublicense,
   # and/or sell copies of the Software, and to permit persons to whom the
   # Software is furnished to do so, subject to the following conditions:
   # 
   # The above copyright notice and this permission notice shall be included in
   # all copies or substantial portions of the Software.
   # 
   # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
   # THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
   # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
   # OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
   # SOFTWARE.
   # 
   # Except as contained in this notice, the name of the XFree86 Project shall
   # not be used in advertising or otherwise to promote the sale, use or other
   # dealings in this Software without prior written authorization from the
   # XFree86 Project.
   #

   # **********************************************************************
   # Refer to the XF86Config(4/5) man page for details about the format of 
   # this file. This man page is installed as /usr/X11R6/man/man5/XF86Config.5x 
   # **********************************************************************

   # **********************************************************************
   # Files section.  This allows default font and rgb paths to be set
   # **********************************************************************

   Section "Files"

   # The location of the RGB database.  Note, this is the name of the
   # file minus the extension (like ".txt" or ".db").  There is normally
   # no need to change the default.

       RgbPath	"/usr/X11R6/lib/X11/rgb"

   # Multiple FontPath entries are allowed (which are concatenated together),
   # as well as specifying multiple comma-separated entries in one FontPath
   # command (or a combination of both methods)

       FontPath	"/usr/X11R6/lib/X11/fonts/misc/"
   FontPath	"/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
   FontPath	"/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
   FontPath	"/usr/X11R6/lib/X11/fonts/Type1/"
   FontPath	"/usr/X11R6/lib/X11/fonts/Speedo/"
   FontPath	"/usr/X11R6/lib/X11/fonts/75dpi/"
   FontPath	"/usr/X11R6/lib/X11/fonts/100dpi/"

   # For OSs that support Dynamically loaded modules, ModulePath can be
   # used to set a search path for the modules.  This is currently supported
   # for Linux ELF, FreeBSD 2.x and NetBSD 1.x.  The default path is shown
   # here.

   #    ModulePath	"/usr/X11R6/lib/modules"

   EndSection

   # **********************************************************************
   # Module section -- this is an optional section which is used to specify
   # which dynamically loadable modules to load.  Dynamically loadable
   # modules are currently supported only for Linux ELF, FreeBSD 2.x
   # and NetBSD 1.x.  Currently, dynamically loadable modules are used
   # only for some extended input (XInput) device drivers.
   # **********************************************************************
   #
   # Section "Module"
   #
   # This loads the module for the Joystick driver
   #
   # Load "xf86Jstk.so"
   #
   # EndSection

   # **********************************************************************
   # Server flags section.
   # **********************************************************************

   Section "ServerFlags"

   # Uncomment this to cause a core dump at the spot where a signal is 
   # received.  This may leave the console in an unusable state, but may
   # provide a better stack trace in the core dump to aid in debugging

   #    NoTrapSignals

   # Uncomment this to disable the <Crtl><Alt><BS> server abort sequence
   # This allows clients to receive this key event.

   #    DontZap

   # Uncomment this to disable the <Crtl><Alt><KP_+>/<KP_-> mode switching
   # sequences.  This allows clients to receive these key events.

   #    DontZoom

   # Uncomment this to disable tuning with the xvidtune client. With
   # it the client can still run and fetch card and monitor attributes,
   # but it will not be allowed to change them. If it tries it will
   # receive a protocol error.

   #	DisableVidModeExtension

   # Uncomment this to enable the use of a non-local xvidtune client.

   #	AllowNonLocalXvidtune

   # Uncomment this to disable dynamically modifying the input device
   # (mouse and keyboard) settings.

   #	DisableModInDev

   # Uncomment this to enable the use of a non-local client to
   # change the keyboard or mouse settings (currently only xset).

   #	AllowNonLocalModInDev

   EndSection

   # **********************************************************************
   # Input devices
   # **********************************************************************

   # **********************************************************************
   # Keyboard section
   # **********************************************************************

   Section "Keyboard"

       Protocol	"Standard"

   # when using XQUEUE, comment out the above line, and uncomment the
   # following line

   #    Protocol	"Xqueue"

       AutoRepeat	500 5

   # Let the server do the NumLock processing.  This should only be required
   # when using pre-R6 clients
   #    ServerNumLock

   # Specifiy which keyboard LEDs can be user-controlled (eg, with xset(1))
   #    Xleds      1 2 3

   # To set the LeftAlt to Meta, RightAlt key to ModeShift, 
   # RightCtl key to Compose, and ScrollLock key to ModeLock:

   #    LeftAlt     Meta
   #    RightAlt    ModeShift
   #    RightCtl    Compose
   #    ScrollLock  ModeLock

   # To enable the XKEYBOARD extension, comment out XkbDisable.

       XkbDisable

   # To customise the XKB settings to suit your keyboard, modify the
   # lines below (which are the defaults).  For example, for a non-U.S.
   # keyboard, you will probably want to use:
   #    XkbModel    "pc102"
   # If you have a Microsoft Natural keyboard, you can use:
   #    XkbModel    "microsoft"
   #
   # Then to change the language, change the Layout setting.
   # For example, a german layout can be obtained with:
   #    XkbLayout   "de"
   # or:
   #    XkbLayout   "de"
   #    XkbVariant  "nodeadkeys"
   #
   # If you'd like to switch the positions of your capslock and
   # control keys, use:
   #    XkbOptions  "ctrl:swapcaps"


   # These are the default XKB settings for XFree86
   #    XkbRules    "xfree86"
   #    XkbModel    "pc101"
   #    XkbLayout   "us"
   #    XkbVariant  ""
   #    XkbOptions  ""

   EndSection


   # **********************************************************************
   # Pointer section
   # **********************************************************************

   Section "Pointer"

       Protocol	"BusMouse"
       Device	"/dev/mouse"

   # When using XQUEUE, comment out the above two lines, and uncomment
   # the following line.

   #    Protocol	"Xqueue"

   # Baudrate and SampleRate are only for some Logitech mice

   #    BaudRate	9600
   #    SampleRate	150

   # Emulate3Buttons is an option for 2-button Microsoft mice
   # Emulate3Timeout is the timeout in milliseconds (default is 50ms)

   #    Emulate3Buttons
   #    Emulate3Timeout	50

   # ChordMiddle is an option for some 3-button Logitech mice

   #    ChordMiddle

   EndSection


   # **********************************************************************
   # Xinput section -- this is optional and is required only if you
   # are using extended input devices.  This is for example only.  Refer
   # to the XF86Config man page for a description of the options.
   # **********************************************************************
   #
   # Section "Xinput"
   #    SubSection "WacomStylus"
   #        Port "/dev/ttyS1"
   #        DeviceName "Wacom"
   #        AlwaysCore
   #    EndSubSection
   #    SubSection "WacomCursor"
   #        Port "/dev/ttyS1"
   #        AlwaysCore
   #    EndSubSection
   #    SubSection "WacomEraser"
   #        Port "/dev/ttyS1"
   #        AlwaysCore
   #    EndSubSection
   #
   #    SubSection "Elographics"
   #        Port "/dev/ttyS1"
   #        DeviceName "Elo"
   #        MinimumXPosition 300
   #        MaximumXPosition 3500
   #        MinimumYPosition 300
   #        MaximumYPosition 3500
   #        Screen 0
   #        UntouchDelay 10
   #        ReportDelay 10
   #        AlwaysCore
   #    EndSubSection
   #   
   #    SubSection "Joystick"
   #        Port "/dev/joy0"
   #        DeviceName "Joystick"
   #        TimeOut 10
   #        MinimumXPosition 100
   #        MaximumXPosition 1300
   #        MinimumYPosition 100
   #        MaximumYPosition 1100
   #        # CenterX 700
   #        # CenterY 600
   #        Delta 20
   #    EndSubSection
   #
   # The Mouse Subsection contains the same type of entries as the
   # standard Pointer Section (see above), with the addition of the
   # DeviceName entry.
   #
   #    SubSection "Mouse"
   #        Port "/dev/mouse2"
   #        DeviceName "Second Mouse"
   #        Protocol "Logitech"
   #        AlwaysCore
   #    EndSubSection
   # EndSection


   # **********************************************************************
   # Monitor section
   # **********************************************************************

   # Any number of monitor sections may be present

   Section "Monitor"

       Identifier	"Generic Monitor"
       VendorName	"Unknown"
       ModelName	"Unknown"

   # HorizSync is in kHz unless units are specified.
   # HorizSync may be a comma separated list of discrete values, or a
   # comma separated list of ranges of values.
   # NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
   # USER MANUAL FOR THE CORRECT NUMBERS.

       HorizSync   31.5  # typical for a single frequency fixed-sync monitor

   #    HorizSync	30-64         # multisync
   #    HorizSync	31.5, 35.2    # multiple fixed sync frequencies
   #    HorizSync	15-25, 30-50  # multiple ranges of sync frequencies

   # VertRefresh is in Hz unless units are specified.
   # VertRefresh may be a comma separated list of discrete values, or a
   # comma separated list of ranges of values.
   # NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
   # USER MANUAL FOR THE CORRECT NUMBERS.

       VertRefresh 60  # typical for a single frequency fixed-sync monitor

   #    VertRefresh	50-100        # multisync
   #    VertRefresh	60, 65        # multiple fixed sync frequencies
   #    VertRefresh	40-50, 80-100 # multiple ranges of sync frequencies

   # Modes can be specified in two formats.  A compact one-line format, or
   # a multi-line format.

   # A generic VGA 640x480 mode (hsync = 31.5kHz, refresh = 60Hz)
   # These two are equivalent

   #    ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525

       Mode "640x480"
	   DotClock	25.175
	   HTimings	640 664 760 800
	   VTimings	480 491 493 525
       EndMode

   # These two are equivalent

   #    ModeLine "1024x768i" 45 1024 1048 1208 1264 768 776 784 817 Interlace

   #    Mode "1024x768i"
   #        DotClock	45
   #        HTimings	1024 1048 1208 1264
   #        VTimings	768 776 784 817
   #        Flags		"Interlace"
   #    EndMode

   EndSection


   Section "Monitor"

       Identifier  "PDL Pivot 1700"
       VendorName  "Portrait Display Labs"
       ModelName   "Pivot 1700"
       HorizSync   30.0-65.0
       VertRefresh 50.0-90.0
   EndSection



   # **********************************************************************
   # Graphics device section
   # **********************************************************************

   # Any number of graphics device sections may be present

   Section "Device"
       Identifier	"Generic VGA"
       VendorName	"Unknown"
       BoardName	"Unknown"
       Chipset	"generic"
   #    VideoRam	256
   #    Clocks	25.2 28.3
   EndSection

   Section "Device"
       # SVGA server auto-detected chipset
       Identifier	"Generic SVGA"
       VendorName	"Unknown"
       BoardName	"Unknown"
   EndSection

   # Section "Device"
   #    Identifier	"Any Trident TVGA 9000"
   #    VendorName	"Trident"
   #    BoardName	"TVGA 9000"
   #    Chipset	"tvga9000"
   #    VideoRam	512
   #    Clocks	25 28 45 36 57 65 50 40 25 28 0 45 72 77 80 75
   # EndSection

   # Section "Device"
   #    Identifier	"Actix GE32+ 2MB"
   #    VendorName	"Actix"
   #    BoardName	"GE32+"
   #    Ramdac	"ATT20C490"
   #    Dacspeed	110
   #    Option	"dac_8_bit"
   #    Clocks	 25.0  28.0  40.0   0.0  50.0  77.0  36.0  45.0
   #    Clocks	130.0 120.0  80.0  31.0 110.0  65.0  75.0  94.0
   # EndSection

   # Section "Device"
   #    Identifier	"Hercules mono"
   # EndSection

   Section "Device"
       Identifier "Linux Frame Buffer Device"
   EndSection

   # **********************************************************************
   # Screen sections
   # **********************************************************************

   # The colour SVGA server

   Section "Screen"
       Driver	"svga"
       Device	"Generic SVGA"
       Monitor	"Generic Monitor"
       DefaultColorDepth 8
       Subsection "Display"
	   Depth	    8
	   Modes	    "640x480"
	   ViewPort    0 0
	   Virtual     800 600
       EndSubsection
   EndSection

   # The 16-colour VGA server

   Section "Screen"
       Driver	"vga16"
       Device	"Generic VGA"
       Monitor	"Generic Monitor"
       Subsection "Display"
	   Modes	    "640x480"
	   ViewPort    0 0
	   Virtual     800 600
       EndSubsection
   EndSection

   # The Mono server

   Section "Screen"
       Driver	"vga2"
       Device	"Generic VGA"
       Monitor	"Generic Monitor"
       Subsection "Display"
	   Modes	    "640x480"
	   ViewPort    0 0
	   Virtual     800 600
       EndSubsection
   EndSection

   # The hercules driver in the Mono and VGA16 servers
   #
   # Section "Screen"
   #     Driver	"mono"
   #     Device	"Hercules Mono"
   #     Monitor	"Generic Monitor"
   #     Subsection "Display"
   #     EndSubsection
   # EndSection

   # The accelerated servers (S3, Mach32, Mach8, 8514, P9000, AGX, W32)

   # Section "Screen"
   #     Driver	"accel"
   #     Device	"Actix GE32+ 2MB"
   #     Monitor	"Generic Monitor"
   #     DefaultColorDepth 8
   #     Subsection  "Display"
   #         Depth	    8
   #         Modes	    "640x480"
   #         ViewPort    0 0
   #         Virtual	    1280 1024
   #     EndSubsection
   #     SubSection "Display"
   #         Depth	    16
   #         Weight	    565
   #         Modes	    "640x480"
   #         ViewPort    0 0
   #         Virtual	    1024 768
   #     EndSubsection
   # EndSection

   # Server for the Linux Frame Buffer Device

   Section "Screen"
       Driver	"fbdev"
       Device	"Linux Frame Buffer Device"
       Monitor     "PDL Pivot 1700"
   #   Monitor	"Generic Monitor"
       DefaultColorDepth 16
   #   DefaultColorDepth 8
       SubSection "Display"
	   Depth	    16
	   Modes	    "default"
	   Virtual	    1152 900
       EndSubSection
   #    SubSection "Display"
   #        Depth	    1
   #        Modes	    "640x480" "800x600"
   #        Virtual	    1152 900
   #    EndSubSection
   #    SubSection "Display"
   #        Depth	    4
   #        Modes	    "640x480" "800x600"
   #        Virtual	    1152 900
   #    EndSubSection
   #    SubSection "Display"
   #        Depth	    8
   #        Modes	    "640x480" "800x600"
   #        Virtual	    1152 900
   #    EndSubSection
   EndSection

I hope this helps -- good luck!

   C.

+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
 Behind the counter a boy with a shaven head stared vacantly into space, 
 a dozen spikes of microsoft protruding from the socket behind his ear.
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
   C.M. Connelly               c@eskimo.com                   SHC, DS
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 


Reply to: