doconfig - Builds the kernel described by system configuration files
/usr/sbin/doconfig [-s | -b] [-a | -m] [-c config_file] [-d -n] [-e
The /usr/sbin/doconfig program supports the following options:
-a Specifies a noninteractive kernel build phase that enables all (manda-
tory and optional) kernel options automatically. The -a option creates
a new system configuration file in /sys/conf/SYSTEM_NAME unless you
also specify the -c option, in which case the configuration file uses
the existing /sys/conf/SYSTEM_NAME. If you specify the -c option with a
specific configuration file name along with the -a option, the kernel
is built with the kernel options already included in the configuration
file; you will not be prompted to edit the configuration file.
You cannot use this option with the -m option which provides a nonin-
teractive kernel build phase that enables mandatory kernel options
-b Specifies that you want to build a bootstrap linked kernel. A
bootstrap linked kernel is built directly into memory, without writing
an executable file to disk. To create the kernel, the bootstrap pro-
gram reads a text file that describes the hardware and software support
needed in the kernel.
You cannot use this option with the -s option, which builds an execut-
able image file called /vmunix. The -b option has no effect if speci-
fied with the -d option.
Specifies that you want to build a kernel using the existing configura-
tion file, config_file. The configuration file resides in the
/usr/sys/conf directory and is usually named using the system name, in
uppercase letters. You must supply the name of the existing configura-
tion file without specifying the pathname.
The /usr/sbin/doconfig program also uses any existing config_file.list
file. If there is no config_file.list file and a .product.list file
exists, /usr/sbin/doconfig copies the .product.list file to the
config_file.list file. These files must exist in the /sys/conf direc-
-d Specifies that only device special files are created.
Specifies that you want to run the specified ed editor script on the
configuration file before a new kernel is built.
-m Specifies a noninteractive kernel build phase that enables mandatory
kernel options automatically. The -m option creates a new system confi-
guration file in /sys/conf/SYSTEM_NAME unless you also specify the -c
option, in which case the configuration file uses the existing
/sys/conf/SYSTEM_NAME. If you include the -c option with a specific
configuration file name along with the -m option, the kernel is built
with the kernel options already included in the configuration file; you
will not be prompted to edit the configuration file.
You cannot use this option with the -a option which provides a nonin-
teractive kernel build phase that enables all (mandatory and optional)
-n Builds a network-bootable kernel for Dataless Management Services (DMS)
clients. The -n option invokes the pmerge utility, which builds a
stripped network-bootable kernel called .vmunix. This option is used
by the dataless management utility, dmu during its configuration phase.
For more information, refer to the dmu(8) and pmerge(8) reference
-s Specifies that you want to build a statically linked kernel. A stati-
cally linked kernel is a traditional kernel, built and stored in an
executable image file called /vmunix. This option is the default if you
omit the -b and -s options.
You cannot use this option with the -b option, which builds a bootstrap
linked kernel, or the -d option. This option has no effect when speci-
fied with the -n option.
The /usr/sbin/doconfig program builds a new kernel, optionally allowing you
to edit the configuration file before the new kernel is built. You might
need to build a new kernel when you:
+ Add or remove hardware from your system
+ Add or remove kernel subsystems from the kernel
+ Tune the performance of your operating system
Depending on how you modify the system, you might be able to make the
modification without rebuilding the kernel. In this case, you use dynamic
configuration commands, such as the sysconfig command, to modify the sys-
tem. For information that helps you decide whether to use dynamic confi-
guration commands or rebuild the kernel by using the /usr/sbin/doconfig
program, refer to the System Administration guide. For more information
about the sysconfig command, refer to the sysconfig(8) reference page.
If you need to rebuild the kernel by using the /usr/sbin/doconfig program,
you usually use a text editor to modify the system configuration file
(/usr/sys/conf/config_file), the /usr/sys/conf/param.c file or the layered
products configuration file (/usr/sys/conf/config_file.list). For informa-
tion about the contents of these files, refer to the System Administration
guide and the System Configuration and Tuning guide.
After you modify the necessary files, run the /usr/sbin/doconfig program
and use the -c option.
For example, suppose you need to build a new kernel for a system named
MYSYS. You edit the target configuration file, the param.c file, or the
layered products configuration file and make some changes.
You then follow these steps to rebuild your kernel:
1. Log in as root or become the superuser and set your default directory
to the /usr/sys/conf directory.
2. Save a copy of the running kernel. If possible, save the file in the
root (/) directory, as follows:
# cp /vmunix /vmunix.save
If there are disk space constraints, you can save the kernel file in a
file system other than root. For example:
# cp /vmunix /usr/vmunix.save
Be aware that you cannot boot your system from a kernel in any
directory other than the root directory. If you do not have a boot-
able kernel such as genvmunix in the root directory, and the new
vmunix kernel is not bootable, you will have to boot the system from
the distribution media to get your system to the UNIX shell. Then
follow the procedures in the Installation Guide to mount the
appropriate file systems and copy the saved vmunix to the root
3. Run the /usr/sbin/doconfig program as follows:
# /usr/sbin/doconfig -c MYSYS
*** KERNEL CONFIGURATION AND BUILD PROCEDURE ***
Saving /usr/sys/conf/MYSYS as /usr/sys/conf/MYSYS.bck
4. Answer the following prompt to indicate whether or not you want to
edit the configuration file:
Do you want to edit the configuration file? (y/n) [n]:
If you modified the configuration file before you started this pro-
cedure, answer this prompt no.
If you choose to edit the configuration file, the /usr/sbin/doconfig
program invokes the editor specified by the EDITOR environment vari-
After you finish editing the configuration file, the
/usr/sbin/doconfig program builds a new kernel.
When the /usr/sbin/doconfig program finishes, it displays a message
showing the full pathname of the new vmunix kernel.
5. If you built a statically linked kernel with the -s option which is
the default, copy the new vmunix kernel (from the message noted above)
to /vmunix as follows:
# cp /usr/sys/MYSYS/vmunix /vmunix
If you used the -n option, you must copy .vmunix as well.
If you built a bootstrap linked kernel using the -b option, follow the
instructions displayed by the doconfig program to copy the built
modules and new /etc/sysconfigtab file into place.
6. Reboot the system as follows:
# /usr/sbin/shutdown -r now
If the new vmunix kernel fails to boot, you can recover by booting the
vmunix.save file that you created at the beginning of this procedure:
If you copied and saved the vmunix kernel to a directory other than
the root directory, and your system does not have a bootable kernel
such as genvmunix in the root directory, you will have to boot the
system from the distribution media to get your system to the UNIX
shell. Then follow the procedures in the Installation Guide to mount
the appropriate file systems and copy the saved vmunix to the root
1. Check all local file systems using the fsck command with the -p option
# fsck -p
2. Write-enable the root file system using the mount command with the -u
option as follows:
# mount -u /
3. If necessary, mount the file system where the /vmunix.save file is
stored. For example, if you copied the /vmunix file to the /usr
filesystem, issue the following command:
# mount /usr
4. Restore the saved copy. For example, if you saved your running kernel
in the /vmunix.save file, issue the following command:
# cp /vmunix.save /vmunix
If you saved your runnning kernel to the /usr/vmunix.save file, issue
the following command:
# cp /usr/vmunix.save /vmunix
5. Shutdown and reboot the system, as follows:
# shutdown -r now
After your system boots, you can re-edit the configuration file and try to
build the new kernel again by using the /usr/sbin/doconfig command.
For other examples of using the /usr/sbin/doconfig command to build a new
kernel, refer to the System Administration guide.
Specifies the system configuration file, where config_file is usually
the name of the system converted to uppercase letters. For example, on
a system named mysys, the configuration file is named MYSYS.
Specifies the optional configuration file that is used by kernel lay-
ered products to extend the system configuration file. You can modify
this file to remove kernel layered product entries by deleting or put-
ting a comment character (#) in front of specific entries.
Specifies the optional configuration file that is used by kernel lay-
ered products to register their configuration file requirements. This
file is used as the basis for the config_file.list file and should not
Specifies the name of the newly-built text file describing the kernel.
Specifies the name of modules for a bootstrap linked kernel.
Specifies the name of the newly-built static kernel.
Specifies the name of the network-bootable kernel for DMS clients.
Commands: config(8), dmu(8), pmerge(8)
Sharing Software on a Local Area Network