Skip to main content

Bringing SUSI into the World of Containers! Advantech R&D Team’s Complete Dockerization Experiment Record

· loading
Author
Advantech ESS
Table of Contents

Have you ever wondered what it would be like to package our proud SUSI technology directly into a Docker container? This article takes you right into the heart of the Advantech engineering team’s technical experiment, unveiling the mysteries of SUSI running inside a Docker environment! Whether you are a technical expert, AE, sales partner, or a newcomer curious about embedded solutions, you’ll easily understand the exciting content of this “container magic show!”


Background: SUSI Meets Docker, Sparking New Industry Innovations
#

With the rise of Industrial IoT (IIoT) and edge computing, system deployment flexibility and portability have become increasingly important. Docker has become the “packaging expert” in today’s IT world, capable of bundling applications and their dependencies into a small container that can run instantly anywhere. SUSI (Secure and Unified Smart Interface) is Advantech’s intelligent API suite developed for hardware control and device management, serving as a core component in many of our smart system solutions.

What does it mean to deploy SUSI in a Docker container?

  • More flexible deployment options
  • Faster system replication and scaling
  • Reduced manpower costs for development and maintenance
  • Making our solutions easier to implement for clients!

Experiment Process: SUSI Parties Inside Docker!
#

Our team’s goal this time was to successfully run the SUSI suite inside a Docker container on an Ubuntu system and to actually verify its functionality. You can follow our steps and experience the magic of SUSI containerization firsthand!

Step 1: Install Docker and Pull the Base Image
#

  1. Install Docker
    sudo apt-get install docker.io
    
  2. Get the Ubuntu image
    sudo docker pull ubuntu
    
  3. View the list of images
    sudo docker images
    

Step 2: Create and Start the Container
#

  1. Create an Ubuntu container
    sudo docker run -it --rm --privileged ubuntu
    
  2. If you find the /sys/firmware/efi/efivars path is empty inside the container, remember to use the -v parameter to mount the host path:
    sudo docker run -it --privileged -v /sys/firmware/efi/efivars/:/sys/firmware/efi/efivars/ ubuntu /bin/bash
    

Step 3: Bring the SUSI Suite into the Container
#

We tested two methods:

Method 1: Directly Copy the Suite into the Container
#

  1. Find the name of the running container

    sudo docker ps
    
  2. Assuming the container is called “elastic_blackburn”, copy the SUSI suite into it:

    sudo docker cp XXX.tar.gz elastic_blackburn:/home
    

  3. After entering the container, update packages and install necessary components:

    apt-get update
    apt install -y libpci-dev
    

Method 2: Directly Mount the Host Folder
#

  1. Place the SUSI archive (XXX.tar.gz) in /home/test/Desktop on the host
  2. When starting the container, mount that folder into /home in the container and also mount the necessary system libraries:
    sudo docker run -it -rm --privileged -v /home/test/Desktop/:/home -v /usr/lib:/usr/lib ubuntu:20.04
    

Step 4: Install and Run SUSI
#

  1. Extract the SUSI suite and execute the installation script
    ./SUSI4.2.X/Driver/install.sh
    
  2. Test the SUSI Demo program
    ./SUSI4.2.X/Susi4Demo/susidemo4
    

Advanced Application: SUSI IoT Containerization, Even Easier on x86 Architecture!
#

Want to make SUSI IoT services run even more smoothly in containers? We’ve also designed a dedicated Dockerfile for x86 architecture, making deployment more automated!

Create a Dockerfile
#

FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update && apt install -y pciutils && apt clean
RUN mkdir -p /opt/Advantech/susi/service/ && \
    mkdir -p /usr/lib/x86_64-linux-gnu && \
    mkdir -p /usr/lib/Advantech
CMD ["/bin/bash"]

Build the Image
#

docker build -t susiiot_x86:1 .

Run the Container (Mount Necessary Folders and Libraries)
#

Here we mount several key directories and libraries to ensure the SUSI IoT service can operate seamlessly! The command is as follows:

sudo docker run \
  -it \
  --name kengweisusiiotdemo \
  --privileged \
  --mount type=bind,source=/opt/Advantech/susi/service/,target=/opt/Advantech/susi/service/,readonly \
  --mount type=bind,source=/etc/Advantech/susi/service/,target=/etc/Advantech/susi/service/,readonly \
  --mount type=bind,source=/usr/lib/x86_64-linux-gnu/libjansson.so.4,target=/usr/lib/x86_64-linux-gnu/libjansson.so.4,readonly \
  --mount type=bind,source=/usr/lib/libjansson.so.4,target=/usr/lib/libjansson.so.4,readonly \
  --mount type=bind,source=/usr/lib/libjansson.so,target=/usr/lib/libjansson.so,readonly \
  --mount type=bind,source=/usr/lib/libSusiIoT.so,target=/usr/lib/libSusiIoT.so,readonly \
  --mount type=bind,source=/usr/lib/libSUSIDevice.so.1,target=/usr/lib/libSUSIDevice.so.1,readonly \
  --mount type=bind,source=/usr/lib/libSUSIDevice.so,target=/usr/lib/libSUSIDevice.so,readonly \
  --mount type=bind,source=/usr/lib/libSUSIAI.so.1,target=/usr/lib/libSUSIAI.so.1,readonly \
  --mount type=bind,source=/usr/lib/libSUSIAI.so,target=/usr/lib/libSUSIAI.so,readonly \
  --mount type=bind,source=/usr/lib/libSUSI-4.00.so.1,target=/usr/lib/libSUSI-4.00.so.1,readonly \
  --mount type=bind,source=/usr/lib/libSUSI-4.00.so,target=/usr/lib/libSUSI-4.00.so,readonly \
  --mount type=bind,source=/usr/lib/libSUSI-3.02.so.1,target=/usr/lib/libSUSI-3.02.so.1,readonly \
  --mount type=bind,source=/usr/lib/libSUSI-3.02.so,target=/usr/lib/libSUSI-3.02.so,readonly \
  --mount type=bind,source=/usr/lib/libEApi.so.1,target=/usr/lib/libEApi.so.1,readonly \
  --mount type=bind,source=/usr/lib/libEApi.so,target=/usr/lib/libEApi.so,readonly \
  --mount type=bind,source=/usr/lib/Advantech,target=/usr/lib/Advantech,readonly \
  -v /home/:/volume \
  susiiot_x86:1 \
  bash

Experimental Results and Industry Applications: Making SUSI More Flexible and Powerful
#

This containerization experiment has proven that Advantech’s SUSI technology can not only run stably on traditional operating systems but can now also be seamlessly integrated into modern container platforms. Whether it’s cloud deployment, large-scale edge device management, or hybrid software-hardware automation applications, you can benefit from:

  • One-click deployment, rapid environment replication
  • Reduced deployment errors, improved operation and maintenance efficiency
  • Enhanced system isolation and security
  • Support for continuous integration and DevOps development processes

Compared to traditional deployment, containerization greatly enhances SUSI’s flexibility and scalability!
This not only demonstrates Advantech’s innovative capabilities in software engineering and system integration but also enables our solutions to quickly adapt to dynamic market demands.


Conclusion & Future Outlook: Continuous Innovation Toward a New Era of Smart Applications
#

This is only the first step in the Advantech R&D team’s containerization journey! We will continue to optimize SUSI’s deployment on various emerging platforms and proactively explore more automated, cloud-based, and AI-powered application scenarios. In the future, whether it’s smart factories, intelligent transportation, telemedicine, or next-generation IoT projects, Advantech will continue to innovate and accompany you at the forefront of digital transformation.

Interested in learning more about SUSI containerized applications? Feel free to contact us and unlock infinite possibilities for smart industries together!

Related

Revealed! How We Slim Down Windows Devices in Simple Steps—The Ultimate Image File Optimization Technique
· loading
Unlocking New Hardware Skills: How Advantech Makes Your Devices Update Like Lightning?
· loading
Demystifying ARM Linux BSP: Advantech Takes You Inside the Core Secrets and Practices
· loading