Open Linux Point of Sale


What it is

OLPOS is a project to explore and publish an Open Source Linux system for Retail and Hospitality POS Systems.

The Stack

Build
BackOffice
Client
  • The OpenLPOS Build system is currently based on Buildroot

    .

    The extensions and customizations specific to each role is contained in a series of private Bitbucket repositories, though local GitBucket or Stash is also supported.
    Jenkins is the control mechanism officially used in the project. Any build automation tool may be configured to monitor commits to the repositories, triggering builds per branch or repository.
  • The resulting BackOffice image contains the core stack required for deployment of thin clients, including provisions for iSCSI filesystems to serve application, data and logging.

    The components of the BackOffice and Client images are tracked against the official source code base, and is easily scanned for active and new CVEs.
  • A diskless Client image is the third feature of OpenLPOS.

    Using the traditional DHCP/TFTP/PXE network boot stack ensures compatibility with existing systems. Deploying iPXE provides additional capability, including chainload and Boot from iSCSI support.
    ARM, i686, x86_64 are targets for supported builds, with proof of concept builds on Raspberry Pi version 1B outpacing traditional i386 and x86_64 thin clients from Power-on to Login.
    Open source directory services provide identity management, while strict hardware access control (via MAC) is available through DHCP configuration to boot and application data.

    Buildroot is a set of Makefiles and patches that makes it easy to generate a complete embedded Linux system.


    Buildroot can generate any or all of a cross-compilation toolchain, a root filesystem, a kernel image and a bootloader image. Buildroot is useful mainly for people working with small or embedded systems, using various CPU architectures (x86, ARM, MIPS, PowerPC, etc.) : it automates the building process of your embedded system and eases the cross-compilation process.


    The major Buildroot features are:

    Can handle everything in your embedded system development project: cross-compiling toolchain, root filesystem generation, kernel image compilation and bootloader compilation. Buildroot is also sufficiently flexible that it can also be used for only one or several of these steps.

      Is very easy to set up, thanks to its menuconfig, gconfig and xconfig configuration interfaces, familiar to all embedded Linux developers. Building a basic embedded Linux system with Buildroot typically takes 15-30 minutes.
      Supports several hundreds of packages for userspace applications and libraries: X.org stack, Gtk2, Qt, DirectFB, SDL, GStreamer and a large number of network-related and system-related utilities and libraries are supported.
      Supports multiple filesystem types for the root filesystem image: JFFS2, UBIFS, tarballs, romfs, cramfs, squashfs and more.
      Can generate an (e)glibc or uClibc cross-compilation toolchain, or re-use your existing glibc, eglibc or uClibc cross-compilation toolchain
      Has a simple structure that makes it easy to understand and extend. It relies only on the well-known Makefile language.
      Buildroot is maintained by Peter Korsgaard, and licensed under the GNU GENERAL PUBLIC LICENSE V2 (Or later). Stable releases are delivered every three months.

Getting Started