Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
Applies to SUSE Linux Enterprise Point of Service 11 SP3 and SUSE Linux Enterprise Point of Service 12 Image Server

6 Booting Point of Service Terminals

Point of Service terminals are the end point in the SUSE® Linux Enterprise Point of Service architecture. They provide customer service functions or bank teller workstations.

For booting special images (for example for BIOS update), see Section 7.3, “Booting Special Images on Terminals”.

6.1 Conditions to Add a Point of Service Terminal

The process of adding a Point of Service terminal to a SUSE Linux Enterprise Point of Service system consists of these four steps:

  1. The POS machine connected to the Branch Server is started and downloads the boot image.

  2. The POS machine uploads the hwtype.MAC.HASH file (for example hwtype.00:11:25:A7:D6:0D) into the /srv/tftpboot/upload directory.

  3. The posleases2ldap command uses this file and the information in the LDAP database to create the config.MAC file (for example config.00:11:25:A7:D6:0D) in the /srv/tftpboot/KIWI directory.

  4. The POS machine uses the information in the config.MAC file to load the correct image and boot up.

The third step is the most important part of this process. The following conditions must be met to complete it successfully:

  • The hwtype.MAC.HASH file must be in the /srv/tftpboot/upload directory.

    Note
    Note: Configuration Without an External DHCP Server

    If no external DHCP server is used, the terminal must get the IP address from the DHCP server on the Branch Server (its MAC address must be listed in the /var/lib/dhcp/db/dhcpd.leases file).

    This occurs when the system was set by posInitBranchserver with EXT_DHCP=FALSE in the LDAP database under scLocation corresponding to this Branch Server.

  • The correct image file and its checksum file must be located on the Branch Server in the /srv/tftpboot/image directory. These files must be downloaded from the Administration Server in advance. For more information, see Section 5.3, “Distributing Images to the Branch Server”.

    Example 6.1: Example Image and Checksum Files
    /srv/tftpboot/image/myGraphical_test.i686-3.1.4
    /srv/tftpboot/image/myGraphical_test.i686-3.1.4.md5
  • An associated object representing the used image file must exist in the LDAP database.

    Image objects are typically located in the global container under the default scDisributionContainer. To add the image to the default scDisributionContainer use these commands:

    posAdmin --base cn=default,cn=global,o=myorg,c=us
    --add --scPosImage --cn myGraphical
    --scImageName myTestGraphical
    --scDhcpOptionsRemote /boot/pxelinux.0 --scDhcpOptionsLocal LOCALBOOT
    --scImageFile myGraphical_test.i686
    --scBsize 8192
    
    posAdmin --base cn=myGraphical,cn=default,cn=global,o=myorg,c=us
    --add --scImageVersion --scDisabled FALSE --scVersion 3.4.2

    However, each set of system images built against a specific Linux kernel and initrd must have their own corresponding scDistributionContainer object in the LDAP database. Therefore, if you are adding a system image built against a new Linux kernel version or initrd, it is necessary to create the corresponding scDisributionContainer object.

  • An associated object representing the cash register must exist in the LDAP database. This scCashRegister object can either represent a specific machine or a generic machine. The generic object is used if a specific image is not found for the given machine. In both cases, the scCashRegister must have a hardware subobject like scRamDisk or scHarddisk, which specifies where and how the image should be deployed.

    The name of a machine is located in the uploaded hwtype.MAC.HASH file under the HWTYPE entry.

    To add a scCashRegister object for a specific machine (with HWTYPE=cshr4152) use the command:

    posAdmin --base cn=global,o=myorg,c=us --add --scCashRegister --cn cr-test --scCashRegisterName cshr4152 --scPosImageDn cn=myGraphical,cn=default,cn=global,o=myorg,c=us

    Note the scCashRegisterName name and image reference in --scPosImageDn).

    When deploying to a hard disk (detected on terminal as /dev/sda device) of this specific machine, use these commands:

    posAdmin --base cn=cshr4152,cn=global,o=myorg,c=us
    --add --scHarddisk --cn sda --scDevice /dev/sda --scHdSize 9000
    
    posAdmin --base cn=sda,cn=cshr4152,cn=global,o=myorg,c=us
    --add --scPartition --scPartNum 0 --scPartType 82 --scPartMount x --scPartSize 1000
    
    posAdmin --base cn=sda,cn=cshr4152,cn=global,o=myorg,c=us
    --add --scPartition --scPartNum 1 --scPartType 83 --scPartMount '/' --scPartSize 7000

    When deploying to a RAM disk of this specific machine, use this command:

    posAdmin --base cn= cshr4152,cn=global,o=myorg,c=us --add --scRamDisk --cn ram --scDevice /dev/ram1

    To add a scCashRegister object for a generic machine use this command:

    posAdmin --base cn=global,o=myorg,c=us --add --scCashRegister --cn cr-test-default --scCashRegisterName default --scPosImageDn cn=myGraphical,cn=default,cn=global,o=myorg,c=us

    (Note the scCashRegisterName name.)

    When deploying to a hard disk of a generic machine, use these commands:

    posAdmin --base cn=cr-test-default,cn=global,o=myorg,c=us
    --add --scHarddisk --cn sda --scDevice /dev/sda --scHdSize 9000
    
    posAdmin --base cn=sda,cn=cr-test-default,cn=global,o=myorg,c=us
    --add --scPartition --scPartNum 0 --scPartType 82 --scPartMount x --scPartSize 1000
    
    posAdmin --base cn=sda,cn=cr-test-default,cn=global,o=myorg,c=us
    --add --scPartition --scPartNum 1 --scPartType 83 --scPartMount '/' --scPartSize 7000

    When deploying to a RAM disk of the generic machine, use this command:

    posAdmin --base cn= cr-test-default,cn=global,o=myorg,c=us --add --scRamDisk --cn ram --scDevice /dev/ram1

  • The posleases2ldap process is started and running.

If all conditions are fulfilled, the new config.MAC is created or overwritten and the uploaded file hwinfo.MAC deleted at the time the posleases2ldap checks the upload directory.

The generated config.MAC file should contain lines reflecting the values in the LDAP database. The IP address is the address of the TFTP service specified in ipHostNumber under the TFTP scService object in the scBranchserver in the relevant scLocation.

If deploying to a hard disk, the following lines should be present:

IMAGE=/dev/sda2;myGraphical_test;3.1.4;192.168.90.1;8192
PART=1000;82;x,8000;83;/
DISK=/dev/sda

If deploying to a RAM disk, the following line should be present:

IMAGE=/dev/ram1;myGraphical_test;3.1.4;192.168.90.1;8192
Note
Note: Booting with Roles

If roles are used, the booting process is different. See Section 10.3, “API Description” for more details.

6.2 Hardware

Point of Service terminals are implemented in a variety of hardware. The primary difference of Point of Service hardware is whether the terminal has an internal hard disk or other persistent media (such as a flash drive), or whether the terminal is diskless. A system that has a hard disk can be configured to store the image on a disk partition instead of a RAM disk so it can boot from the hard disk if it cannot boot over the network.

6.2.1 Hardware Configuration Files

Point of Service terminal hardware configuration information is either stored in LDAP, as scConfigFileTemplate objects (see LDAP-Based Configuration Template (scConfigFileTemplate)), or on the Administration Server as a file in the /srv/SLEPOS/config/ directory and get distributed via rsync. These hardware configuration files must have a corresponding scConfigFileSyncTemplate object (see File-Based Configuration Template (scConfigFileSyncTemplate)) in the LDAP directory.

Note
Note: Point of Service Configuration Files

The hardware configuration files discussed in this section should not be confused with config.MAC Point of Service configuration files. The config.MAC files contain the parameters required to configure a Point of Service terminal during a network PXE or hard disk boot. For more information, see Section 6.3.1, “The config.MAC File”.

The scConfigFileTemplate and scConfigFileSyncTemplate objects are located in LDAP under the scPosImage or scCashRegister objects. In addition to providing Point of Service hardware configuration information, they specify which configuration file a Point of Service terminal should download from the Branch Server at boot time. For information on creating these objects in the LDAP directory, see Section 4.6.2.4, “Adding an scConfigFileTemplate Object” or Section 4.6.2.1, “Adding an scCashRegister Object”.

The Branch Server initially acquires the hardware configuration information for its local Point of Service terminals in one of the following ways:

  • posleases2ldap reads the configuration information stored in the scConfigFileTemplate object in LDAP and creates a configuration file in the /srv/tftpboot/KIWI/MAC/ directory on the Branch Server. The hardware configuration file is then distributed to the appropriate Point of Service terminal at boot time.

  • posleases2ldap reads where the configuration file is located in the scConfigFileSyncTemplate object, then triggers an rsync call to download the configuration file from the Administration Server. The configuration file is stored in the /srv/tftpboot/KIWI/MAC/ directory on the Branch Server so it can be distributed to the appropriate Point of Service terminal at boot time.

You do not need to do anything to initiate these processes except to start the posleases2ldap service on the Branch Server after installation.

However, if the terminal's hardware configuration information changes after its initial registration, you must manually run either pos dump-all or pos dump-ws --workstation name or MAC to update the hardware configuration information on the Branch Server. These commands regenerate the hardware configuration and config.MAC files for all Point of Service terminals found in LDAP.

For more information on the pos command, see Section B.3.12, “pos”.

6.2.2 Graphical Display Configuration

The graphics controller depends on the model type, so it can be derived from static tables. Displays that can be probed for their capabilities can be attached to Point of Service terminals with different model types.

Some Point of Service terminals can use multihead X configurations. The corresponding xorg.conf files are manufacturer-specific and are not provided as part of the SUSE Linux Enterprise Point of Service software package.

If no xorg.conf file is specified in LDAP, but the system image contains an X server, SUSE Linux Enterprise Point of Service attempts to probe the display type. Probing must be defined by the Point of Service hardware manufacturer.

6.2.3 Using a Terminal with Multiple Network Interfaces

SUSE Linux Enterprise Point of Service supports terminals having more than one network interface (for example Wi-Fi and LAN or more than one LAN). During registration and subsequent boots, the list of all interfaces is retrieved and LDAP updated (attribute macAddress of the scWorkstation object). This ensures that config.MAC files, MAC directories and specific PXE files are correctly created (or linked) for all interfaces, so the machine can freely use any of then to boot.

MAC interfaces cannot be directly interchanged between workstations, because the workstation is identified by them. To accomplish this, a two step procedure is needed: the MAC(s) of the interface(s) to be exchanged must first be deregistred, by removing the interface(s) from the machine(s) and rebooting the machine(s). The posleases2ldap script then removes the MAC(s) from the workstation's LDAP data. After that, they can be reused, so the interface(s) can be moved into another machine(s).

6.3 Point of Service Configuration Files

Each Point of Service terminal has its own configuration file which it loads at boot time. This configuration file determines which hardware drivers and images are loaded on the Point of Service terminal. The following sections describe the configuration files for a Point of Service terminal booted from the network or CD, and the configuration file used to register new Point of Service terminals.

6.3.1 The config.MAC File

The config.MAC files (where MAC is the MAC address of the specific terminal) contain the parameters required to configure a specific Point of Service terminal during a network PXE or hard disk boot. Each Point of Service terminal has its own config.MAC file on the Branch Server.

When the Branch Server connects to the Administration Server, it logs in to the LDAP directory, accesses the configuration parameters for its registered Point of Service terminals, and stores the information locally as ASCII configuration files (config.MAC) in the /srv/tftpboot/KIWI directory. At boot time, each Point of Service terminal connects to the Branch Server over TFTP and loads its associated config.MAC file.

There is no need to manually create the Point of Service configuration files. When a new Point of Service terminal comes online, its configuration file is automatically created from LDAP entries on the Administration Server.

For more information on this process, see Section 6.3.3, “The hwtype.MAC.HASH File” and Section B.2, “Core Script Process”.

To modify a Point of Service configuration file, you must modify the terminal's entries in LDAP and then run the pos dump-all command on the Branch Server.

For more information, see Table 11.1, “posAdmin: General Command Line Options”.

The format of the config.MAC file is as follows:

IMAGE=device;image;version;srv_ip;bsize;compressed,...,
CONF=source;dest;srv_ip;bsize,...,source;dest;srv_ip;bsize
PART=size;id;mount,...,size;id;mount
JOURNAL=ext3
DISK=device

Here is a sample config.MAC file:

IMAGE=/dev/sda2;minimal.i686;3.5.4;192.168.1.1;4096;compressed
CONF=/KIWI/00:30:05:1D:75:D2/ntp.conf;/etc/ntp.conf;192.168.1.1;1024;d6b12b7c552ca4cff978fffc0776ab92,
/KIWI/00:30:05:1D:75:D2/xorg.conf;/etc/X11/xorg.conf;
192.168.1.1;1024;ae3b70560b72ab39688b7dba330b766d
PART=500;82;swap,2000;83;/
DISK=/dev/sda
.
.
.

The following list provides a detailed description of each parameter in config.MAC and its variables.

config.MAC Configuration File Parameters
IMAGE=

Specifies which image (image) should be loaded with which version (version) and to which storage device (device) it should be linked.

Multiple image downloads are possible, but the first listed image must be the main system image. If the hard disk is used, a corresponding partitioning must be performed.

device

The storage device to which the image is linked, for example, /dev/ram1 for a RAM disk, /dev/sda2 for a hard disk, or /dev/md1 for RAID.

RAM devices should not be confused with hard disk devices, which use a partition table. On a Point of Service terminal, the partition sda1 is used for the Linux swap partition and sda2 defines the root file system (/). On the RAM disk device, /dev/ram0 is used for the initial RAM disk and cannot be used as storage device for the system image. It is recommended to use /dev/ram1 for the RAM disk.

When RAID is in use, devices need to be referenced as /dev/mdnumber, starting from zero (not from one as usual when RAID is not used). The posleases2ldap script automatically takes care of this if the RAID configuration scRaidScheme of the used scCashRegister is detected.

image

The name of the image to load on the Point of Service terminal.

version

The version of the image to load on the Point of Service terminal.

srv_ip

The server IP address for the TFTP download.

This variable must always be included in the IMAGE= parameter.

bsize

The block size for the TFTP download. If the block size is too small according to the maximum number of data packages (32768), linuxrc automatically calculates a new block size for the download. The maximum block size is 65464 Bytes.

This variable must always be included in the IMAGE= parameter.

compressed

Specifies that the boot process uses a compressed image. If the compressed variable is not included, the standard boot process is used.

The boot fails if you specify compressed but the image is not compressed. It also fails if you do not specify compressed and the image is compressed.

Important
Important: Image Compression

The name of the compressed image must contain the .gz suffix and must be compressed with gzip.

CONF=

Specifies the configuration files to download to the Point of Service terminal. The data is provided in a comma-separated list of source:target configuration files.

source

The path to the source configuration file on the TFTP server.

dest

The directory on the Point of Service terminal to which you want to download the source configuration file.

srv_ip

The server IP address for the TFTP download, which must always be included in the CONF= parameter.

bsize

The block size for the TFTP download. If the block size is too small according to the maximum number of data packages (32768), linuxrc automatically calculates a new block size for the download. The maximum block size is 65464 Bytes. This variable must always be included in the CONF= parameter.

md5sum

Contains the md5sum hash of the configuration file.

PART=

Specifies the partitioning data provided in a comma-separated list.

The first element of the list defines the service partition. This partition is used for administration purposes, such as storing the encrypted image before the installation, downloading a new image in the background, or local booting for the wireless terminals.

The second element of the list defines the swap partition. The third element defines the root partition. Each element must include the size (size), the type (id), and the mount point (mount).

Note
Note: Formatting Partitions

The fourth and following partitions are not formatted automatically. If these partitions already exist and contain important data, they are not changed in any way and all data on these partitions is preserved. This is useful to keep data between updates. To force formatting of these partitions, increase the size of the third (root) partition.

It is also possible to force formatting of the data partitions (including the service partition, but not the root partition) by using the POS_FORMAT_DATA_PART kernel parameter. By default, data partitions are formatted only when fsck fails with an uncorrectable error. If POS_FORMAT_DATA_PART=yes, data partitions are also formatted if the requested file system type is changed. If POS_FORMAT_DATA_PART=force, data partitions are formatted during each boot.

size

The size of the partition in MB. If you want the partition to take all the space left on a disk, use a lowercase letter x as the size specification.

id

The partition type: S for swap, L for all others.

mount

The partition mount point, for example: /home.

Important
Important: Service Partition

The first (service) partition must be mounted as /srv/SLEPOS.

Important
Important: Swap Partition

The swap partition must not contain a mount point. Use a lowercase letter x instead.

JOURNAL=

Specifies a journaling file system. The value for this parameter must be set to ext3 because that is the only journaling file system SUSE Linux Enterprise Point of Service supports.

If you have an existing Ext2 image, you can change the file system by setting a flag in the scCashRegister or the scWorkstation objects rather than re-creating the image. If Ext3 is specified in either of the LDAP objects, the Point of Service terminal extends the file system to Ext3 when the image is deployed.

The JOURNAL= parameter is only evaluated if the DISK= parameter is set.

DISK=

Defines the device through which the hard disk can be addressed, for example: /dev/sda. This parameter is only used with PART.

RAID=

Defines the raid configuration, according to the scRaidScheme attribute of the used scCashRegister (in the same format, but separated with semicolons ;). When applied, the image device is automatically written on the IMAGE line as /dev/mdnumber. Only raid1 is supported by KIWI.

Note, that dmraid fake-raid controllers are also supported.

RELOAD_IMAGE=

If set to yes, this parameter forces the configured image to be loaded from the server even if the image on the disk is up-to-date.

If you run pos dump-all or use another method to regenerate the config.MAC file, it overwrites this optional parameter, which is mainly used for debugging purposes. This parameter is only pertinent on disk-based systems.

RELOAD_CONFIG=

If set to a non-empty string, this parameter forces the config.MAC file to be loaded from the server.

If you run pos dump-all to regenerate the config.MAC file, it overwrites this optional parameter, also mainly used for debugging purposes and pertinent only on disk-based systems.

HWTYPE=

Hardware type of the terminal, used to determine correct scCashRegister object for registration (compared to scCashRegisterName).

POS_HWTYPE_HASH=

Hash of the hwtype file used for registration (or a message explaining that pos dump-all or another method was used).

KERNELVER=

The content of scKernelVersion of the scDistributionContainer containing the used image.

KERNELMATCH=

The content of scKernelMatch of the scDistributionContainer containing the used image.

KERNELEXP=

The content of scKernelExpression of the scDistributionContainer containing the used image.

WORKSTATION_LDAP_IP=

IP of the workstation in the LDAP database when the configuration file was created.

POS_KERNEL_PARAMS_HASH_VERIFY=

Hash of additional kernel parameters supplied by scPxeFileTemplatescPxeFile.

PART_PASSWORDS=

Contains a comma separated list of passwords for the encrypted partition(s). For data partitions, the password is taken from the scPassword attribute of the associated scPartition object (under the used scHarddisk). For the root partition, it contains the password of the system image, according to the scPassword attribute of the used scImageVersion object.

Specifying * as partition password means that a random password is generated on each boot. This is useful for swap partitions.

POS_ID=

Contains the assigned ID.

POS_ROLE=

Contains the assigned role.

POS_HWTYPE_ERR_HASH=

Identifies the API client to which the message in POS_ERR= applies.

POS_ERR=

Error message if setting of the role or ID failed or if there was some other general problem preventing the creation of a valid and current config.MAC.

SUSEMANAGER=

Contains semicolon separated host name to the SUSE Manager and the terminal's SUSE Manager registration key.

6.3.2 KIWI isoboot Configuration Files

For more information on creating an isoboot image, see Section 9.2.1, “Understanding the KIWI Configuration”.

6.3.3 The hwtype.MAC.HASH File

When a Point of Service terminal comes online for the first time, it does not have a config.MAC file on the Branch Server. To create this file for the terminal, the system must first register the Point of Service terminal in LDAP. This is done through the Point of Service control file, hwtype.MAC.HASH (where MAC is the MAC address of the specific terminal). The Point of Service control file contains the information required to create the terminal's workstation object (scWorkstation) in LDAP and determines which image and configuration settings should be included in the terminal's configuration file (config.MAC).

When role-based mode is active (see Section 10.2.1, “Creating the scRole Object”) od scIDPool is not empty (see Section 10.1, “Using Terminals with IDs”), the terminal returns the hwtype file with an added hash suffix which helps to determine whether the config.MAC file (via POS_HWTYPE_HASH entry) was created as a result of this request. Also, posleases2ldap reads the role and id requests and reacts according to the role-based scheme when creating the resulting config.MAC.

The Point of Service control file is formatted as follows:

HWTYPE=hardware type
HWBIOS=bios version
IPADDR=current IP address of the terminal
POS_ROLE=role selected on the terminal (role based mode)
POS_ID=id selected on the terminal

The process used to create the config.MAC file from the hwtype.MAC.HASH file is as follows:

  1. During the Point of Service boot process, the hardware type and BIOS version are detected.

  2. Using this information, the posleases2ldap command creates the control file hwtype.MAC.HASH.

    For more information, see Section B.3.7, “posleases2ldap”.

  3. The linuxrc program uploads hwtype.MAC.HASH to the Branch Server's upload directory /srv/tftpboot/upload.

    Note
    Note: Uploading the Control File

    The control file is uploaded to the TFTP server only when no configuration file (config.MAC) exists.

  4. The hardware type identified in the hwtype.MAC.HASH file is compared to the scCashRegister objects (see Hardware Reference Object (scCashRegister)) in the LDAP directory.

    If a match is found, the information in scCashRegister and its associated objects is used to create the Point of Service terminal's scWorkstation object in LDAP and its config.MAC file in the Branch Server's /srv/tftpboot/KIWI directory. After the config.MAC file is created, the hwtype.MAC.HASH file is deleted.

    If the hardware type is unknown, the information in the default scCashRegister object is used to create the Point of Service terminal's scWorkstation object and config.MAC file.

    Important
    Important: Default scCashRegister Object

    This safety net feature works only if you have configured a designated default scCashRegister object in the LDAP directory. For information on defining a default scCashRegister object, see Section 4.6.2.1, “Adding an scCashRegister Object”.

For a detailed review of the core scripts involved in this process, see Section B.2, “Core Script Process”.

When changing the ID or role, the client uploads the upload/hwtype.MAC.HASH file. For more information, see Section 10.3.3, “Changing ID and/or Role”.

6.4 Booting the Point of Service Terminal

Important
Important: Creating LDAP Objects Before Booting

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

Typically, when you boot a Point of Service terminal, it will first try to boot from CD or USB flash drive. If a CD or USB device is not available, the terminal attempts a network boot using PXE. If the network is not available, it boots from the hard disk. You can override this order with the BIOS settings.

The first time you boot the Point of Service terminals, the posleases2ldap daemon 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 6.3.3, “The hwtype.MAC.HASH File”.

Figure 6.1, “Point of Service Terminal Boot Process” provides a simplified overview of the Point of Service boot process for a network PXE boot, a hard disk boot, and a CD boot.

Point of Service boot process
Figure 6.1: Point of Service Terminal Boot Process

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

6.4.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.

  • While the TFTP service is set up and started automatically by the posInitBranchserver command, you must make sure to open the TFTP port in the firewall on the Branch Server. If the FTP service is used, the FTP port must be open. For more information on the Branch Server configuration, see Chapter 5, Setting Up a Branch Server.

  • The terminal must have an associated scCashRegister object in the LDAP directory. For more information, see Section 4.6.2, “Creating Point of Service Terminal Objects in LDAP”.

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

  • The Point of Service system images must have an associated scPosImage object in the LDAP directory. The image must be activated. For more information on activating images, see Section 4.6.2.8, “Activating Images”. For more information, see Section 4.6.2.6, “Adding an scPosImage Object”.

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. In the boot configuration file, which defaults to pxelinux.cfg/default, the boot parameters are defined. There is specified where the kernel and the initrd are located. The terminal downloads these files.

    The initrd (or initrd.gz) becomes the first bootstrap environment.

  3. The Point of Service terminal downloads the Linux kernel from the netboot image which consists of several files (the Linux kernel and a symbolic link, the initrd, and the initrd's md5sum), for example:

    initrd-netboot-suse-SLES11.i686-2.1.1.splash.gz
    initrd-netboot-suse-SLES11.i686-2.1.1.kernel.3.0.8-0.11-default
    initrd-netboot-suse-SLES11.i686-2.1.1.kernel
    initrd-netboot-suse-SLES11.i686-2.1.1.splash.md5

    The naming scheme of the kernel is initrd-netboot-suse-SLES11.architecture-image_version.kernel.kernel_version-flavour. The Linux kernel is used to boot the Point of Service terminals using PXE.

  4. Using PXE network boot or boot manager (GRUB), the Point of Service terminal boots the initrd (for example, initrd-netboot-suse-SLES11.i686-2.1.1.splash.gz) which 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 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. Forcing loading a driver is possible using boot parameters such as kiwikernelmodule=ide-disk.

  10. The module is loaded using modprobe. Any dependencies to other modules are resolved at that time.

  11. The network interface is set up via DHCP.

  12. After the interface has been established, the DHCP variables are exported to 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 made to determine whether the host name tftp.DOMAIN can be resolved. If not, the DHCP server is used as the TFTP server.

    Forcing another TFTP server is possible with a kernel parameter such as kiwitftp=IP_ADDRESS or if you set this kernel parameter in the pxelinux.cfg/default file.

  14. The idlist and the first available rolelist (rolelist.MAC, rolelist.hwtype, rolelist.default) is downloaded and the role mode is activated.

    The Point of Service configuration file, config.MAC (see Section 6.3.1, “The config.MAC File”) is loaded from the Branch Server's /srv/tftpboot/KIWI directory over TFTP.

    If the Point of Service terminal boots for the first time, its config.MAC file does not exist yet. The Point of Service terminal must first register on the system.

    If the role mode is activated and it is the first boot, the role and ID menu is displayed. If the role mode is activated but it is not the first boot, the Press C to change ID/role message is displayed. If the C key is pressed, the role and ID menu is displayed.

    A new Point of Service terminal registers as follows:

    1. A Point of Service control file (hwtype.MAC.HASH) is uploaded to the TFTP server's upload directory: /srv/tftpboot/upload.

      The hwtype.MAC.HASH file indicates the Point of Service hardware type and the BIOS version. The hwtype.MAC.HASH file is uploaded during first boot or when the role or ID is changed. If role mode is activated, the hwtype.MAC.hash is uploaded (for more information, see Section 10.3, “API Description”. The system uses this information to create the terminal's config.MAC file. For more information on this process, see Section 6.3.3, “The hwtype.MAC.HASH File”.

    2. After the upload, the Point of Service terminal renews the DHCP lease file (dhcpcd -n).

    3. The Point of Service terminal attempts to load its new config.MAC file from the TFTP server.

    4. If the config.MAC file is not yet available, the Point of Service terminal waits several seconds before repeating the two previous steps.

  15. When the config.MAC file loads, the system begins an analysis of its contents.

    For more information about the content and file format of the config.MAC file, refer to Section 6.3.1, “The config.MAC File”.

  16. The PART line (see PART= ) in the config.MAC 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 systems need to be updated.

    • If no system update is required, no image download occurs and the Point of Service terminal boots from the hard disk.

    • 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. Indicated images are downloaded with multicast TFTP.

  18. If the image is compressed, it is copied then decompressed.

  19. The image checksums are verified. If they do not match, the images are downloaded again.

  20. The CONF line (see CONF= ) 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. For more information about KIWI configuration, see Section 9.2.1, “Understanding the KIWI Configuration”.

  21. All the user space processes based on the boot image (dhcpcd -k) are terminated.

  22. The system image is mounted.

  23. The configuration files stored in the /config/ path are copied to the mounted system image.

  24. If this is a new image, an Image Install Notification occurs. If the terminal boots successfully, this information will be synchronized to the LDAP directory.

    1. The bootversion.MAC file is created in /srv/tftpboot/upload.

    2. posleases2ldap transfers the information to the scNotifiedImage attribute in the scWorkstation object in LDAP.

  25. The system switches to the mounted system image.

  26. The root file system is converted to the system image using pivot_root.

    All the required configuration files are now present because they have been stored in the system 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.

  27. The boot image is unmounted using an exec umount call.

  28. When linuxrc or the exec call terminates, the kernel initiates the initialization process, which starts processing the boot scripts as specified in /etc/inittab.

6.4.2 Booting System Images with Kexec

System images can also be booted using Kexec. The advantage of using Kexec is the possibility to use a boot image kernel and system image kernel with different versions. There is no need to reboot on the first installation of the terminal. Also, it allows the standard SUSE Linux Enterprise Server boot process. The disadvatage is the slower boot with forced Kexec.

Kexec is used by default when the kernel version does not match. Kexec can also be forced by setting FORCE_KEXEC to a non-empty string on the boot kernel command line. For more information about setting kernel command line parameters, see Section 10.6, “Specifying Kernel Command Line Options for Selected Terminals”.

When using Kexec, the system image must contain the kexec-tools package.

The booting procedure with Kexec follows these steps:

  1. The boot image (kernel+initrd) is started from PXE.

  2. the system image is downloaded and deployed.

  3. The configuration (initrd, GRUB) for the kernel from the system image is generated.

  4. The kernel from the system image is started with Kexec, then the standard SUSE Linux Enterprise Server boot process continues.

Warning
Warning: Kexec Limitations

Kexec cannot be used for booting a SLE12-based system image from a SLE11-based boot image, as the latter cannot generate a SLE12-compatible initrd and grub2 configuration. 64-bit kernels may required different arguments. In mixed 32-bit and 64-bit branches, the arguments can be added to a specific image as the scPxeFileTemplate LDAP object.

6.4.3 Booting Scenarios Using Netboot Image

This section describes the typical booting scenarios using the netboot image.

Point of Service boot process
Figure 6.2: Booting Scenarios Using Netboot Image

6.4.3.1 Normal PXE Boot (without a service partition)

This is the typical booting scenario using the netboot image with terminals connected over wired network and service partition is not used:

  1. PXE boot from Branch Server

  2. Initialize network

  3. Download configuration from Branch Server

  4. Download image from Branch Server

  5. Install GRUB on system image

  6. Image boot

In case of the Branch Server failure, the procedure is as follows:

  1. PXE boot from Branch Server fails

  2. GRUB boot from system image

6.4.3.2 Wi-Fi boot (using a service partition)

It is possible to use wireless networks (Wi-Fi) to connect wireless SUSE Linux Enterprise Point of Service terminals. The wireless support must be added when building images. The wireless support is included only in the netboot image – booting using PXE via wireless networks is however not supported. The first boot of the wireless can be performed using a preloaded image or an image on a USB flash drive. It is also possible to use a temporary LAN connection.

Note
Note: Multiple Network Interfaces

If a terminal uses multiple network interfaces (LAN and wireless, for example), a new record in LDAP and new config.MAC is created for each interface. All interfaces have the same host name and IP address assigned by DHCP.

Note
Note: Multicast Over Wireless Networks

Most current Wi-Fi networks do not support multicast correctly and switch to the lowest available network speed when multicast TFTP is used. Unless you are using accesspoints supporting high speed multicast over Wi-Fi, it is recommended to use FTP instead of multicast TFTP on such networks.

  1. GRUB boot from service partition template

  2. Inititialize network (Wi-Fi)

  3. Download configuration from the Branch Server

  4. Install/update GRUB on service partition

  5. Download image from the Branch Server

  6. Image boot

A normal Wi-Fi boot proceeds as follows:

  1. GRUB boot from service partition

  2. Initialize network (Wi-Fi)

  3. Download configuration from the Branch Server

  4. Install/update GRUB on service partition

  5. Check/download image from the Branch Server

  6. Image boot

6.4.3.3 Boot with Reduced Network Load

  1. Boot from PXE or service partition

  2. Initialize network (Wi-Fi)

  3. Download configuration from the Branch Server

  4. If the service partition contains the required image, it is used.

  5. Image boot

  6. Change terminal configuration via the roles API or pos dump-all

  7. Run posSyncSrvPart on the terminal

  8. Reboot the terminal, the process starts from the beginning

6.4.3.4 Offline Deployment

First boot proceeds as follows:

  1. GRUB boot from service partition template

  2. Network initialization fails

  3. Download configuration from service partition template

  4. Disk partitioning, the service partition template is copied to the service partition

  5. Install GRUB on the service partition

  6. Deploy image from the service partition

  7. Image boot

The next boots proceed as follows:

  1. GRUB boot from service partition template

  2. Network initialization fails

  3. Download configuration from service partition

  4. Check deployed image

  5. Image boot

If the terminal becomes connected to the Branch Server, the boot proceeds as follows:

  1. GRUB boot from service partition

  2. Initialize network

  3. Download configuration from the Branch Server

  4. Install/update GRUB on service partition

  5. Check/download image from the Branch Server

  6. Image boot

6.4.4 Booting from CD (isoboot)

If you cannot electronically distribute Point of Service images over your network, you must manually distribute the images using isoboot images. For more information on creating an isoboot image, see Section 8.1, “Building Images with the Image Creator Tool”.

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 system image is installed to a RAM or hard disk on the Point of Service terminal.

    The partition information resides in the KIWI config.xml file located on the CD. See Section 6.3.2, “KIWI isoboot Configuration Files” for mor information.

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

Depending on the system image that resides on the boot CD (Minimal or Graphical), you should note the following restrictions:

  • The Graphical image should only be used for Point of Service systems with storage media such as hard disk or flash medium. Otherwise, the Point of Service system must be upgraded with enough RAM to hold the system 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
    Note: Onboard VGA Memory Consumption

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

6.4.5 Image Install Notification

When the Branch Server distributes a new image to a Point of Service terminal, the system provides notification that the image was successfully installed on the Point of Service terminal. The notification is stored in the scWorkstation object in the LDAP directory on the Administration Server.

When the image is successfully installed on the Point of Service terminal, the linuxrc script running on the Point of Service terminal creates the bootversion.MAC file in the /srv/tftpboot/upload directory on the Branch Server. The posleases2ldap process then transfers the information to the scNotifiedImage attribute in the scWorkstation object in LDAP and deletes the bootversion.MAC file. The notification string is extended to also contain time and md5 hash of the configuration file used (see Section 11.5.17, “scWorkstation”.

The /srv/tftpboot/upload/bootversion.MAC file, in addition to image name (first line) and image version (second line) can contain a hash of the mentioned config.MAC file and a rollback flag:

POS_CFG_HASH=41c08da9b4bdc1179506f4f0324b3821
POS_ROLLBACK=1

The POS_ROLLBACK flag indicates whether this is a rollback request (POS_ROLLBACK=1) or notification (POS_ROLLBACK=0 or not present). In both cases, the information in the bootversion.MAC file is inserted into LDAP, into the scNotifiedImage parameter. It can contain up to IMAGE2LDAP_MAX_NOTIFY_IMAGES entries, the default is 4.

In case of a rollback request, a stored config.MAC file (/srv/tftpboot/KIWI/rollback.config.MAC.hash) is copied back to /srv/tftpboot/KIWI.

Not only config.MAC but all relevant files are saved to be used with rollback:

  • The associated configuration files (described in the configuration variable of the config.MAC file) are stored as /srv/tftpboot/KIWI/rollback/config/config_file.hash.

  • The associated PXE file, a specific PXE (01-M-A-C format) or the default PXE, is stored in /srv/tftpboot/KIWI/rollback/boot/pxe.hash (specific and default). Both the specific and the default PXE files are recovered as a specific PXE file, otherwise the current default PXE file, possibly shared between many terminals, would be overwritten.

  • The kernel and initrd files (boot images) are stored as /srv/tftpboot/KIWI/rollback/boot/kernel.hash and /srv/tftpboot/KIWI/rollback/boot/initrd.hash. These files are not recovered with their original names to protect the current kernel and initrd possibly shared by other terminals.

If rollback files are no longer used (they are not referenced in any rollback config.MAC.hash file), they are deleted. The oldest rollback config.MAC.hash file is deleted if the number of rollback configurations exceeds the maximum number defined in scNotifiedImage under the relevant scWorkstation.

If a different kernel or initrd is in the rollback data, it is not used immediatelly after this rollback is selected, but only after reboot after a bootversion file is uploaded back to the server. The kernel parameters in the PXE file are included in the first boot, but only those used later in the booting process (after the rollback occurs) are applied. The associated configuration files are included and used, even during the first boot in which the rollback selection occured.

For terminals, the rollback information is stored in the /srv/tftpboot/KIWI/rollback.MAC files. To keep them, the files are synchronized in every posleases2ldap cycle according to the scNotifiedImage parameters and the respective scWorkstation objects. If scNotifiedImage contains an invalid reference or a reference without the respective /srv/tftpboot/KIWI/rollback.MAC file present, it is ignored and not included in the rollback list.

6.5 Selecting a Boot Image Using Menu on a Terminal

If a terminal has a list of IDs, roles or a rollback list, it offers a possibility to change its configuration during boot. The Branch Server must be configured to use roles. For more information, see Section 10.2, “Using Terminals with Roles”.

6.5.1 Changing the ID of a Booting Terminal

To change the ID of the terminal during its boot, follow these steps:

  1. Wait for the terminal to print the Press C to change configuration message. Press C quickly to prevent a timeout.

  2. Using the cursor keys, select Change ID/Role from the menu and press Enter.

  3. Using the cursor keys, select the requested ID and press Enter.

  4. Press Enter. The booting sequence continues with the selected ID.

6.5.2 Changing the Role of a Booting Terminal

To change a role of the terminal during its boot, follow these steps:

  1. Wait for the terminal to print the Press C to change configuration message. Press C quickly to prevent a timeout.

  2. Using the cursor keys, select Change ID/Role from the menu and press Enter.

  3. Using the cursor keys, select the requested role and press Enter.

  4. Press Enter. The booting sequence continues with the selected role.

6.5.3 Performing a Rollback

During boot of a terminal, if some previous configurations have already been used on the terminal, it is possible to enter the rollback menu and choose one of the four most recent configurations.

If an older image is selected, it should be used until the pos dump-all is used.

  1. Wait for the terminal to print the Press C to change configuration message. Press C quickly to prevent a timeout.

  2. Using the cursor keys, select Rollback from the menu and press Enter.

  3. Using the cursor keys, select the requested image and press Enter.

  4. Press Enter. The booting sequence continues with the selected image.

Print this page