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= of=/vol/dev/aliases/floppy0 bs=36k eject floppy0 * If you see this message: /vol/dev/aliases/floppy0 not found type: dd if= 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.. driver-name... Please insert the Driver Update diskette labeled Press 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 Press 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 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