11.4 Booting the Point of Service Terminal

IMPORTANT:Before you can boot the Point of Service terminals, you must create an scCashRegister object and its associated objects. For more information, see Creating an scCashRegister Object.

Typically, when you boot a Point of Service terminal, it first tries to boot from CD. If a CD is not available, the terminal attempts a network PXE boot. If the network is not available, it then boots from the hard drive.

NOTE:You can override this order with the BIOS settings.

The first time you boot the Point of Service terminals, the posleases2ldap daemon automatically triggers posldap2crconfig.pl which then creates a Workstation (scWorkstation) object and hardware configuration files for the Point of Service terminals that register on the Branch Server. For more information on this process, see The hwtype.MAC_address File in the Novell Linux Point of Service 9 Administration Guide.

Figure 11-1 provides a simplified overview of the Point of Service boot process for a network PXE boot, a hard disk boot, and a CD boot.

Figure 11-1 Point of Service terminal boot process.

Point of Service boot process

Detailed information of each boot process is provided in the following sections:

11.4.1 Network PXE Boot

To boot Point of Service terminals from the network, the following conditions must be met:

If these conditions are met, the Point of Service terminal can successfully boot from the network.

The following is a detailed description of what takes place when a Point of Service terminal boots from the network:

  1. The Point of Service terminal makes a DHCP request.
  2. The Point of Service terminal downloads pxelinux.0.

    The pxelinux.0 image is the first bootstrap image used to PXE boot the Point of Service terminals.

  3. The Point of Service terminal downloads the linux file.

    The linux file is actually the DiskNetboot-version-date.kernel.version-SLRS image. The Linux image provides the Linux kernel used to PXE boot the Point of Service terminals.

  4. Using PXE network boot or boot manager (GRUB), the Point of Service terminal boots the initrd image (initrd.gz) that it receives from the Branch Server.

    If no PXE boot is possible, the Point of Service terminal tries to boot via hard disk, if one is accessible.

  5. The linuxrc script begins.
  6. The file systems required to receive system data are mounted; for example, the proc file system.
  7. The Point of Service hardware type (hwtype) is detected.

    The Point of Service hardware manufacturer provides a program to do this. The first time the Point of Service terminal boots, this information is used to register the Point of Service terminal and create the terminal’s config.MAC_address file. This information is also used to determine which configuration files the terminal should use.

  8. The Point of Service BIOS version (hwbios) is detected.

    The Point of Service hardware manufacturer provides a program to do this.

  9. Network support is activated. The required kernel module is determined from a static table by selecting the entry corresponding to the hardware type. If no known hardware type is detected, a default list of modules is used and types are tried one after the other.
  10. The module is loaded using modprobe. Any dependencies to other modules are cleared at that time.
  11. The network interface is set up via DHCP.
  12. After the interface has been established, the DHCP variables are exported into the /var/lib/dhcpcd/dhcpcd-eth0.info file and the contents of DOMAIN and DNS are used to generate a /etc/resolv.conf file.
  13. The TFTP server address is acquired.

    During this step, a check is first made to determine whether the hostname tftp.\$DOMAIN can be resolved. If not, the DHCP server is used as the TFTP server.

  14. The Point of Service configuration file, config.MAC_address, is loaded from the Branch Server’s /tftpboot/CR directory over TFTP.

    If this is the Point of Service terminal’s first time booting, the terminal’s config.MAC_address file does not yet exist. The Point of Service terminal must first register on the system.

    A new Point of Service terminal registers as follows:

    1. An optional alias name can be set for the new Point of Service terminal. During the creation of one of the boot images, you can enable the system alias setting using the POSSetAlias feature module. By default, there is no question for the system alias name.
    2. A Point of Service control file (hwtype.MAC_address) is uploaded to the TFTP server’s upload directory: /tftpboot/upload.

      The hwtype.MAC_address file indicates the Point of Service hardware type, the BIOS version, and the Point of Service alias name. The system uses this information to create the terminal’s config.MAC_address file. For more information on this process, see The hwtype.MAC_address File in the Novell Linux Point of Service 9 Administration Guide.

    3. After the upload, the Point of Service terminal renews the DHCP lease (dhcpcd -n).
    4. The Point of Service terminal attempts to load its new config.MAC_address file from the TFTP server.
    5. If the config.MAC_address file is not yet available, the Point of Service terminal waits 60 seconds before repeating steps c and d.
  15. When the config.MAC_address file loads, the system begins an analysis of its contents.

    For more information about the content and file format of the config.MAC_address file, refer to The config.MAC_address File in the Novell Linux Point of Service 9 Administration Guide.

  16. First, the PART line in the config.MAC_address file is analyzed (if there is a PART line).

    A check is made using the image version to see whether any local system needs to be updated.

    • If no system update is required, no image download occurs and the Point of Service terminal boots from the hard drive.
    • If a system update is required, the Point of Service hard disk is partitioned according to the parameters specified in the PART line.
  17. Next, the SYNC line in the Point of Service configuration file is evaluated.

    The file indicated in the SYNC line is downloaded over TFTP. The only value the file contains is the number of seconds to wait (sleep) before the multicast download of the client image starts.

    If the file is not present, the boot process proceeds immediately.

  18. Indicated images are downloaded with multicast TFTP.
  19. If the image is compressed, it is copied then decompressed.
  20. The image checksums are verified.

    If they do not match, the images are re-downloaded.

  21. The CONF line in the Point of Service configuration file is evaluated.

    All the indicated files are loaded from the TFTP server and stored in a /config/ path.

  22. All the user-land processes based on the boot image (dhcpcd -k) are terminated.
  23. The client image is mounted.
  24. The configuration files stored in the /config/ path are copied to the mounted client image.
  25. If this is a new image, Image Install Notification occurs.
    1. The bootversion.MAC_Address file is created in /tftpboot/upload.
    2. posleases2ldap transfers the information to the scNotifiedimage attribute in the scWorkstation object in LDAP.
  26. The system switches to the mounted client image.
  27. The root file system is converted to the client image using pivot_root.

    All the required configuration files are now present because they had been stored in the client image or have been downloaded via TFTP.

    The file systems that are mounted read-only can be stored in cramfs-compressed RAM file systems to save Point of Service RAM resources.

  28. The boot image is unmounted using an exec umount call.
  29. When linuxrc or the exec call terminates, the kernel initiates the init process, which starts processing the boot scripts as specified in /etc/inittab.

11.4.2 CDBoot

If you are unable to electronically distribute Point of Service images over your network, you must manually distribute the images uses CDBoot images. For more information on creating a CDBoot image, see Building a CDBoot Image in the Novell Linux Point of Service 9 Administration Guide

Depending on the client image that resides on the boot CD (Minimal, Java, Browser, or Desktop), you should note the following restrictions:

  • The Point of Service terminal needs to be upgraded with enough RAM to hold the client image.
  • On diskless Point of Service terminals, there must be enough available RAM to load the first and second stage boot images. Otherwise, the terminal returns a kernel panic error.

    NOTE:Keep in mind that onboard VGA reduces the Point of Service terminal’s available RAM.

The behavior of Point of Service terminals booting from CD is similar to Point of Service terminals that receive the first and second stage boot images over the LAN from a Branch Server. The following is a general description of what takes place when a Point of Service terminal boots from CD:

  1. The client image (for example, the Browser image) is installed to a RAM or hard disk drive on the Point of Service terminal.

    The partition information resides in the config.image file located on the CD. For more information, see The config.image File in the Novell Linux Point of Service 9 Administration Guide.

  2. The installed client image is booted from the RAM or hard disk drive on the Point of Service terminal.