Introduction

You may need to modify your HP-UX 11i kernel in some way, such as changing a kernel parameter, and then rebuild your kernel. You may need to create a new HP-UX kernel in order to add device drivers or subsystems, to tune the kernel to get improved performance, to alter configurable parameters, or to change the dump and swap devices. If you update or modify a dynamic element of your kernel, as shown in the example in this chapter, a reboot is not required. Updating or modifying a static element requires a reboot and may also require some additional steps.

With HP-UX 11i it is not necessary to rebuild your kernel for all changes that take place to it. In 11i, there are many Dynamically Tunable Kernel Parameters and Dynamically Loadable Kernel Modules that will modify your kernel but not require a reboot. Combined with many Dynamic Patches that are available in 11i, you will need to reboot your system less often. We'll cover the following two topics in this chapter:

  • Manually build an HP-UX kernel - In the next section, we'll modify a Dynamically Tunable Kernel Parameter, thereby modifying the kernel, and do not have to reboot the system in order for the change to take place. We'll then make a change to the kernel and fully rebuild it so you can see the process of a complete rebuild, including a reboot. In this chapter, I discuss various commands related to kernel generation and cover the process by which you would manually create a kernel.

  • Use kcweb to view, modify, and monitor the kernel - kcweb is a new Web-based kernel just becoming available at the time of this writing. Many such Web-based tools are planned for HP-UX, so we'll work with kcweb to perform many kernel-related functions.

Building a Kernel

New with 11i (first introduced in 11.0) was the introduction of dynamically loadable kernel modules. In 11.x, the infrastructure for this feature was put into place, providing a separate system file for each module. With 11.0 is provided the ability of specially created modules to be loaded or unloaded into the kernel without having to reboot the system as long as the module is not being used. HP-UX 11i continues to support all of this dynamic functionality. This new mechanism provides great flexibility and improved system uptime. Detailed information about this advanced feature can be reviewed in the HP-UX 11.x Release Notes. Most of the dynamically loadable kernel modules available at the time of this writing are third party. The IT Resource Center Web site (itrc.hp.com) contains information on this topic, including a developer's guide.

To begin, let's take a look at an existing kernel running on an HP-UX 11i L-Class system used in many of the examples throughout this book. The sysdef command is used to analyze and report tunable parameters of a currently running system. You can specify a particular file to analyze if you don't wish to use the currently running system. The following is a partial listing of having run sysdef on an 11i L-Class system:

# /usr/sbin/sysdef
NAME                      VALUE       BOOT        MIN-MAX        UNITS   FLAGS
acctresume                    4          -       -100-100                -
acctsuspend                   2          -       -100-100                -
allocate_fs_swapmap           0          -           -                   -
bufpages                  32074          -          0-           Pages   -
create_fastlinks              0          -           -                   -
dbc_max_pct                  50          -           -                   -
dbc_min_pct                   5          -           -                   -
default_disk_ir               0          -           -                   -
dskless_node                  0          -          0-1                  -
eisa_io_estimate            768          -           -                   -
eqmemsize                    23          -           -                   -
file_pad                     10          -          0-                   -
fs_async                      0          -          0-1                  -
hpux_aes_override             0          -           -                   -
maxdsiz                       2          -          0-655360     Pages   -
maxdsiz_64bit             16384          -        256-1048576    Pages   -
maxfiles                     60          -         30-2048               -
maxfiles_lim               1024          -         30-2048               -
maxssiz                   65536          -          0-655360     Pages   -
maxssiz_64bit            262144          -        256-1048576    Pages   -
maxswapchunks               512          -          1-16384              -
maxtsiz                    2048          -          0-655360     Pages   -
maxtsiz_64bit              2048          -        256-1048576    Pages   -
maxuprc                      75          -          3-                   -
maxvgs                       10          -           -                   -
msgmap                  2555904          -          3-                   -
nbuf                      18720          -          0-                   -
ncallout                    515          -          6-                   -
ncdnode                     150          -           -                   -
ndilbuffers                  30          -          1-                   -
netisr_priority              -1          -         -1-127                -
netmemmax                     0          -           -                   -
nfile                       920          -         14-                   -
nflocks                     200          -          2-                   -
ninode                      476          -         14-                   -
no_lvm_disks                  0          -           -                   -
nproc                       400          -         10-                   -
npty                         60          -          1-                   -
nstrpty                      60          -           -                   -
nswapdev                     10          -          1-25                 -
nswapfs                      10          -          1-25                 -
public_shlibs                 1          -           -                   -
remote_nfs_swap               0          -           -                   -
rtsched_numpri               32          -           -                   -
sema                          0          -          0-1                  -
semmap                  4128768          -          4-                   -
shmem                         0          -          0-1                  -
shmmni                      200          -          3-1024               -
streampipes                   0          -          0-                   -
swapmem_on                    1          -           -                   -
swchunk                    2048          -       2048-16384      kBytes  -
timeslice                    10          -         -1-2147483648 Ticks   -
unlockable_mem             1800          -          0-           Pages   -
#

In addition to the tunable parameters, you may want to see a report of all the hardware found on your system. The ioscan command does this for you. Using sysdef and ioscan, you can see what your tunable parameters are set to and what hardware exists on your system. You will then know how your system is set up and can then make changes to your kernel. The following is an ioscan output of the same HP-UX 11i L-Class system for which sysdef was run:

# /usr/sbin/ioscan -f
Class       I  H/W Path     Driver    S/W State   H/W Type     Description
===========================================================================
root        0               root      CLAIMED     BUS_NEXUS
ioa         0  0            sba       CLAIMED     BUS_NEXUS    System Bus Adapter (582)
ba         0  0/0          lba      CLAIMED     BUS_NEXUS    Local PCI Bus Adapter (782)
lan         0  0/0/0/0      btlan    CLAIMED     INTERFACE     HP PCI 10/100Base-TX Core
ext_bus      0  0/0/1/0      c720     CLAIMED     INTERFACE      SCSI C896 Fast Wide LVD
target       0  0/0/1/0.7    tgt      CLAIMED     DEVICE
ctl          0  0/0/1/0.7.0  sctl     CLAIMED     DEVICE         Initiator
ext_bus      1  0/0/1/1      c720     CLAIMED     INTERFACE
                                                     SCSI C896 Ultra Wide Single-Ended
target       1  0/0/1/1.2    tgt      CLAIMED     DEVICE
disk         1  0/0/1/1.2.0  sdisk    CLAIMED     DEVICE       SEAGATE ST318203LC
target       2  0/0/1/1.7    tgt      CLAIMED     DEVICE
ctl          1  0/0/1/1.7.0  sctl     CLAIMED     DEVICE       Initiator
ext_bus      2  0/0/2/0      c720     CLAIMED     INTERFACE    SCSI C875 Ultra
Wide Single-Ended
target      3  0/0/2/0.2    tgt       CLAIMED     DEVICE
disk        2  0/0/2/0.2.0  sdisk     CLAIMED     DEVICE       SEAGATE ST318203LC
target      4  0/0/2/0.7    tgt       CLAIMED     DEVICE
ctl         2  0/0/2/0.7.0  sctl      CLAIMED     DEVICE       Initiator
ext_bus     3  0/0/2/1      c720      CLAIMED     INTERFACE
                                                     SCSI C875 Ultra Wide Single-Ended
target      5  0/0/2/1.4    tgt       CLAIMED     DEVICE
disk        3  0/0/2/1.4.0  sdisk    CLAIMED     DEVICE       TOSHIBA CD-ROM XM-6201TA
target      6  0/0/2/1.7    tgt       CLAIMED     DEVICE
ctl         3  0/0/2/1.7.0  sctl      CLAIMED     DEVICE       Initiator
tty         0  0/0/4/0      asio0     CLAIMED     INTERFACE    PCI Serial (103c1048)
tty         1  0/0/5/0      asio0     CLAIMED     INTERFACE    PCI Serial (103c1048)
ba         1  0/1         lba      CLAIMED     BUS_NEXUS   Local PCI Bus Adapter (782)
ba         2  0/2         lba      CLAIMED     BUS_NEXUS   Local PCI Bus Adapter (782)
ba         3  0/3         lba      CLAIMED     BUS_NEXUS   Local PCI Bus Adapter (782)
lan         1  0/3/0/0      btlan     CLAIMED     INTERFACE
                                              HP A5230A/B5509BA PCI 10/100Base-TX Addon
ba         4  0/4         lba      CLAIMED     BUS_NEXUS   Local PCI Bus Adapter (782)
ext_bus     4  0/4/0/0      c720      CLAIMED     INTERFACE
                                                           C875 Fast Wide Differential
target      7  0/4/0/0.7    tgt       CLAIMED     DEVICE
ctl         4  0/4/0/0.7.0  sctl      CLAIMED     DEVICE       Initiator
ext_bus     5  0/4/0/1      c720      CLAIMED     INTERFACE    SCSI C875 Fast
Wide Differential
target      8  0/4/0/1.7    tgt       CLAIMED     DEVICE
ctl         5  0/4/0/1.7.0  sctl      CLAIMED     DEVICE       Initiator
ba         5  0/5         lba      CLAIMED     BUS_NEXUS   Local PCI Bus Adapter (782)
ba         6  0/6         lba      CLAIMED     BUS_NEXUS   Local PCI Bus Adapter (782)
ba         7  0/7         lba      CLAIMED     BUS_NEXUS   Local PCI Bus Adapter (782)
ext_bus     6  0/7/0/0      c720      CLAIMED     INTERFACE
                                                      SCSI C875 Fast Wide Differential
target      9  0/7/0/0.7    tgt       CLAIMED     DEVICE
ctl         6  0/7/0/0.7.0  sctl      CLAIMED     DEVICE       Initiator
ext_bus     7  0/7/0/1      c720      CLAIMED     INTERFACE
                                                      SCSI C875 Fast Wide Differential
target     10  0/7/0/1.7    tgt       CLAIMED     DEVICE
ctl         7  0/7/0/1.7.0  sctl      CLAIMED     DEVICE       Initiator
memory      0  8            memory    CLAIMED     MEMORY       Memory
processor   0  160          processor CLAIMED     PROCESSOR    Processor
processor   1  166          processor CLAIMED     PROCESSOR    Processor
#

I normally run ioscan with the -f option because it includes the Driver, S/W State, and H/W Type columns. I am interested in the driver associated with the hardware in the system that the -f option produces.

The ioscan output shows all of the hardware that comprises the system, including the two processors in the system.

The file /stand/vmunix is the currently running kernel. Here is a long listing of the directory /stand on the L-Class system, which shows the file /stand/vmunix:

# ls -l
total 74274
-rw-r--r--   1 root    sys         19 Aug  4 11:37 bootconf
drwxr-xr-x   4 root    sys       2048 Aug 25 11:24 build
drwxr-xr-x   5 root    sys       1024 Aug 24 13:00 dlkm
drwxr-xr-x   5 root    sys       1024 Aug  4 12:45 dlkm.vmunix.prev
-rw-r--r--   1 root    sys       3024 Aug  4 12:26 ioconfig
-r--r--r--   1 root    sys         82 Aug  4 12:27 kernrel
drwxr-xr-x   2 root    sys       1024 Aug 29 11:39 krs
drwxr-xr-x   2 root    root      1024 Aug 29 11:33 krs_lkg
drwxr-xr-x   2 root    root      1024 Aug 29 11:39 krs_tmp
drwxr-xr-x   2 root    root      8192 Aug  4 11:36 lost+found
-rw-------   1 root    root        12 Aug 29 11:33 rootconf
-rw-rw-rw-   1 root    sys       1180 Aug 24 12:52 system
-r--r--r--   1 root    sys       1026 Aug  4 12:21 system.prev
-rwxr-xr-x   1 root    sys   14774416 Aug 24 12:53 vmunix
-rwxr-xr-x   1 root    sys   23184584 Aug  4 12:22 vmunix.prev
#

Notice that among the directories shown are two related to Dynamically Loadable Kernel Modules (DLKM). These are kernel modules that can be included in the kernel without having to reboot the system.

In order to make a change to the kernel, we would change to the /stand/build directory, where all work in creating a new kernel is performed, and issue the system_prep command as shown below:

# cd /stand/build
# /usr/lbin/sysadm/system_prep  -s  system
						

We can now proceed to make the desired changes to the kernel, including adding a driver or subsystem such as cdfs for a CD-ROM file system. With the dynamically loadable kernel module (DLKM) structure in place with 11i, we must use kmsystem and kmtune to make changes to the kernel system and system description files.

You can use kmtune to view the value and parameters related to existing kernel parameters as well as to make proposed modifications to the kernel. The following listing shows issuing kmtune (without the -l option to view details) to view a summary of the currently running kernel:

# kmtune

Parameter             Current Dyn Planned                    Module     Version
===============================================================================
NSTRBLKSCHED                -  -  2
NSTREVENT                  50  -  50
NSTRPUSH                   16  -  16
NSTRSCHED                   0  -  0
STRCTLSZ                 1024  -  1024
STRMSGSZ                65535  -  65535
acctresume                  4  -  4
acctsuspend                 2  -  2
aio_listio_max            256  -  256
aio_max_ops              2048  -  2048
aio_physmem_pct            10  -  10
aio_prio_delta_max         20  -  20
allocate_fs_swapmap         0  -  0
alwaysdump                  1  -  1
bootspinlocks               -  -  256
bufcache_hash_locks       128  -  128
bufpages                    0  -  0
chanq_hash_locks          256  -  256
create_fastlinks            0  -  0
dbc_max_pct                50  -  50
dbc_min_pct                 5  -  5
default_disk_ir             0  -  0
desfree                     -  -  0
disksort_seconds            0  -  0
dnlc_hash_locks           512  -  512
dontdump                    0  -  0
dskless_node                -  -  0
dst                         1  -  1
effective_maxpid            -  -  ((NPROC<22500)?30000:(NPROC*5/4))
eisa_io_estimate            -  -  0x300
enable_idds                 0  -  0
eqmemsize                  15  -  15
executable_stack            1  -  1
fcp_large_config            0  -  0
file_pad                    -  -  10
fs_async                    0  -  0
ftable_hash_locks          64  -  64
hdlpreg_hash_locks        128  -  128
hfs_max_ra_blocks           8  -  8
hfs_max_revra_blocks        8  -  8
hfs_ra_per_disk            64  -  64
hfs_revra_per_disk         64  -  64
hp_hfs_mtra_enabled         1  -  1
hpux_aes_override           -  -  0
initmodmax                 50  -  50
io_ports_hash_locks        64  -  64
iomemsize                   -  -  40000
ksi_alloc_max            2208  -  2208
ksi_send_max               32  -  32
lotsfree                    -  -  0
max_async_ports            50  -  50
max_fcp_reqs              512  -  512
max_mem_window              0  -  0
max_thread_proc            64  -  64
maxdsiz            0x10000000  -  0x10000000
maxdsiz_64bit      0x40000000  -  0X40000000
maxfiles                   60  -  60
maxfiles_lim             1024  Y  1024
maxqueuetime                -  -  0
maxssiz              0x800000  -  0X800000
maxssiz_64bit        0x800000  -  0X800000
maxswapchunks             512  -  512
maxtsiz             0x4000000  Y  0X4000000
maxtsiz_64bit      0x40000000  Y  0x40000000
maxuprc                    77  Y  77
maxusers                   32  -  32
maxvgs                     10  -  10
mesg                        1  -  1
minfree                     -  -  0
modstrmax                 500  -  500
msgmap                     42  -  42
msgmax                   8192  Y  8192
msgmnb                  16384  Y  16384
msgmni                     50  -  50
msgseg                   2048  -  2048
msgssz                      8  -  8
msgtql                     40  -  40
nbuf                        0  -  0
ncallout                  515  -  515
ncdnode                   150  -  150
nclist                    612  -  612
ncsize                   5596  -  5596
ndilbuffers                30  -  30
netisr_priority             -  -  -1
netmemmax                   -  -  0
nfile                     910  -  910
nflocks                   200  -  200
nhtbl_scale                 0  -  0
ninode                    476  -  476
nkthread                  499  -  499
nni                         -  -  2
no_lvm_disks                0  -  0
nproc                     400  -  500
npty                       60  -  60
nstrpty                    60  -  60
nstrtel                    60  -  60
nswapdev                   10  -  10
nswapfs                    10  -  10
nsysmap                   800  -  800
nsysmap64                 800  -  800
num_tachyon_adapters        0  -  0
o_sync_is_o_dsync           0  -  0
page_text_to_local          -  -  0
pfdat_hash_locks          128  -  128
public_shlibs               1  -  1
region_hash_locks         128  -  128
remote_nfs_swap             0  -  0
rtsched_numpri             32  -  32
scroll_lines              100  -  100
scsi_maxphys          1048576  -  1048576
sema                        1  -  1
semaem                  16384  -  16384
semmap                     66  -  66
semmni                     64  -  64
semmns                    128  -  128
semmnu                     30  -  30
semume                     10  -  10
semvmx                  32767  -  32767
sendfile_max                0  -  0
shmem                       1  -  1
shmmax              0x4000000  Y  0X4000000
shmmni                    200  -  200
shmseg                    120  Y  120
st_ats_enabled              1  -  1
st_fail_overruns            0  -  0
st_large_recs               0  -  0
streampipes                 0  -  0
swapmem_on                  1  -  1
swchunk                  2048  -  2048
sysv_hash_locks           128  -  128
tcphashsz                   0  -  0
timeslice                  10  -  10
timezone                  420  -  420
unlockable_mem              0  -  0
vas_hash_locks            128  -  128
vnode_cd_hash_locks       128  -  128
vnode_hash_locks          128  -  128
vps_ceiling                16  -  16
vps_chatr_ceiling     1048576  -  1048576
vps_pagesize                4  -  4
vx_fancyra_enable           0  -  0
vx_maxlink              32767  -  32767
vx_ncsize                1024  -  1024
vxfs_max_ra_kbytes       1024  -  1024
vxfs_ra_per_disk         1024  -  1024
#

Issuing kmtune with the -l option produces a detailed listing of the kernel. The following shows just the output for one of the parameters:

# kmtune -l
Parameter:     maxuprc
Current:       77
Planned:       77
Default:       75
Minimum:       -
Module:        -
Version:       -
Dynamic:       Yes
#

This parameter is Dynamic (Yes) meaning that the kernel can be dynamically updated. After having viewed this output we can now modify the value of this dynamic parameter. The following command changes the value of the following parameter from 77, which is the existing value, to 80:

# kmtune -s maxuprc=80
#

We can now issue the kmtune to again view the existing and proposed value of the maxuprc parameter:

# kmtune
Parameter             Current Dyn Planned                    Module     Version
===============================================================================
NSTRBLKSCHED                -  -  2
NSTREVENT                  50  -  50
NSTRPUSH                   16  -  16
NSTRSCHED                   0  -  0
STRCTLSZ                 1024  -  1024
STRMSGSZ                65535  -  65535
acctresume                  4  -  4
acctsuspend                 2  -  2
aio_listio_max            256  -  256
aio_max_ops              2048  -  2048
aio_physmem_pct            10  -  10
aio_prio_delta_max         20  -  20
allocate_fs_swapmap         0  -  0
alwaysdump                  1  -  1
bootspinlocks               -  -  256
bufcache_hash_locks       128  -  128
bufpages                    0  -  0
chanq_hash_locks          256  -  256
create_fastlinks            0  -  0
dbc_max_pct                50  -  50
dbc_min_pct                 5  -  5
default_disk_ir             0  -  0
desfree                     -  -  0
disksort_seconds            0  -  0
dnlc_hash_locks           512  -  512
dontdump                    0  -  0
dskless_node                -  -  0
dst                         1  -  1
effective_maxpid            -  -  ((NPROC<22500)?30000:(NPROC*5/4))
eisa_io_estimate            -  -  0x300
enable_idds                 0  -  0
eqmemsize                  15  -  15
executable_stack            1  -  1
fcp_large_config            0  -  0
file_pad                    -  -  10
fs_async                    0  -  0
ftable_hash_locks          64  -  64
hdlpreg_hash_locks        128  -  128
hfs_max_ra_blocks           8  -  8
hfs_max_revra_blocks        8  -  8
hfs_ra_per_disk            64  -  64
hfs_revra_per_disk         64  -  64
hp_hfs_mtra_enabled         1  -  1
hpux_aes_override           -  -  0
initmodmax                 50  -  50
io_ports_hash_locks        64  -  64
iomemsize                   -  -  40000
ksi_alloc_max            2208  -  2208
ksi_send_max               32  -  32
lotsfree                    -  -  0
max_async_ports            50  -  50
max_fcp_reqs              512  -  512
max_mem_window              0  -  0
max_thread_proc            64  -  64
maxdsiz            0x10000000  -  0x10000000
maxdsiz_64bit      0x40000000  -  0X40000000
maxfiles                   60  -  60
maxfiles_lim             1024  Y  1200
maxqueuetime                -  -  0
maxssiz              0x800000  -  0X800000
maxssiz_64bit        0x800000  -  0X800000
maxswapchunks             512  -  512
maxtsiz             0x4000000  Y  0X4000000
maxtsiz_64bit      0x40000000  Y  0X40000000
maxuprc                    77  Y  80
maxusers                   32  -  32
maxvgs                     10  -  10
mesg                        1  -  1
minfree                     -  -  0
modstrmax                 500  -  500
msgmap                     42  -  42
msgmax                   8192  Y  8192
msgmnb                  16384  Y  16384
msgmni                     50  -  50
msgseg                   2048  -  2048
msgssz                      8  -  8
msgtql                     40  -  40
nbuf                        0  -  0
ncallout                  515  -  515
ncdnode                   150  -  150
nclist                    612  -  612
ncsize                   5596  -  5596
ndilbuffers                30  -  30
netisr_priority             -  -  -1
netmemmax                   -  -  0
nfile                     910  -  910
nflocks                   200  -  200
nhtbl_scale                 0  -  0
ninode                    476  -  476
nkthread                  499  -  499
nni                         -  -  2
no_lvm_disks                0  -  0
nproc                     400  -  400
npty                       60  -  60
nstrpty                    60  -  60
nstrtel                    60  -  60
nswapdev                   10  -  10
nswapfs                    10  -  10
nsysmap                   800  -  800
nsysmap64                 800  -  800
num_tachyon_adapters        0  -  0
o_sync_is_o_dsync           0  -  0
page_text_to_local          -  -  0
pfdat_hash_locks          128  -  128
public_shlibs               1  -  1
region_hash_locks         128  -  128
remote_nfs_swap             0  -  0
rtsched_numpri             32  -  32
scroll_lines              100  -  100
scsi_maxphys          1048576  -  1048576
sema                        1  -  1
semaem                  16384  -  16384
semmap                     66  -  66
semmni                     64  -  64
semmns                    128  -  128
semmnu                     30  -  30
semume                     10  -  10
semvmx                  32767  -  32767
sendfile_max                0  -  0
shmem                       1  -  1
shmmax              0x4000000  Y  0X4000000
shmmni                    200  -  200
shmseg                    120  Y  120
st_ats_enabled              1  -  1
st_fail_overruns            0  -  0
st_large_recs               0  -  0
streampipes                 0  -  0
swapmem_on                  1  -  1
swchunk                  2048  -  2048
sysv_hash_locks           128  -  128
tcphashsz                   0  -  0
timeslice                  10  -  10
timezone                  420  -  420
unlockable_mem              0  -  0
vas_hash_locks            128  -  128
vnode_cd_hash_locks       128  -  128
vnode_hash_locks          128  -  128
vps_ceiling                16  -  16
vps_chatr_ceiling     1048576  -  1048576
vps_pagesize                4  -  4
vx_fancyra_enable           0  -  0
vx_maxlink              32767  -  32767
vx_ncsize                1024  -  1024
vxfs_max_ra_kbytes       1024  -  1024
vxfs_ra_per_disk         1024  -  1024
#

This output shows that the change to our parameter is pending.

We can apply the change to the dynamic parameter maxuprc from 77 to 80 by issuing kmtune with the -u option:

# kmtune -u
The kernel's value of maxuprc has been set to 80 (0x50).
#

This output shows that the change we wanted made to the kernel has been made. We can confirm this by running kmtune again and searching for maxuprc:

# kmtune | grep maxuprc
maxuprc                    80  Y  80
#

Both the Current and Planned values have been updated to 80. This dynamic update can be done using kmsystem to add dynamic drivers to your kernel.

There are many other procedures for which you would have to perform additional steps to include modifications in the kernel and rebuild it. With these non-dynamic changes you would create a new kernel, which will be generated as /stand/build/vmunix_test, using the command shown below:

# mk_kernel -s system
Compiling conf.c...
Loading the kernel...
Generating kernel symbol table...
#

At this point, the new kernel exists in the /stand/build directory. The existing kernel is updated with the newly generated kernel with kmupdate. kmupdate moves the new kernel files into the /stand directory. I would first recommend moving the existing /stand/system kernel file to a backup file, and then updating the new kernel as shown below:

# mv /stand/system /stand/system.prev    (may want to move additional
# kmupdate /stand/build/vmunix_test      files shown in Figure 4-1)

  Kernel update request is scheduled.

  Default kernel /stand/vmunix will be updated by
  newly built kernel /stand/build/vmunix_test
  at next system shutdown or startup time.
#

kmupdate will automatically create backup copies of /stand/vmunix and /stand/dlkm for you. These will be created as /stand/vmunix.prev and /stand/dlkm.vmunix.prev, respectively.

You can now shut down the system and automatically boot from the new kernel if your update did not take place dynamically and requires a reboot.

Figure 4-1 summarizes the process of building a new kernel in HP-UX 11i.

Figure 4-1. Creating a Kernel in HP-UX 11i


There are really two different procedures for generating your kernel - one for dynamic elements, such as the parameter maxuprc shown in the earlier example, and one for static elements. The static procedure consists of several additional steps and a reboot. With HP-UX 11i, more and more kernel objects will be updated dynamically, resulting in fewer reboots when modifying your kernel.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.119.132.123