3.6 Booting the Point of Service Terminal

IMPORTANT:You must create scCashRegister and its associated objects before you can boot the Point of Service terminals. For more information, see Section 6.4.1, Adding an scCashRegister Object.

Typically, when you boot a Point of Service terminal, it will first try 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. (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 object (scWorkstation) and hardware configuration files for the Point of Service terminals that register on the Branch Server. For more information on this process, see Section 3.5.3, The hwtype.MAC_address File.

Figure 3-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 3-1 Point of Service terminal boot process

Point of Service boot process

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

3.6.1 Network PXE Boot

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

  • The terminal must have a network connection to the Branch Server.
  • The TFTP service must be properly configured and running on the Branch Server.

    For more information on Branch Server configuration, see Setting Up a Branch Server in the Novell Linux Point of Service 9 Installation Guide.

  • The terminal must have an associated scCashRegister object in the LDAP directory.

    For more information, see Section 6.4, Defining Point of Service Terminal Objects.

  • The Point of Service boot images must be located in the /tftpboot/boot/ directory on the Branch Server and the client images must be located in the /tftpboot/image/ directory.

    For more information, see Section 8.5, Distributing Images .

  • The Point of Service client images must have an associated scPosImage object in the LDAP directory and the object’s scPosImageVersion attribute must be set to Active.

    For more information, see Section 6.5, Managing Image Objects.

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, which 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 (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 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 an /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, its 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 Section 3.5.3, The hwtype.MAC_address File.

    3. After the upload, the Point of Service terminal renews the DHCP lease file (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 Section 3.5.1, The config.MAC_address File.

  16. The PART line in the config.MAC_address file is analyzed.

    If there is a PART line in the configuration file, 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 terminal’s hard disk is partitioned according to the parameters specified in the PART line.
  17. The SYNC line in the Point of Service configuration file is evaluated.

    If there is a SYNC line, the indicated file 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 immediately proceeds.

  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.

3.6.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 ImageSection 10.1, Building a CDBoot Image.

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.

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

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

  • The Java and Browser images should only be used for diskful Point of Service systems. Otherwise, the Point of Service system must be upgraded with enough RAM to hold the client image.
  • There must be enough available RAM on diskless Point of Service terminals 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.