| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 	How to try to survive an IBM Mwave under Linux SB drivers | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | +	IBM have now released documentation of sorts and Torsten is busy | 
					
						
							|  |  |  | 	trying to make the Mwave work. This is not however a trivial task. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ---------------------------------------------------------------------------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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 | 
					
						
							| 
									
										
										
										
											2007-05-09 08:50:42 +02:00
										 |  |  | the sound modules and voilà - ThinkPad sound with Linux. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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) | 
					
						
							|  |  |  | _/      _/_/_/_/ | 
					
						
							|  |  |  |        _/ | 
					
						
							|  |  |  | _/    _/ | 
					
						
							|  |  |  |  _/_/ | 
					
						
							|  |  |  | =========================================================== |