	How to try to survive an IBM Mwave under Linux SB drivers


* IBM refuses to provide documentation. If anyone can ever find out what
  MWD50430.EXE actually does to load firmware then this comedy could go
  away.

* If you'd like to ask IBM why they don't release Mwave information.
  phone IBM (425-556-8822) and ask them why they still haven't 
  released any documentation.
  [http://204.200.238.31/cgi-bin/link.pl?co=i&cl=/ts/ibm/contact.html]

----------------------------------------------------------------------------

OK, first thing - the IRQ problem IS a problem, whether the test is bypassed or
not.  It is NOT a Linux problem, but an MWAVE problem that is fixed with the
latest MWAVE patches. So, in other words, don't bypass the test for MWAVES!

I have Windows 95 on /dev/hda1, swap on /dev/hda2, and Red Hat 5 on /dev/hda3.

The steps, then:

    Boot to Linux. 
    Mount Windows 95 file system (assume mount point = /dos95).
    mkdir /dos95/linux
    mkdir /dos95/linux/boot
    mkdir /dos95/linux/boot/parms

    Copy the kernel, any initrd image, and loadlin to /dos95/linux/boot/.

    Reboot to Windows 95.

    Edit C:/msdos.sys and add or change the following:

        Logo=0
        BootGUI=0

    Note that msdos.sys is a text file but it needs to be made 'unhidden',
    readable and writable before it can be edited.  This can be done with
    DOS' "attrib" command.

    Edit config.sys to have multiple config menus. I have one for windows 95 and
    five for Linux, like this:
------------
[menu]
menuitem=W95, Windows 95
menuitem=LINTP, Linux - ThinkPad
menuitem=LINTP3, Linux - ThinkPad Console
menuitem=LINDOC, Linux - Docked
menuitem=LINDOC3, Linux - Docked Console
menuitem=LIN1, Linux - Single User Mode
REM menudefault=W95,10

[W95]

[LINTP]

[LINDOC]

[LINTP3]

[LINDOC3]

[LIN1]

[COMMON]
FILES=30
REM Please read README.TXT in C:\MWW subdirectory before changing the DOS= statement.
DOS=HIGH,UMB
DEVICE=C:\MWW\MANAGER\MWD50430.EXE
SHELL=c:\command.com /e:2048
-------------------

The important things are the SHELL and DEVICE statements.

    Then change autoexec.bat. Basically everything in there originally should be
    done ONLY when Windows 95 is booted. Then you add new things specifically
    for Linux.  Mine is as follows

---------------
@ECHO OFF
if "%CONFIG%" == "W95" goto W95

REM
REM Linux stuff
REM
SET MWPATH=C:\MWW\DLL;C:\MWW\MWGAMES;C:\MWW\DSP
SET BLASTER=A220 I5 D1
SET MWROOT=C:\MWW
SET LIBPATH=C:\MWW\DLL
SET PATH=C:\WINDOWS;C:\MWW\DLL;
CALL MWAVE START NOSHOW
c:\linux\boot\loadlin.exe @c:\linux\boot\parms\%CONFIG%.par

:W95
REM
REM Windows 95 stuff
REM
c:\toolkit\guard
SET MSINPUT=C:\MSINPUT
SET MWPATH=C:\MWW\DLL;C:\MWW\MWGAMES;C:\MWW\DSP
REM The following is used by DOS games to recognize Sound Blaster hardware.
REM If hardware settings are changed, please change this line as well.
REM See the Mwave README file for instructions.
SET BLASTER=A220 I5 D1
SET MWROOT=C:\MWW
SET LIBPATH=C:\MWW\DLL
SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;E:\ORAWIN95\BIN;f:\msdev\bin;e:\v30\bin.dbg;v:\devt\v30\bin;c:\JavaSDK\Bin;C:\MWW\DLL;
SET INCLUDE=f:\MSDEV\INCLUDE;F:\MSDEV\MFC\INCLUDE
SET LIB=F:\MSDEV\LIB;F:\MSDEV\MFC\LIB
win

------------------------

Now build a file in c:\linux\boot\parms for each Linux config that you have.

For example, my LINDOC3 config is for a docked Thinkpad at runlevel 3 with no
initrd image, and has a parameter file named LINDOC3.PAR in c:\linux\boot\parms:

-----------------------
#   LOADLIN @param_file image=other_image root=/dev/other
#
#	Linux Console in docking station
#
c:\linux\boot\zImage.krn        # First value must be filename of Linux kernel.
root=/dev/hda3                  # device which gets mounted as root FS
ro                              # Other kernel arguments go here.
apm=off
doc=yes
3
-----------------------

The doc=yes parameter is an environment variable used by my init scripts, not
a kernel argument.

However, the apm=off parameter IS a kernel argument!  APM, at least in my setup,
causes the kernel to crash when loaded via loadlin (but NOT when loaded via
LILO). The APM stuff COULD be forced out of the kernel via the kernel compile
options. Instead, I got an unofficial patch to the APM drivers that allows them
to be dynamically deactivated via kernel arguments. Whatever you chose to
document, APM, it seems, MUST be off for setups like mine.

Now make sure C:\MWW\MWCONFIG.REF looks like this:

----------------------
[NativeDOS]
Default=SB1.5
SBInputSource=CD
SYNTH=FM
QSound=OFF
Reverb=OFF
Chorus=OFF
ReverbDepth=5
ChorusDepth=5
SBInputVolume=5
SBMainVolume=10
SBWaveVolume=10
SBSynthVolume=10
WaveTableVolume=10
AudioPowerDriver=ON

[FastCFG]
Show=No
HideOption=Off
-----------------------------

OR the Default= line COULD be

Default=SBPRO

Reboot to Windows 95 and choose Linux. When booted, use sndconfig to configure
the sound modules and voilą - ThinkPad sound with Linux.

Now the gotchas - you can either have CD sound OR Mixers but not both. That's a
problem with the SB1.5 (CD sound) or SBPRO (Mixers) settings. No one knows why
this is!

For some reason MPEG3 files, when played through mpg123, sound like they
are playing at 1/8th speed - not very useful!  If you have ANY insight
on why this second thing might be happening, I would be grateful.

===========================================================
    _/      _/_/_/_/
   _/_/  _/_/     _/
  _/ _/_/ _/_/_/_/      Martin John Bartlett
 _/  _/  _/     _/      (martin@nitram.demon.co.uk)
_/      _/_/_/_/
       _/
_/    _/
 _/_/
===========================================================
