exOS FAQ & Getting Started


First of all, thanks to everyone using exOS, and for your open spirit of using Linux in an industrial environment. I have gotten a number of questions, and there are a couple of things that are good to know, and not necessarily obvious when you start working with exos.

  1. If something doesn’t work as intended, check the Loggers

    • check ExDeploy log first, regarding the installation status of the packages
    • If installation seems fine (check ExComponentInfo) but you have problems with data communication, check ExData
  2. Help can be found

  3. All services run as root. This can be especially important when using environment variables or special packages that are only available to a specific user.

    • When setting up your BR Linux, enable the root account, and install your services using the root account
    • If you need a specific framework / service on your system that you utilize via exos, make sure to run your scripts as sudo or root
    • If you cannot get an exOS service to run, which otherwise works on your linux system, test running the command as sudo on that system, and figure out what you need to do to make it work.
    • There are several reasons for exOS running as root (installation of packages, access to shared memory, owner rights of sockets), and currently theres no simple way to go around this
  4. If you are compiling sources on the target, unzip them (or copy them) to a folder like /home/user and build them there. Dont build them in /opt/exos where they land after deployment

  5. exOS services are “just Linux promtps”, meaning they do exactly the same as calling the command inside the specified working directory of your service as root or sudo, and the ExDeploy will show you the console output / error in the Logger. Theres no general rule to how you get certain thing working, however you can ask any chatbot or search stackoverflow for the errors you get, because they are mostly “normal Linux errors” and not related to exOS as such.

  6. python and nodejs packages are strongly version dependent. This is because the Javascript / python modules are compiled using the python/node environment of your build system, and you need to keep compatibility, like with any other C/C++ library. Theres a section on this in the exOS Component extension README

  7. The generated templates using cmake and other libraries are in fact templates, meaning you should adapt them to fit your needs. We have tried to make them as usable-out-of-the-box as possible, and again please check the built-in features of the vscode extension, but theres usually a need to adapt the build commands, the services and the files for your package, so please just go ahead and change them to your needs. Its all DIY Linux :slight_smile: .

Happy coding!