Delivering Bootable Device DriversDelivering a Bootable Device Driver Package and DU DisketteAs noted before, all software products developed for the Solaris operating environment are delivered as software packages. Software packages can be delivered in several different archived formats (see the pkgadd(1M) and pkgtrans(1M) man pages for more information). For device drivers, kernel modules, and other software that is not required at system boot, and for support of new hardwired devices, this format is sufficient. Packages can be provided on the IHV web site, as part of a CD-ROM, or through any convenient distribution mechanism (such as email). Using this methodology, the basic package generated by pkg_drv(1M) can be distributed directly. The Solaris on x86 platforms has a DU diskette format that improves on this method by allowing new bootable device drivers to overlay the Solaris install media, and to be used during the install or upgrade process. DU diskettes are MS-DOS formatted diskettes and can be distributed as image files. The diskette images created by pkg_drv(1M) can be used or copied, for example:
The DU diskette image can also be distributed through whatever distribution medium is desired. Sample DU Diskette InstructionsThe following is a sample README file that can be distributed with the DU diskette image, to clarify how the DU diskette image can be copied to diskette and used. DU Diskette Installation InstructionsThis area contains the Solaris diskette image files(s) and the instructions to create diskettes from these image file(s). Making Diskettes From the Solaris Configuration Assistant Boot Diskette and Solaris Driver DU Diskette(s) From Included Image File(s)Configuration Assistant diskette image files, if included, are named with an 'S' prefix. Solaris Driver Update diskettes, if included, are prefixed with "DU" or driver name(s). 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 and type one of the following commands to format it:
2. Check to see if Volume Management is running:
3. Label the diskette(s). Label diskette(s) made from the included Configuration Assistant image, if any, as "Configuration Assistant for the appropriate release." Label diskette(s) made from Solaris DU diskettes, if any, with the DU driver image file name. Installing Solaris DU Diskette(s)You can use Solaris DU diskettes in one of two ways:
Installing Solaris Using DU Diskette(s)To install the Solaris OS on x86 platforms using drivers on the DU diskette: 1. Insert the appropriate Configuration Assistant diskette, made from the included file (S27DCA0199) into your machine's diskette drive. Also, insert the Solaris Installation CD-ROM, or for network installation, verify with your system administrator that the Solaris network installation image is available on your network. 2. Turn your machine on. 3. When the 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. Then the Install Driver Update screen is displayed. 4. Remove the Configuration Assistant diskette from the diskette drive and insert the first Solaris DU 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 DU diskette from the diskette drive and insert the next DU diskette you want, if any. 8. Press F2_Continue. Again, 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 Steps 7 and 8 until all the DU diskettes you want are installed. 10. When all the drivers are processed, remove the DU diskette from the diskette drive and reinsert the Configuration Assistant diskette. IMPORTANT: Do not remove the Configuration Assistant diskette from the diskette drive until you see the following message displayed in a dialog box: 11. Press F2_Continue. The Solaris Device Configuration Assistant screen is displayed. 12. Press F2_Continue. The message "Enumerating buses ..." is displayed. Then the Scanning Devices screen is 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 DU diskettes required to install your machine:
16. Remove the Configuration Assistant diskette and reinsert the first DU diskette you inserted earlier into the diskette drive. 17. Press Enter. Packages, patches, or both that contain the new drivers are installed from the diskette onto your machine. Messages about each installation are displayed.
18. If drivers on other DU diskettes are required, remove the DU diskette from the diskette drive, insert the next DU 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 a DU Diskette to an Existing Solaris SystemBefore 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 the Solaris on x86 Platforms Device Configuration Guide. When the software for the Solaris on x86 platforms is already installed, the simplest way to add new or updated drivers is to install the DU diskettes as patches on your system, as follows: 1. Become superuser on your system. 2. Check to see if Volume Management is running on the machine you are updating:
For more information about managing diskettes and drives, see the System Administration Guide. 3. If Volume Management is running, temporarily stop it by typing: 4. Insert the DU diskette into the diskette drive. 5. Mount the DU diskette at the /mnt mount point:
Note: At this point, you must mount the DU diskette 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: 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:
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 type y, the install.sh script installs the driver you indicated as well as the bootmod and bootbin patches. 8. When you're done and the install.sh script exits, unmount the diskette:
9. Remove the DU diskette from the diskette drive. 10. Reboot your machine.
11. If you haven't already, turn your system off, add the new hardware, and then turn your system on again. 12. When the autoboot sequence prompt is displayed, quickly press Escape. The autoboot sequence is interrupted. The 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:
Your machine boots. You can now use your new hardware. Managing Subsequent Versions of the DU DisketteSubsequent releases of software for the Solaris operating environment can be made available by versioning the software package (see the -v option of the pkgmk(1M) command for more information). Each version of the package installs as a separate package instance, allowing the software to be updated as needed. The pkg_drv(1M) command provides a -V option to control the setting of the version of the basic package it generates. Note: It is best if the software, as well as the package, contain version numbers that can be identified easily both on a running Solaris system and from a Solaris system crashdump (see the savecore(1M)) command); be sure to use the '!' format character to print kernel device driver version information into the system buffer (see cmn_err(9f)). Also create a version string in the driver binary that can be located after a system crash. The Solaris DU mechanism automatically includes a timestamp variable (see the pstamp variable in driver.itu(4)) that is used to choose the latest version of DU diskettes processed at system boot time. This ensures that if a bootable device driver appears several times on a set of DU diskettes, the latest version is used. Note: If you edit the driver.itu(4) file manually, ensure that the pstamp time stamp is incremented, so the Configuration Assistant can choose the latest version of a diskette. SummaryThe pkg_drv(1M) (and the Sun internal pkg_drv2patch(1M)) utility provides a way to develop, test, and deliver new bootable device drivers for the Solaris OS on x86 platforms. Arbitrarily complex software packages can also be delivered, using the override options to supply custom-built packages. For more details on the DU diskette format for the Solaris OS x86 platforms, see the related man pages or References. [Previous] [Contents] [Next][Return to Driver Tools]Solaris OS on x86 Platforms: Third-Party Packaging Tools (A White Paper) | |||
|
| ||||||||||||