Below described approach seems to be related only to x86/GRUB
systems. Do we have some sort of support for SPARC machines
(already there / planned)?
Thank you,
/j.
On Wed, Jul 09, 2008 at 02:28:43AM -0700, Darren J Moffat wrote:
>
> Template Version: @(#)sac_nextcase 1.66 04/17/08 SMI
> This information is Copyright 2008 Sun Microsystems
> 1. Introduction
> 1.1. Project/Component Working Name:
> ITU construction tools
> 1.2. Name of Document Author/Supplier:
> Author: James McPherson
> 1.3 Date of This Document:
> 09 July, 2008
> 4. Technical Description
>
>
> 1. Introduction
> 1.1. Project/Component Working Name:
>
> Integrate ITU construction tools
>
>
> 1.2. Name of Document Author/Supplier:
>
> James McPherson <[EMAIL PROTECTED]>
>
>
> 1.3. Date of This Document:
>
> 07/02/2008
>
>
> 1.4. Name of Major Document Customer(s)/Consumer(s):
> 1.4.1. The Community you expect to review your project:
>
> ON
>
> 1.4.2. The ARC(s) you expect to review your project:
>
> PSARC - Open.
>
> 1.5. Email Aliases:
> 1.5.2. Responsible Engineer: [EMAIL PROTECTED]
> 1.5.4. Interest List: [email protected]
>
>
>
>
>
> ITU construction tools
> ======================
>
>
> Summary
> -------
>
> The procedure for Solaris Install-Time-Update (ITU) is modfied
> based on the new boot architecture. 3rd party vendors may now
> deliver driver updates via floppy, CD/DVD, or USB storage.
> New tools are provided for modifying Solaris install media
> with new packages and patches. The tools will be available
> for internal users to deliver software updates for hardware
> platforms and for external developers to produce customized
> install media.
>
>
> Background
> ----------
>
> Install-Time-Update (ITU) is the process by which updates to
> Solaris kernel and driver modules are applied upon initial
> installation. The history of ITU support goes back to
> PSARC/1993/580[1]. The original problem was summarized as:
>
> (A) How to boot from a CD through an HBA or CDROM controller
> for which a primary boot driver is not on the Solaris
> boot diskette.
>
> (B) How to install from a CD through an HBA or CDROM controller
> whose driver is not on the Solaris install media.
>
> (C) How to install onto a hard disk through an HBA or
> disk controller whose driver is not on the Solaris
> install media.
>
> (D) How to install drivers that are not integrated into the
> Solaris install media onto the system disk.
>
> (E) How to enable IHVs and OEMs to package solutions to these
> problems without Sun's help.
>
>
> In that proposal[1], a new MDB (Multiple Device Boot) floppy
> disk containing the required drivers was to be delivered to augment
> the kernel on the CD distribution media. A baseline floppy was
> planned for delivery to 3rd party vendors to augment with their
> own drivers.
>
> The proposal was rejected, but used internally by the x86
> consolidation PSARC/1993/674[2]. The x86 consolidation was
> later merged with ON.
>
>
> Then came the rewrite of the x86 boot subsystem in Solaris 2.6[3].
> Subsequently, a public ITU mechanism was approved[4].
>
> An ITU floppy format was defined along with tools for 3rd parties to
> build their own boot floppy. Note that despite the ITU mechanism
> being public, it still does not permit a 3rd party ISV or IHV
> to override kernel components delivered by Sun, although the
> same mechanism is used more liberally internal to Sun.
>
>
>
> ITU under Newboot
> -----------------
>
> The introduction of Solaris Boot Architecture[5] on x86 offers
> an opportunity to modernize the ITU mechanism. By using the open
> source GRUB loader[6], realmode drivers have been eliminated
> from the boot process. A key decision in Newboot is to download
> the entire miniroot in memory (at the expense of raising minimum
> memory requirement to 256 MB), permitting the Solaris kernel to
> start independent of kernel hardware support. In the new architecture,
> problems (A) and (B) in section 1 were solved automatically.
>
> This reduces the public ITU mechanism to a simple matter of adding
> device drivers after the miniroot is up and running. At this point,
> Solaris has access to floppy, CD/DVD, USB media, and possibly network.
> Furthermore, the in-memory root filesystem can be made writable.
> Adding hardware support became a trivial pkgadd (Problem C).
>
> While existing third-party Driver Update diskettes work fine
> under Newboot, the Sun internal use for patching the kernel via
> ITU does not match well with the new boot architecture.
> By the time ITU media is read, core kernel modules have already
> been loaded and cannot be updated.
>
> To allow install to use a patched kernel, we provide new scripts,
> updatemedia(1) and mkbootmedia(1), to customize install media based on
> standard Solaris media and OS patches.
>
>
> New Interfaces
> --------------
>
> The following scripts are proposed for facilitating ITU related tasks.
> Here are the interfaces and a brief description of their usage.
> A more detailed explanation can be found in a Whitepaper[7].
>
>
> ----------------------------------------------------------------------
> Name Commitment Level Comments
> ----------------------------------------------------------------------
> itu Committed wrapper script for ITU tools
> pkg2du Committed convert pkg to ITU/Driver Update
> (DU) format
> updatemedia Committed modify install media
> mkbootmedia Committed bootable ISO image tool
> ----------------------------------------------------------------------
>
>
> The scripts will be installed in SUNWcsu.
>
>
>
>
> pkg2du(1M) and driver updates
> -----------------------------
>
> The pkg2du(1M) command takes one or more driver packages and
> put it in ITU format[4] along with a generic install script
> to be invoked during the Solaris installation process to add
> the packages. ITU is also known to IHVs and ISVs as a Driver
> Update (DU).
>
>
> The following command builds an ISO image of two packages:
>
> # /usr/bin/pkg2du -o du.iso SUNWfoo SUNWbar
>
> The resulting du.iso file can then be burned onto a CD/DVD to be
> used during installation.
>
>
> Updating install media
> ----------------------
>
> The updatemedia(1) should be used to patch OS components and
> to add new packages which are used while booting the install
> miniroot.
>
> The following command modifies Solaris install media rooted
> at "media_root" by adding patch 123456-07 and package SUNWfoo:
>
> # /usr/bin/updatemedia -d media_root 123456-07 SUNWfoo
>
> User may then create an ISO image, media.iso, from media_root:
>
> # /usr/bin/mkbootmedia media_root media.iso
>
> The ISO image can then be burned onto CD/DVD using cdrw(1) or
> cdrecord(1):
>
> # /usr/bin/cdrw -i media.iso
> or
> # /usr/bin/cdrecord media.iso
>
>
> When the updated media is used to install Solaris, the install
> miniroot will already contain patch 123456-07 and SUNWfoo. In addition,
> the patch and the package will be automatically applied to the target OS.
>
> Advanced users and developers may wish to customize the install
> miniroot manually. The root_archive(1M) command (delivered via [5])
> is used for this purpose. The procedure involves unpacking the
> miniroot into filesystem format, making changes, and repacking the
> miniroot, e.g.:
>
>
> # /usr/sbin/root_archive unpackmedia media_root /tmp/miniroot
> # [ modify /tmp/miniroot ]
> # /usr/sbin/root_archive packmedia media_root /tmp/miniroot
>
>
> Manpages
> --------
>
> Please see below for manpages for each of the commands itu(1),
> mkbootmedia(1), pkg2du(1) and updatemedia(1).
>
>
>
>
> References
> ----------
>
> [1] Carl Hensler, PSARC 1993/580 Third Party Driver Boot/Install
> [2] Carl Hensler, PSARC 1993/674 x86 Driver supplement boot/install
> [3] Andy Rudoff, PSARC 1994/201 Solaris x86 Device Configuration
> [4] Tim Haley, PSARC 1997/059 Install-Time Updates
> [5] Shudong Zhou, PSARC 2004/454 Solaris Boot Architecture
> [6] GRand Unified Bootloader (http:/www.gnu.org/software/grub/grub.html)
> [7] Shudong Zhou, Installing Solaris on x86 with Unbundled Drivers and Patches
> (will be made available on opensolaris.org in the ON community area)
>
>
> Tracking CR
> -----------
> 6721696 IHVs need easy ITU creation utilities
>
>
> ========================================================================
>
> NAME
> itu - convert packages to Driver Update format and patch Solaris
> install media for Install Time Update (ITU)
>
> SYNOPSIS
> itu makedu -r solaris_release [-v] [-f] [-d output_dir] [-o iso_file]
> [-l iso_label] package [package ...]
>
> itu updatemedia -R media_root [-v] [-f] [-o iso_file] [-l iso_label]
> pkg_or_patch [pkg_or_patch ...]
>
> itu makeiso -o iso_file [-v] [-f] [-l iso_label] media_root
>
> DESCRIPTION
> itu converts driver packages to Driver Update (DU) format and patches
> a Solaris install media with driver packages and patches for Install
> Time Update (ITU). There are three subcommands to itu: makedu,
> updatemedia
> and makeiso.
>
> Subcommand makedu
>
> The makedu subcommand takes one or more driver packages as input
> and converts them to DU format. At the beginning of an interactive
> Solaris installation session, these driver updates can be applied
> to the running kernel, which will then automatically apply them also
> to the newly installed Solaris at the end of the installation process.
>
> The -r option is required to specify the Solaris release number for
> which the driver updates apply. The <solaris_release> option argument
> takes the form uname -r output, for examples 5.10, 5.11, etc.
>
> If the -d option is specified, the resulting DU directory tree is
> placed in the directory <output_dir>.
>
> If the -o option is specified, a (non-bootable) ISO image of the DU
> directory tree is written in the file <iso_file>. This ISO image can
> be burned onto a CD/DVD using cdrw(1) or cdrecord(1). See the
> Examples section below for an example of creating a DU on a floppy.
>
> At least one of -d and -o option must be specified. If both are
> specified, then both an ISO image and a directory tree are generated.
>
> Subcommand updatemedia
>
> The updatemedia subcommand takes a list of driver packages and patches
> as input and applies them to the miniroot of a Solaris install media.
> It also places them in a subdirectory called ITUs under the Solaris
> install media's top-level directory:
>
> <media_root>/ITUs
>
> When booting a system from the updated media, the patches and packages
> will be part of the booted Solaris image. They will also be applied
> to the target system being installed at the end of the installation
> process.
>
> The -R option must be given on the command line to specify the
> Solaris install media. Note that the install media must necessarily
> be on a location that's writable by itu.
>
> If the -o option is specified, a bootable ISO image of the patched
> install media is also created in the file <iso_file>. The ISO image
> can then be burned onto a CD or DVD.
>
> Subcommand makeiso
>
> The makeiso subcommand runs mkisofs(8) to create a bootable Solaris
> ISO image of the Solaris install media <media_root> and writes it
> to the file <iso_file>. The ISO image file can then be burned onto
> a CD or DVD with utilities such as cdrw(1) or cdrecord(1).
>
> WARNING:
> The Solaris install media <media-root> must contain the file
> /boot/grub/stage2_eltorito, to be written to the media boot sectors.
> This file will be modified with some boot information, thus it
> has to be writable. If necessary, save a copy first prior to
> running this utility.
>
> OPTIONS
> The following options are supported:
>
> -d output_dir
> Directory where the Driver Update directory should be created.
>
> -f
> If output_dir/DU or iso_file already exists, remove it without
> asking first.
>
> -l iso_label
> Label/volume name of the ISO image (if -o option is specified).
>
> -o iso_file
> Path of ISO image file to create. For subcommands updatemedia and
> makeiso it will be a bootable ISO image.
> This option must be specified for subcommand makeiso.
>
> -R media_root
> Top-level directory of on-disk image of Solaris installation media.
> This option must be specified for subcommand updatemedia.
>
> -r solaris_release
> Solaris release number for which the Driver Update is intended.
> It takes the form of 5.10.
> This option must be specified for subcommand makedu.
>
> -v
> Verbose. Multiple -v options increase verbosity."
>
> OPERANDS
> The following operands are supported:
>
> package [package ...]
> One or more driver packages.
>
> pkg_or_patch [pkg_or_patch ...]
> One or more patches and/or packages.
>
> media_root
> The top-level directory of a Solaris install media.
>
> EXAMPLES
> Example 1:
>
> Create a Driver Update CD/DVD containing packages SAMPLEpkg1
> and SAMPLEpkg2
>
> # itu makedu -r 5.10 -o my.iso SAMPLEpkg1 SAMPLEpkg2
> # cdrw -i my.iso
>
> Example 2:
>
> Create a Driver Update floppy containing driver package MYdriver:
>
> # rmformat -F quick /dev/rdiskette
> # mkfs -F pcfs /dev/rdiskette
> # mount -F pcfs /dev/diskette /mnt
> # itu makedu -r 5.10 -d /mnt /export/MYdriver
> # umount /mnt
> # dd if=/dev/rdiskette of=floppy.dd
>
> The itu command above creates the DU directly onto the floppy
> mounted on /mnt. The dd call takes an image of the floppy and
> stores int the file floppy.dd. This is useful for distributing
> driver update floppy in a file form. From the file, the floppy
> can then be recreated as follows:
>
> # dd if=floppy.dd of=/dev/rdiskette
>
> Example 3:
>
> Patch the Solaris install media in /export/s10u1 with patch
> /opt/patches/123456-07 and driver package /opt/pkgs/MYdriver.
> Also create a bootable ISO image with ISO label "MyS10U1" in the
> file /tmp/dvd.iso.
>
> # itu updatemedia -R /export/s10u1 -o /tmp/dvd.iso -l MyS10U1
> /opt/patches/123456-07 /opt/pkgs/MYdriver
>
> Example 4:
>
> Create bootable ISO image mydvd.iso of the Solaris install image
> /export/solaris-10u1 with ISO label "Special-S10".
>
> # itu makeiso -o mydvd.iso -l "Special-S10" /export/solaris-10u1
> # cdrw -i mydvd.iso
>
> SEE ALSO
> cdrecord(1), cdrw(1), patchadd(1m), pkgadd(1m), mkisofs(8)
>
>
> ========================================================================
>
> NAME
> mkbootmedia - create bootable Solaris ISO image
>
> SYNOPSIS
> /usr/bin/mkbootmedia [-v] [-l <label>] <media-root> <iso>
>
>
> DESCRIPTION
> mkbootmedia takes <media-root> (the root of an on-disk Solaris install
> media) as input and creates a bootable Solaris ISO image in the file
> <iso> using mkisofs(8). The file can then be burned onto a CD/DVD with
> utilities such as cdrw(1) or cdrecord(1).
>
> WARNING:
> The directory tree <media-root> must contain the file
> /boot/grub/stage2_eltorito, to be written to the media boot sectors.
> This file will be modified by with some boot information, thus it
> needs to be writable. If necessary, save a copy first prior to
> running this utility.
>
> OPTIONS
> The following options are supported:
>
> -l <label>
> Sets <label> as the label/volume name of the ISO image.
>
> -v
> Verbose. Multiple -v options increase verbosity.
>
> OPERANDS
> The following operands are supported:
>
> <media-root>
> Top-level directory of an on-disk Solaris install media.
>
> <iso>
> Name of the output file which will contain the resulting ISO image.
>
> EXAMPLES
> Example 1: Create an ISO image from the the content of s10u1 and
> burn the image to a CD/DVD.
>
> # /usr/bin/mkbootmedia s10u1 s10u1.iso
> # /usr/bin/cdrw -i s10u1.iso
>
> SEE ALSO
> cdrecord(1), cdrw(1), mkisofs(8)
>
>
> ========================================================================
>
>
> NAME
> updatemedia - modify Solaris media with patches and packages.
>
> SYNOPSIS
> /usr/bin/updatemedia -d <media-root> [-v] [-o <iso>] [-l <label>]
> <pkg_or_patch> [<pkg_or_patch> ...]
>
> DESCRIPTION
> updatemedia takes a list of patches and packages as input and updates
> the install miniroot in <media-root> (the root directory of an on-disk
> image of a Solaris installation media) to include the specified
> patches and packages. These patches and packages are also placed in
> a subdirectory called DU under the Solaris install image, for example:
>
> <media-root>/Solaris_10/DU
>
> When booting a system from the updated media, the patches and packages
> will be part of the booted Solaris image. They will also be applied
> to the target system being installed at the end of the installation
> process.
>
> If -o is specified, a bootable ISO image is created in the file
> <media.iso> containing the Solaris install media. The ISO image can
> then be burned onto a CD/DVD with utilities such as cdrw(1) or
> cdrecord(1).
>
> OPTIONS
> The following options are supported:
>
> -d <media-root>
> Top-level directory of on-disk image of Solaris installation media.
> This is option must be specified.
>
> -o <iso>
> Create a Solaris ISO image of <media-root>.
>
> -l <label>
> Label/volume name of the ISO image (if -o option is specified).
> If unspecified, the name of Solaris directory under <media-root>,
> for instance Solaris_10, will be used.
>
> -v
> Verbose. Multiple -v options increase verbosity.
>
> OPERANDS
> The following operands are supported:
>
> <pkg_or_patch> [<pkg_or_patch> ...]
> One or more patches and/or packages with which the Solaris
> installation media <media-root> will be updated.
>
> EXAMPLES
> Example 1: Update the Solaris install image in s10u1 by adding
> patch 123456-07 and package SUNWfoo.
>
> # /usr/bin/updatemedia -d s10u1 SUNWfoo 123456-07
>
> SEE ALSO
> cdrecord(1), cdrw(1), mkbootmedia(1), mkisofs(8)
>
>
>
> ========================================================================
>
>
> NAME
> pkg2du - convert driver packages to Driver Update (DU) format
>
> SYNOPSIS
> /usr/bin/pkg2du [-f] [-v] [-d <dir>] [-o <iso>] [-l <label>]
> [-r <release>] <pkg> [<pkg> ...]
>
> DESCRIPTION
> pkg2du takes one or more packages as input and converts them to
> Driver Update (DU) format. If the -d option is specified, the
> resulting DU directory tree is placed in the directory <dir>.
> If the -o option is specified, a Solaris ISO image of the
> DU directory tree is written in the file <iso>. The ISO image can
> be burned onto CD/DVD using cdrw(1) or cdrecord(1) and used
> during Solaris installation.
>
> At least one of -d and -o option must be specified. If both are
> specified, then both an ISO image and a directory tree are generated.
>
> OPTIONS
> The following options are supported:
>
> -d <dir>
> Directory where the Driver Update directory should be created.
> -o <iso>
> Create a Solaris ISO image of the Driver Update directory.
> -f
> If <dir>/DU or <iso> exists, remove it without asking first.
> -l <label>
> Label/volume name of the ISO image (if -o option is specified).
> -r <release>
> Solaris release number to use. It takes the form of 5.10.
> If unspecified, the release number of the currently running
> Solaris is used.
> -v
> Verbose. Multiple -v options increase verbosity.
>
> OPERANDS
> The following operands are supported:
>
> <pkg> [<pkg> ...]
> One or more packages to be converted to DU format.
>
> EXAMPLES
> Example 1: create a Driver Update CD/DVD containing packages
> SUNWfoo and SUNWbar.
>
> # /usr/bin/pkg2du -r 5.10 -o my.iso SUNWfoo SUNWbar
> # /usr/bin/cdrw -i my.iso
>
> SEE ALSO
> cdrecord(1), cdrw(1), mkbootmedia(1), mkisofs(8)
>
>
> 6. Resources and Schedule
> 6.4. Steering Committee requested information
> 6.4.1. Consolidation C-team Name:
> ON
> 6.5. ARC review type: FastTrack
> 6.6. ARC Exposure: open
>
/Jan Friedel <jf (at) Sun.com>
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss