Uniaud for OS/2 4, 4.51/4.52 and eComStation 1.0/1.1/1.2/1.2R/2.0
========================================================================

1.0 About Uniaud
2.0 Installation
   2.1 Upgrade
   2.2 Basic Installation: Common
   2.3 Installing HDA Support
   2.4 Device Driver Load Options
3.0 Removal

1.0 About Uniaud
==================

Thank you for downloading Uniaud, the Universal Audio Support Driver for
OS/2 and eComStation. Uniaud is still under development and we need your
feedback to improve it. It is very important that you report your experiences,
both for sound cards which work and for those which may have problems (see
Supported Hardware).

Uniaud was a project created by InnoTek Systemberatung GmbH, now hosted
by Netlabs.

Uniaud is based on the Linux ALSA project. Uniaud supports a broad range
of PCI audio cards/chipsets, including AC'97 and HDA audio codecs. AC'97
audio codecs will be found in systems with integrated (onboard) audio,
typically built up through 2004. HDA codecs will be found in modern systems
with integrated audio, built during or after 2004.

Uniaud also supports some legacy audio hardware.


2.0 Installation
==================

  2.1 Upgrade
  -------------
If Uniaud is already installed, it is safest to make a backup of your existing
drivers located in x:\MMOS2 (where x: is your boot volume) and just copy
uniaud32.sys and uniaud16.sys over them.

  2.2 Basic Installation: Common
  --------------------------------

Uniaud installs using the built-in multimedia installer in OS/2 or
eComStation. Therefore, once you have downloaded the file(s) mentioned above,
simply unzip the package to a safe place and run install.cmd from that
directory. This will launch the multimedia installer which will guide you
through the process.

Then simply reboot at the end of the installation. Restarting the desktop
will not suffice, as the driver needs to be loaded from CONFIG.SYS.

  2.4 Device Driver Load Options
  --------------------------------

The following options are supported in CONFIG.SYS:

DEVICE=x:\MMOS2\UNIAUD32.SYS /V /C:CARDNAME
  - /V - Verbose
  - /C:CARDNAME - Force detection of specified audio hardware
        Where CARDNAME is:
      - SBLIVE      : Sound Blaster Live!
      - CS4281      : Cirrus Logic CS4281
      - ALS4000     : Avance Logic ALS4000
      - CMEDIA      : C-Media CMI8738, CMI8338
      - ICH         : Intel ICHx, NFORCE1/2/3
      - CS46XX      : Cirrus Logic CS4280, CS46XX
      - VIA82XX     : VIA VT82C686A/B/C, VT8233A/C, VT8235
      - ESS1938     : ESS Solo-1 (ESS 1938)
      - MAESTRO     : ESS Maestro1/2/2E, TerraTec DMX
      - MAESTRO3    : ESS Maestro3/Allegro/Canyon3D-2
      - YAMAHA      : Yamaha YMF 724/724F/740/740C/744/754
      - ENSONIQ     : Ensoniq AudioPCI ES1371/73, Creative Labs SB PCI64/128
      - ALI5451     : ALI 5451
      - TRIDENT     : Trident 4D Wave, SI7018

Default: /V (verbose messages; card detected automatically)

DEVICE=x:\MMOS2\UNIAUD16.SYS /V /C /M /L
  - /V - Verbose
  - /C - Enable CD output
  - /M - Enable Microphone output
  - /L - Enable Line-In output

Default: /V /C ((verbose messages; CD output enabled)


3.0 Removal
=============

To temporarily disable Uniaud, simply comment the following two lines in
CONFIG.SYS:

DEVICE=x:\MMOS2\UNIAUD32.SYS
DEVICE=x:\MMOS2\UNIAUD16.SYS

To uninstall Uniaud, run the included uninstal.exe. This will completely and
safely remove the Uniaud entries from MMPM2.INI and CONFIG.SYS. Uninstalling
from the Multimedia GUI tool will not work.

4.0 Troubleshooting
=====================

  4.1 No Sound
  --------------
This is typically caused by one of two different issues. Either the speaker
output levels are set very low (or muted) or the audio device has not not been
activated (incorrect identification, incorrect/incompatible IRQ, etc.)

To eliminate the first possibility, download the latest LBMix mixer
application from Hobbes:
 http://hobbes.nmsu.edu/h-search.php?key=lbmix&pushbutton=Search
and install it. Try to adjust the volume from LBMix and/or the standard volume
control object. Note that some devices need to have their output levels set at
each reboot. If adjusting the output levels has no effect, then perhaps the
hardware is not being properly identified. In that case, ensure that the /V
option is specified on the DEVICE=x:\MMOS2\UNIAUD32.SYS line in CONFIG.SYS,
reboot, and at the boot blob (square block in the upper left hand corner of
the screen) press Alt-F4. This will allow you to step through the CONFIG.SYS
processing, enabling you to read the output message from the device driver.
Note the card which has been identified, the detected mixer, and the IRQ being
used. Compare this information to the hardware you know to be installed, and
if necessary, perform one of the following two actions:
      a) Force full hardware detection: Reboot, and at the boot blob press
         Alt-F1. At the "Recovery Choices" screen, select "F5 full hardware
         detection" and continue the boot sequence. Review the new output
         from the device driver details to see if your card has been properly
         identified. If that does not resolve the issue, then try the next
         option.

      b) Override auto-detection of your card (see _2.4 Device Driver Load
         Options_, above).

Even if the card is being properly detected (or forced), it is possible that
the IRQ which the system (or ACPI PSD) has assigned to it may be incompatible
with the hardware. With ACPI systems, it may be necessary to adjust the IRQ in
ACPI.CFG (see ACPI documentation for proper use of the REMAP directive). Some
systems may allow the IRQ to be locked in BIOS setup; this may be worth trying.

It is also possible that the proper information is not getting entered into
MMPM.INI. In this case, follow the appropriate procedure:

      a) For eComStation 1.1 - 2.0, start the Multimedia Installer
         (MINSTALL.EXE) and select the option to reset your MMeCS settings.
         Reboot, and re-install Uniaud.
      b) For earlier releases of eComStation and for Warp, uninstall Uniaud
         (see _3.0 Removal_), reboot, and re-install.

  4.2 Distorted Sound
  ---------------------
Distortion is usually caused in the output section of the audio device, due to
the preamp circuit overdriving the signal, or due to extremely loud output
settings causing the noise at the speakers themselves. In some cases, this
overdrive condition may be addressed by the use of a good mixer application or
judicious use of the volume control.

Audio distortion may also be caused by device conflicts, typically with PS/2
mice. USB devices may also cause these issues, and in both cases, the IRQ does
not need to directly conflict with the audio hardware. Refer to the notes in
_4.1 No Sound_ for suggestions on adjusting the IRQ. To test, try commenting
out the mouse driver in CONFIG.SYS (caution: be sure that you are comfortable
enough navigating your desktop without a mouse before disabling the device!)
and rebooting. Try disconnecting all USB devices to determine the source of
the conflict.

  4.3 Looping Sound
  -------------------

Looping sound is defined as a very small fraction of a second of audio playing
over and over very rapidly. If you have more than a fraction of a second of
audio repeating, such as a whole system sound repeating, that is not a uniaud
driver problem and is not covered here.

Looping sound is a close cousin to the condition described in _4.2 Distorted Sound_,
and in fact, is a particular type of distortion. Looping is usually caused by
a card mis-detection or an IRQ conflict. Review the procedures outlined in
_4.1 No Sound_ and _4.2 Distorted Sound_ to properly identify your hardware
and to try to resolve IRQ conflicts.

  4.4 Hang at Boot
  ------------------

This is most often seen with HDA hardware, and is typically caused by an IRQ
conflict. Review the procedures outlined in _4.1 No Sound_ and _4.2 Distorted
Sound_ to properly identify your hardware and to try to resolve IRQ conflicts.

  4.5 Hang at Desktop Start
  ---------------------------

This is typically a problem in uniaud16.sys, and appears to happen more
frequently when system sounds are enabled and startup events are occurring in
rapid succession, seemingly" on top of each other." Try booting to a
maintenance partition, from CD, or even to a command prompt via Alt-F1 (see
_4.1 No Sound_ for more on Alt-F1), editing CONFIG.SYS to disable Uniaud (see
_3.0 Removal_), rebooting, and disabling system sound. Edit CONFIG.SYS to
un-comment the Uniaud device driver lines, and reboot.

Note that when system sounds are disabled at startup, it is often possible to
re-enable them afterward, however, once the same conditions exist as are
present during startup (multiple events occurring almost simultaneously), the
hang is likely to re-manifest itself.

  4.6 Hang During Playback
  --------------------------

See the notes in _4.5 Hang at Desktop Start_ for some tips. Try limiting the
number of audio streams attempting to be played at one time. Look for other
sources of the condition (Flash, defective media, MPlayer codec, etc.)

  4.7 Traps
  -----------

A typical trap involving Uniaud will be TRAP008, which indicates a direct IRQ
conflict. Often, these are seen with HDA hardware in ACPI systems, and may
occur right at system start, even after a complete power cycle (some data does
not get cleared immediately between hard resets).

Some suggested actions include forcing full hardware detection to ensure that
Uniaud is indeed seeing the correct device (see _4.1 No Sound_ for
procedures), or adjusting IRQ(s) to avoid conflicts (see _4.1 No Sound_ and
_4.2 Distorted Sound_).

To preserve the data from the trap screen, follow this procedure:

N.B.: You should only do this if you have a floppy drive in your system or a
memory dump partition. Support and directions for setting up the latter are
beyond the scope of this document, but detailed instructions may be found at
the following url:
http://home.earthlink.net/~steve53/os2diags/TrapDumpRef.txt

      1. Press Ctrl-Alt-F10 twice (note never do this on a running system!!).
         You will be asked to insert a diskette (please note the complete
         diskette will be wiped!!). You _only_ need to fill up one diskette to
         get the trap screen.
      2. Insert the diskette.
      3. When prompted to insert the next diskette, reboot with Ctrl-Alt-Del,
         and either allow the system to boot normally, or follow one of the
         recovery procedures outlined above to temporarily disable Uniaud.
      4. Upon a successful boot, you may download and run this script:
         http://home.earthlink.net/~steve53/os2diags/DumpTrapScreen.zip to
         extract the trap screen from the diskette.

Trap screen data is extremely helpful when raising a support ticket.

5.0 Raising Support Tickets and Reporting Bugs
================================================

Sometimes, the troubleshooting tips outlined above may not be enough to
resolve a particular issue. In that case, you may raise a support ticket.
Likewise, if you believe that you've found a bug, the Uniaud team is anxious
to hear about it.

The best option is to use the corresponding debug package for this version
of Uniaud and UniLog.zip, both of which are available from the Netlabs ftp
site:
ftp.netlabs.org/pub/uniaud

After replacing uniaud16.sys and uniaud32.sys with their debug counterparts,
ensure that you copy the corresponding .sym files to x:\MMOS2. Reboot the
system to load the debug builds.

Extract UniLog.zip to a safe directory, and run UniLog.cmd from there. This
will create a log file and will zip it into an archive. The archive will be
located in the directory defined by your TMP environment variable. Attach
this archive to your bug report.

All bug reports should go to Uniaud Trac which may be found on:
http://svn.netlabs.org/uniaud/report . If you do not have your own login
credentials, you can request one at:
http://www.netlabs.org/en/site/member/member.xml .

Describe your bug briefly, but be as specific as possible. If your system has
some exotic hardware which may or may not be involved, mention this in your
report. Describe whatever steps you deem necessary to recreate the condition,
whether the condition occurs sometimes, always, or very rarely. Mention any
troubleshooting steps you have attempted prior to raising the ticket.

Finally, per the above recommendation, attach the unilog zip archive to the
ticket.


6.0 FAQ
=========

Q. What is OS/2?

A. If you ask this one, you probably don't need UniAud. Go to
 www.eComStation.com to get more information or to purchase a license.

Q. What is Uniaud?

A. Uniaud is the Universal Audio Support driver for OS/2 and eComStation,
   based on the Linux ALSA project (http://www.alsa.com ).

Q. Uniaud detected my card successfully but I have no sound

A. Follow the procedures outlined in _4.1 No Sound_.

Q. Uniaud detected my card successfully but when I try to play something I got
   error: MCI Error 5134: No device driver found.

A. Follow the procedures outlined in _4.1 No Sound_.

Q. I installed MIDI support, but when I click on a Midi file I hear no music.
   What is happening ?

A. Most audio cards don't support MIDI. So if there is no MIDI playback
   its most likely not support by Uniaud in conjunction with your chipset.

Q. Where may I obtain the latest version of Uniaud?

A. The latest version of Uniaud is available from Netlabs:
   ftp.netlabs.org/pub/uniaud

Q. I want to assist in the development of Uniaud.

A. See _7.0 Project Support_.


7.0 Project Support
=====================

We need your feedback! Consider making a donation, and of course, report bugs.

Talented developers are welcome to join the team, and others whose talents may
lie elsewhere but who would also like to contribute may do so either by testing
or by performing other tasks (website maintenance, documentation, education,
etc.) For more information, stop by the Uniaud Trac Wiki:
http://trac.netlabs.org/uniaud

To make a financial contribution to the project, please visit the Mensys
website: http://shop.mensys.nl/uk/netlabs

