CID README for ThinkPad Drivers / Utilities (Updated 3/14/97)

*** 1.0 Introduction

This readme file describes how to perform CID (Configuration,
Installation, Distribution) install of the ThinkPad drivers and
utilities for OS/2 Warp. Information in this readme file is intended
for system administrators who manage a large number of ThinkPad
systems. The instructions pertain to all ThinkPads for which the
subject driver is applicable.

*** 2.0 OS/2 Warp Installation Considerations

For general CID installation instruction on OS/2 Warp, refer to file
README.CID on OS/2 Warp installation diskette.

Some ThinkPads require OS/2 video driver patches included in OS/2 Warp
Video Fix diskette that comes with these systems. Refer to your
ThinkPad User's Guide to determine if your ThinkPad requires the Video
Fix diskette. If that is the case, apply the patches after the first
part of OS/2 installation is completed (before the boot from the
harddisk) by running VGAFIX.CMD on the Video Fix diskette. Depending on
the version of the Video Fix diskette, you may need to modify VGAFIX.CMD
to comment out line 6 (change 'a:' to 'rem a:'), if you run VGAFIX from
a copy of the Video Fix diskette on the code server.

The ThinkPad System Management Driver on the ThinkPad Utility Diskette
for OS/2 must be installed by using the OS/2 DDINSTAL program as part
of OS/2 Warp CID install process. The installation profile (.DDP) is
found on the Utility Diskette for OS/2.

When you use a PCMCIA LAN adapter card such as the IBM Token Ring
PCMCIA adapter to CID install the operating system, the appropriate
PCMCIA Socket Services / Card Services drivers must be added to
the CID boot diskette. The Socket Services driver was traditionally
named ibm2ss01.sys, however this is no longer always true. Recent
ThinkPad models with a CardBus compatible PCMCIA controller (such as
the 760E series) require use of a different set of Socket Services
drivers (ibm2ss14.sys and ibm2ss04.sys; the file names of the PCMCIA
drivers and CONFIG.SYS statements are documented in the appendix of the
User's Guide.) It is recommended to do an attended install first, using
the PCMCIA drivers diskettes supplied with the ThinkPad, verify that
the PCMCIA LAN adapter works, then copy to the CID install diskette the
PCMCIA driver files and CONFIG.SYS statements that the install added.

*** 3.0 ThinkPad Features

The ThinkPad Features installation program on the ThinkPad Utility
Diskette for OS/2, INSTALL2.EXE, supports use of a response file and
command line parameters as follows:

   INSTALL2 /S:<sourcedir> /R:<filename> /L1:<errorlog> /L2:<history>

where:

   <sourcedir> is the fully qualified drive and path specification of
   the directory where the contents of ThinkPad Utilities Diskette for
   OS/2 have been copied by using XCOPY /S.

   <filename> specifies the response file filename, which must have
   an extension of .RSP (not specified on the command line) and must be
   in the <sourcedir> directory. The format of the response file is:

   TARGET = <destdir>
   THINKPADUTIL = <Yes | No>
   PERSONAL = <Yes | No>

   where;
   <destdir> is the fully quallified drive and path specification of
   the directory to which the ThinkPad Features are installed.
   The PERSONAL keyword allows you to specify whether to install the
   Personalization Editor (PERSONAL=Yes) or not (PERSONAL=No).
   Likewise the THINKPADUTIL keyword specifies whether to install the
   rest of the ThinkPad utilities (ThinkPad Features/Setup, Fuel Gauge).
   At least one of the keyword values must be set to Yes.

   <errorlog> is the drive, path and filename of the error log file.
   The log file will be created in the <sourcedir> directory if
   necessary. Default filename is UTILINST.ERR.

   <history> is the drive, path and filename of the history log file.
   The log file will be created in the <sourcedir> directory.
   Default filename is UTILINST.HST.

Example:
--------
To install the ThinkPad Features except for Personalization Editor from
a directory X:\CID\UTILDISK on the code server (where X: is the code
server as seen from the client) to C:\THINKPAD on the client, create
directory X:\CID\UTILDISK on the code server and copy contents of the
ThinkPad Features diskettes to the directory by using XCOPY /S, then
edit the sample file X:\CID\UTILDISK\INSTALL2.RSP so that it has the
following lines:

       TARGET = C:\THINKPAD
       THINKPADUTIL = Yes
       PERSONAL = No

Then run the following on the client system locally from an OS/2
command line or remotely from a distribution manager:

   X:\CID\UTILDISK\INSTALL2 /S:X:\CID\UTILDISK /R:INSTALL2

Return code:
------------
INSTALL2.EXE always returns zero if installation is successful. If
there is an error, it returns 1604 hex (CID Unexpected Error). The error
conditions include:

   - Unable to read from the response file, create the target directory,
     or folder, not enough disk space.
   - No features to install (both THINKPADUTIL and PERSONAL are set to
     No in the response file).

The error will be logged in the error log file with a text record
indicating the error code 1604 and a timestamp.

Notes:
------
The installation program will run in attended mode if no command line
parameters are specified.

*** 3.1 Installing ThinkPad Features for Windows from Win-OS2

The Windows version of ThinkPad Features can be installed from a
Win-OS2 session by using the installation program INSTALLW.EXE on the
ThinkPad Utility diskette for Windows. The installation program must be
invoked through Windows/Win-OS2 program manager, PROGMAN.EXE, in order
to create the ThinkPad folders and icons. The command line syntax is as
follows:

   <progman_dir>PROGMAN <sourcedir>INSTALLW.EXE
              /S:<sourcedir> /R:<filename> /L1:<errorlog> /L2:<history>
where:

   <progman_dir> is the drive and path of the directory where PROGMAN.EXE
   is. For Warp with Win-OS2, it is normally x:\OS2\MDOS\WINOS2 where
   x: is the OS/2 boot drive. For Warp for Windows (without Win-OS2) it
   is typically C:\WINDOWS.

   <sourcedir> is the fully qualified drive and path specification of
   the directory where the ThinkPad Utility diskette for Windows has been
   copied by using XCOPY /S.

   <filename> specifies the response file, which must have an extension
   of .RSP (not specified on the command line) and must be in the
   <sourcedir> directory. The format of the response file is:

   TARGET = <destdir>
   THINKPADUTIL = <Yes | No>
   PERSONAL = <Yes | No>
   WINDOWEXIT = <Yes | No>

   The keywords TARGET, THINKPADUTIL, and PERSONAL are the same as
   the OS/2 version. The keyword WINDOWEXIT causes Windows or Win-OS2
   to close, and must be set to Yes for installation from a Win-OS2
   session.

   <errorlog> and <history> are the same as in the OS/2 version.

*** 4.0 PCMCIA Drivers

The installation program for the ThinkPad PCMCIA drivers for OS/2,
PCMINST2.EXE, supports use of a response file and command line
parameters as follows:

   PCMINST2 /S:<sourcedir> /R:<filename> /L1:<errorlog> /L2:<history>

where:

   <sourcedir> is the fully qualified drive and path specification of
   the directory where the ThinkPad PCMCIA Drivers disks have been
   copied.

   <filename> specifies the response file filename. By default PCMINST2
   looks in the <sourcedir> directory for the response file. Specify a
   fully qualified filename beginning with a drive letter, if the
   response file is located elsewhere. The response file must have an
   .RSP (not specified on the command line).

   If you specify the parameter /R: without a filename, the default
   response file PCMINST2.RSP in the <sourcedir> directory will be used.
   The following keyword statements are supported in the response file:

     Target=<destdir>
     #<comment>
     *<comment>
     ReBoot=<Yes | No>
     UpdateConfig=<Yes | No>
     ForceReplace=<Yes | No>

   Only the Target statememt is mandatory.

   - <destdir> in the Target statement specifies the target directory
     where the files are installed on the client system.
   - Any line that has '#' or '*' as the first character is treated as
     comment and is ignored.
   - The ReBoot keyword is for use with OS/2 2.1 only. With OS/2 2.1
     if a previous version of the PCMCIA drivers is on the system
     the installation program must remove the existing drivers first
     and reboot. The keyword ReBoot=Yes ensures this. This is not
     required for OS/2 Warp and later.
     The default value is No.
   - The UpdateConfig keyword specifies if the configuration files such
     as CONFIG.SYS are to be modified (Yes) or not (No). The default
     value is Yes.
   - The ForceReplace keyword specifies whether any existing PCMCIA
     drivers should be replaced even if the existing ones are newer (Yes)
     or abort installation if a newer copy is found (No). The default
     value is Yes.

   <errorlog> is the drive, path and filename of the error log file.
   The log file defaults to PCMINST2.ERR in the <sourcedir> directory.

   <history> is the drive, path and filename of the history log file.
   The history log defaults to PCMINST2.HST in the <sourcedir>
   directory.

Return code:
------------
   0        : Installation successful.
   0800 hex : Data resource not found. Cannot find list file PCMINST2.DAT
              or one of the files listed in PCMINST2.DAT.
   0812 hex : Data path not found. Invalid source or target directory.
   1208 hex : Not enough disk space.
   1600 hex : Incorrect program version. This version of the PCMCIA
              driver does not support this ThinkPad model.
   1604 hex : Unexpected conditions such as unable to deregister a
              previously installed PCMCIA object class.
   FF00 hex : Request reboot. Requests the software distribution manager
              (if present) after destroying and deregistering the
              previously installed PCMCIA object class. Returned only
              when ReBoot=Yes is specified in the response file.

Notes:
------
   The installation program will run in attended mode if no command
   line parameters are specified.

*** 5.0 MWave

The installation program for the ThinkPad MWave drivers for OS/2,
SETUP.EXE (found on disk 1 of the Mwave Drivers for OS/2), supports use
of a response file and command line parameters as follows:

   <sourcedir>SETUP <respfiledir> CID.LST

where:

   <sourcedir> is the fully qualified path of the directory where the
   contents of Mwave OS/2 diskettes have been copied to.

   <respfiledir> is the fully qualified path to the CID.LST file.

Refer to the readme file on disk 1 of the OS/2 Mwave Drivers
installation diskettes for details.

Note: If no command line parameters are specified, the installation
program will run in attended mode.

*** 6.0 Audio drivers

ESS AudioDrive and Mwave audio drivers for OS/2 are installed by using
the standard OS/2 multimedia installation program, MINSTALL, which has
been CID enabled since OS/2 Warp 3.0. Refer to OS/2 CID instructions in
file README.CID on OS/2 Warp installation diskette for details.

*** 7.0 Infrared

The REXX procedure attached at the end of this file supports command
line parameters for unattended installation as follows:

  IRINST <sourcedir> <targetdir> <bootdrive>

where:

  <sourcedir> is the fully qualified path to the directory where the
  contents of the IR drivers disk has been copied.

  <targetdir> is the fully qualified path to the Win-OS2 directory on the
  client system.

  <bootdrive> is the drive letter of the client system's OS/2 boot drive.

*** 8.0 Enhanced Video and MPEG

These OS/2 drivers are installed by using the standard OS/2 multimedia
installation program, MINSTALL, which has been CID enabled since OS/2
Warp 3.0. Refer to OS/2 CID instructions in file README.CID on OS/2
Warp installation diskette for details.

*** 9.0 IDE CDROM

The OS/2 driver for the internal CDROM comes standard with OS/2 since
OS/2 Warp 3.0. Refer to OS/2 CID instructions in file README.CID on OS/2
Warp installation diskette for details.

*** 10.0 Video

The OS/2 video driver installation program INSTALL.EXE supports use of
a response file and command line parameters as follows:

   INSTALL /S:<sourcedir> /T:<targetdrive> /R:<respfile> /L:<logfile> /U

where:
   <sourcedir> is the fully qualified path to the directory where the
   contents of the OS/2 video drivers disk has been copied.

   <targetdrive> is the drive letter of the client system's OS/2 boot
   drive.

   <respfile> specifies the response file.
   <logfile> specifies the log file.

   The response file supports four keywords: 'MachineID', 'Resolution',
   'ColorDepth', and 'RefreshRate'. 'MachineID' specifies the name of
   the client system for logging purpose. 'Resolution' specifies the
   screen resolution: 640x480, 800x600, 1024x768. 'ColorDepth'
   specifies the number of bits in a pixel; 4, 8, 16, or 24.
   'RefreshRate' specifies the refresh rate for an external display;
   56, 60, 75, 213 (85i = 85 + 128).

   A sample response file might look like the following:
   (Do not add spaces between parameters)

   MachineID=This machine
   Resolution=640X480
   ColorDepth=8
   RefreshRate=60

   This will set up the video driver for 640x480 at 256 colors, 60Hz
   refresh rate.

The last command line parameter '/U' must be present to enable the
unattended mode of operation.

*** Appendix: REXX Utility for IR drivers installation (IRINST.CMD)

/* */
trace off
call RxFuncAdd 'SysFileTree','Rexxutil','SysFileTree'
call RxFuncAdd 'SysFileDelete','Rexxutil','SysFileDelete'
parse upper arg source target os2 .

if source='' | source='?' then exit 255
if target='' then exit 255

if right(source, 1) <> '\' then source =source||'\'
if right(target, 1) <> '\' then target =target||'\'

if os2<>'' then configsys=left(os2,1)||':\CONFIG.SYS'
systemini=target||'SYSTEM.INI'
null=' > NUL'

file = 'IBMIR.DLL    '; work = source||file target||file||null; 'COPY' work
file = 'IBMIR2.DLL   '; work = source||file target||file||null; 'COPY' work
file = 'IBMIR.386    '; work = source||file target||file||null; 'COPY' work
file = 'IBMIR.INI    '; work = source||file target||file||null; 'COPY' work
file = 'IBMIRVDD.SYS '; work = source||file target||file||null; 'COPY' work

/* SYSTEM.INI */
if stream(systemini,'c','QUERY EXISTS') = '' then exit 1
backup=target||'SYSTEM.IR'
'COPY' systemini backup '>NUL'

call UpdateFile systemini,'DEVICE','IBMIR.386','device=ibmir.386','[386ENH]'
if rc <> 0 then exit rc

if os2 = '' then exit

if stream(configsys,'c','QUERY EXISTS') = '' then exit 1
backup=target||'CONFIG.IR'
'COPY' configsys backup '>NUL'

vddspec='DEVICE='||target||'IBMIRVDD.SYS'
call UpdateFile configsys,'DEVICE=','IBMIRVDD.SYS',vddspec,''
if rc <> 0 then exit rc

exit

/*----------------------------------------------------------------------------*/
UpdateFile:
parse arg filename,header,trailer,statement,section

call stream filename,'c','open'
i=0
do forever
  if \(lines(filename)) then leave
  i=i+1
  record.i=linein(filename)
end
linecount=i
call stream filename,'c','close'

if SysFileDelete(filename)<> 0 then return 1

done=0
call stream filename,'c','open'

do i=1 to linecount
  parse upper value record.i with cmd parms
  if left(cmd,LENGTH(header))<>header | right(cmd,LENGTH(trailer))<>trailer then
      call lineout filename,record.i
  if (section <> '') then
    do
      parse upper value record.i with work .
      if work = section then
        do
          call lineout filename, statement
          done=1
        end
    end
end

if \done then call lineout filename,statement
call stream filename,'c','close'

return rc