Patch-ID# 110329-02
Keywords: ITU1.3 SUNWos86r sd Platform Support, OS Functionality (Root)
Synopsis: SunOS 5.7_x86: sd patch
Date: Jun/04/2003

Install Requirements: None                      
                      
Solaris Release: 7_x86

SunOS Release: 5.7_x86

Unbundled Product: 

Unbundled Release: 

Xref: 

Topic: 

Relevant Architectures: i386

BugId's fixed with this patch: 4341848 4740582

Changes incorporated in this version: 4740582

Patches accumulated and obsoleted by this patch: 

Patches which conflict with this patch: 

Patches required with this patch: 

Obsoleted by: 

Files included with this patch: 

ITU1.3

Problem Description:

4740582 Panic due to division by zero in sd_get_virtual_geometry
 
	(from 110329-01)
	4341848 "run-time error R6003 - integer divide by 0" when scsi
		bios turned on

Patch Installation Instructions:
--------------------------------
For Solaris 2.0-2.6 releases, refer to the Install.info file and/or
the README within the patch for instructions on using the generic
'installpatch' and 'backoutpatch' scripts provided with each patch.
 
For later Solaris releases, refer to the man pages for instructions on
using 'patchadd' and 'patchrm' scripts provided with Solaris.
Any other special or non-generic installation instructions should be
described below as special instructions.  The following example
installs a patch to a standalone machine:
 
       example# patchadd /var/spool/patch/104945-02
 
The following example removes a patch from a standalone system:
 
       example# patchrm 104945-02
 
For additional examples please see the appropriate man pages.

Special Install Instructions:
-----------------------------
This patch contains Solaris Diskette image files(s), and the instructions
to create Diskettes from these image file(s).
 
Making diskettes from the Solaris Device Configuration Assistant Boot
Diskette and Solaris Driver ITU Diskette(s) from included image file(s).
Solaris Device Configuration Assistant Diskette image files if
included are named with an 'S' prefix. Solaris Driver ITU Diskettes
if included are named for the drivers contained.
 
Note - You must use the dd command to copy the uncompressed images
to diskettes. (You can find a DOS version of the dd command at
ftp.uu.net:/vendor/sun/solaris/x86/dd.exe or by selecting the local
link dd.exe).
 
For each Diskette:
 
1.  Insert a blank diskette into your machine's diskette drive.
    If you are using DOS, type the following to format the diskette:
 
    format A:
 
    If you are using the Solaris(TM) operating environment, type the following
    to format the diskette:
 
    fdformat -Ud
 
2.  Next, if you are using DOS, type:
 
    dd filename A:
 
    If you are using the Solaris(TM) operating environment, type the following
    commands to see if Volume Management is running:
 
    volcheck
    ls -l /vol/dev/aliases/floppy0
 
    * If you see a message similar to this:
 
      lrwxrwxrwx   1 root  34 Jan 21 17:28 /vol/dev/aliases/floppy0 ->
                                    /vol/dev/rdiskette0/unnamed_floppy
 
      type:
 
      dd if=<filename> of=/vol/dev/aliases/floppy0 bs=36k
      eject floppy0
 
    * If you see this message:
 
      /vol/dev/aliases/floppy0 not found
 
      type:
 
      dd if=<filename> of=/dev/rdiskette bs=36k
 
3. Label diskette(s) made from the included Solaris Device
   Configuration Assistant image if any as the Solaris Device Configuration
   Assistant for the appropriate release. Label diskette(s) made from
   Solaris Driver ITU diskettes if any with the ITU Driver image file name.
 
 
 
INSTALLING SOLARIS ITU DISKETTE(S)
 
You can use Solaris ITU diskettes in one of two ways:
 
* To use new drivers to install or upgrade the Solaris operating environment on
  a machine with new hardware
 
* To add new drivers to support new hardware on an already installed and
booted system
 
Installing Solaris Using Solaris ITU Diskette(s)
------------------------------------------------------------
 
Here are the steps to use drivers on the Solaris Driver ITU diskette
to install Solaris (Intel Platform Edition) on a machine. Use the
appropriate Solaris Device Configuration Assistant Diskette made from
the included file (S27DCA0199) as the boot diskette.
 
1.  Insert the Solaris Device Configuration Assistant Diskette into
    your machine's diskette drive. Also insert the Solaris Installation
    CDROM, or for network installation, verify with your system administrator
    that the Solaris Network Installation image is available on your network.
 
2.  Turn on your Machine.
 
3.  When the Solaris Device Configuration Assistant screen is displayed, choose
    the F4 option (on 2.6, this is labelled F4_Driver Update, on Solaris 7,
    F4_Add Driver).
 
    The message Enumerating buses ... is displayed. The Install Driver Update
    screen is then displayed.
 
4.  Remove Solaris Device Configuration Assistant Diskette from the
    diskette drive and insert the first Solaris Driver ITU diskette you
    want.
 
5.  Press F2_Continue.
 
    The Select Solaris System Version screen is displayed.
 
6.  Select the appropriate Solaris OS and press F2_Continue.
 
    The Loading Driver Update Software screen is displayed, along with a
    progress bar that shows the percentage of drivers that have been extracted
    from the diskette. Drivers are read into memory and survive long enough for
    the system to successfully boot to its installation program. When all the
    new drivers on the diskette have been processed, the Continue Driver Update
    Installation screen is displayed.
 
7.  Remove the Solaris Driver ITU diskette from the diskette drive and
    insert the next Solaris Driver ITU diskette you want, if any.
 
8.  Press F2_Continue.
 
    The Loading Driver Update Software screen is displayed, along with a
    progress bar that shows the percentage of drivers that have been extracted
    from the diskette. Drivers are read into memory and survive long enough for
    the system to successfully boot to its installation program. When all the
    new drivers on the diskette have been processed, the Continue Driver Update
    Installation screen is displayed.
 
9.  Repeat Step through Step 8 until all the Solaris Driver ITU
    diskettes you want are installed.
 
10. When all the drivers are processed, remove the Solaris Driver ITU
    diskette from the diskette drive and reinsert the Solaris Device
    Configuration Assistant Diskette.
 
    IMPORTANT: Do not remove the Solaris Device Configuration Assistant
    Diskette from the diskette drive until you see the following message
    displayed in a dialog box:
 
       If you want to bypass the device configuration and
       boot screens when the system reboots, eject the
       Device Configuration Assistant/Boot diskette now.
 
11. Press F2_Continue.
 
    The Solaris Device Configuration Assistant screen is displayed.
 
12. Press F2_Continue.
 
    The "Enumerating buses" message is displayed.
 
    The Scanning Devices screen is then displayed. System devices are
    scanned. When scanning is complete, the Identified Devices screen is
    displayed.
 
13. Press F2_Continue.
 
    The message "Loading driver ..." is displayed followed by messages
    about the drivers that are required to boot your system. After a few
    seconds, the Boot Solaris screen is displayed.
 
14. At the Boot Solaris screen, select the device controller attached to the
    device that contains your install medium.
 
15. Press F2_Continue.
 
    Drivers for the device controller you selected are displayed. Your system
    boots to run the install program. The install program starts and your
    machine begins booting the complete Solaris operating
    environment. Then, after some time, the following messages are displayed,
    prompting you to insert each of the Solaris Driver ITU diskettes required
    to install your machine:
 
       Installing unbundled device driver support
       Extracting driver list from tree..
       <ITU diskette name> driver-name...
 
       Please insert the Driver Update diskette labeled <ITU diskette name>
       Press <ENTER> when ready.
 
16. Remove Solaris Device Configuration Assistant Diskette and
    reinsert the first Solaris Driver ITU diskette you inserted earlier
    into the diskette drive.
 
17. Press Enter.
 
    Packages and/or patches that contain the new drivers are installed from
    the diskette onto your machine. Messages about each installation
    are displayed.
 
    o If drivers on other Solaris Driver ITU diskettes are required for
      your machine, this prompt is displayed:
 
      Please insert the Driver Update diskette labeled <ITU diskette name>
      Press <ENTER> when ready.
 
    o Otherwise, this prompt is displayed:
 
      If you have additional Update diskettes to install
      (such as video), please insert diskette now.
      Additional Update diskettes to install? (y/n) [y]
 
18. If drivers on other Solaris Driver ITU diskettes are required, remove
    the Driver ITU diskette from the diskette drive, insert the next Driver
    ITU diskette you are prompted to insert, press Enter, and repeat until
    all drivers you need are installed.
 
19. Press Enter.
 
    When installation is complete, the message "Installation complete" is
    displayed.
 
20. Remove the diskette from the diskette drive.
 
21. Reboot your machine.
 
    When the Solaris operating environment is finished booting and running, the
    new devices whose drivers you installed are available for use.
 
Adding an ITU diskette to an Existing Solaris System
----------------------------------------------------
 
Before adding new or updated drivers, the newly supported hardware devices
should be installed and configured according to the instructions in the
corresponding Device Reference Page, if any. See Device Reference Manual for
Solaris (Intel Platform Edition).
 
When the Solaris Intel Platform Edition software is already installed, the
simplest way to add new or updated drivers is to install the Driver ITU
diskettes as patches on your system.
 
Follow these steps:
 
1.  Become root.
 
2.  Type the following command to see if the Volume Management software is
    running on the machine you are updating:
 
    ps -ef | grep vold
 
    For more information about managing diskettes and drives, see the System
    Administration Guide.
 
3.  If Volume Management is running, temporarily stop it by typing the
    following command at the system prompt:
 
    # /etc/init.d/volmgt stop
 
4.  Insert the Solaris Driver ITU diskette into the diskette
    drive.
 
5.  Mount the Solaris Driver ITU diskette at the /mnt mount point:
 
    # mount -F pcfs /dev/diskette /mnt
 
    Note - You must mount the Solaris Driver ITU diskette at this point
    in the file structure to update your system successfully.
 
6.  Execute the install script on the diskette, using the appropriate
    Solaris release directory (currently sol_26 for Solaris 2.6,
    sol_27 for Solaris 7, and so on). For example:
 
    # /mnt/DU/sol_27/i86pc/Tools/install.sh -i
 
    The install.sh script searches for all new or updated drivers on the
    diskette. When a new or updated driver is found, the following prompt is
    displayed:
 
    Unconditionally installing ITUs <ITU driver names>
    Install patch driver-name? [y]
 
7.  If the driver is the one you want to install, at the prompt, type y for yes
    or press Enter. If the driver is not the one you want to install, type n
    for no.
 
    If you specify yes, the install.sh script installs the driver you
    indicated as well as bootmod and bootbin patches .
 
8.  When you're done and the install.sh script exits, unmount the diskette:
 
    # cd /
    # umount /mnt
 
9.  Remove the Solaris Driver ITU diskette from the diskette drive.
 
10. Reboot your machine.
 
    # touch /reconfigure
    # reboot
 
11. If you haven't already, turn off your system, add the new hardware,
    and turn on your system again.
 
12. When the autoboot sequence prompt is displayed, quickly press Escape.
 
    The autoboot sequence is interrupted. The Solaris Device Configuration
    Assistant screen is displayed.
 
13. Press F2_Continue.
 
    The message "Enumerating buses ..." is displayed. The Scanning Devices screen
    is then displayed. System devices are scanned. When scanning is complete,
    the Identified Devices screen is displayed.
 
14. Press F2_Continue.
 
    The message "Loading driver com.bef ..." is displayed. The Boot Solaris
    screen is then displayed.
 
15. On the Boot Solaris screen, select the device controller attached to the
    device that contains your install medium, in this case the main system
    disk.
 
    The /etc/bootrc script is displayed.
 
16. At the prompt, type:
 
    b -r
 
    Your machine boots. You can now use your new hardware.
 
KNOWN PROBLEMS AND LIMITATIONS
 
For this fix to work during installation you must either be using a CDROM to
install with or a patched network install image.  The bootable miniroot of
the network install image must have the new sd binary in it so it can be used
during installation.  In that case you will not need the ITU disk during your
installation.  For adding to an existing system, simply follow the normal
installation procedures.
 
The patchadd command has the option "-R client_root_path" which allows you to
install a patch relative to the given directory; for an installserver this
would be something like:
  patchadd -R /export/install/Solaris_8/...
 
For this ITU the patch you would use is 110328-02 and is contained in the
sd.Z file in DU/sol_27/i86pc/Patches on the ITU floppy.  You must first
use uncompress, then rename it to sd.zip and use unzip to expand the
patch before doing the patchadd command.
 
Bug 4341848 has only been a problem with AHA-2940U2B cards from Fujitsu with the
BIOS version 2.20 on them, when used with a GP5-HD9G3B 9GB drive.  Other
drives may also have this problem in combination with this card, but this is
the only known case at this time.  It is a unique problem for this BIOS where
a value in some fields of the FDISK table on the hard drive can cause a
divide by 0.  The new sd allows for fdisk under Solaris to work correctly.
 
CAVEAT
 
None.

README -- Last modified date:  Wednesday, June 4, 2003

