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 H P-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

graphics/04fig01.jpg

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.



HP-UX 11i Systems Administration Handbook and Toolkit
HP-UX 11i Systems Administration Handbook and Toolkit (2nd Edition)
ISBN: 0131018833
EAN: 2147483647
Year: 2003
Pages: 301

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net