快轉到主要內容

讓 SUSI 進入容器世界!Advantech 研發團隊 Docker 化實驗全紀錄

· loading
作者
Advantech ESS
目錄

你有沒有想過:把我們引以為傲的 SUSI 技術,直接打包進 Docker 容器裡,會是什麼感覺?本篇文章帶你直擊 Advantech 工程師團隊的技術實驗現場,揭開 SUSI 在 Docker 環境下奔馳的神秘面紗!無論你是技術高手、AE、銷售夥伴,還是對嵌入式解決方案好奇的新朋友,都能輕鬆理解這場「容器魔法秀」的精彩內容!


背景:SUSI 遇上 Docker,產業新火花
#

隨著工業物聯網(IIoT)與邊緣運算的興起,系統部署靈活性和可移植性變得越來越重要。Docker 正是現今 IT 界的「打包小能手」,可以將應用程式和其依賴環境統統裝進一個小小的容器裡,移動到哪裡都能即刻運行。而 SUSI(Secure and Unified Smart Interface)則是 Advantech 針對硬體控制、設備管理所開發的智慧 API 套件,是我們眾多智慧系統方案的核心元件。

將 SUSI 部署在 Docker 容器中,代表什麼?

  • 更彈性的部署方式
  • 更快速的系統複製與擴展
  • 減少開發維護的人力成本
  • 讓我們的解決方案更容易落地到客戶端!

實驗過程:SUSI 在 Docker 裡開趴啦!
#

我們團隊這次的目標,就是在 Ubuntu 系統上,把 SUSI 套件成功跑進 Docker 容器,並實際驗證功能可用。你也可以跟著我們的腳步,一步步體驗 SUSI 容器化的魔力!

步驟一:安裝 Docker,拉出基礎映像檔
#

  1. 安裝 Docker
    sudo apt-get install docker.io
    
  2. 取得 Ubuntu 映像檔
    sudo docker pull ubuntu
    
  3. 查看映像檔清單
    sudo docker images
    

步驟二:建立並啟動容器
#

  1. 創建 Ubuntu 容器
    sudo docker run -it --rm --privileged ubuntu
    
  2. 如果發現 /sys/firmware/efi/efivars 路徑在容器裡是空的,記得用 -v 參數把 host 的路徑掛進去:
    sudo docker run -it --privileged -v /sys/firmware/efi/efivars/:/sys/firmware/efi/efivars/ ubuntu /bin/bash
    

步驟三:將 SUSI 套件帶進容器
#

我們測試了兩種方法:

方法一:直接複製套件進容器
#

  1. 找出正在運行的容器名稱

    sudo docker ps
    
  2. 假設容器叫做「elastic_blackburn」,把 SUSI 套件複製進去:

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

  3. 進入容器後,先更新套件、安裝必要元件:

    apt-get update
    apt install -y libpci-dev
    

方法二:直接掛載主機資料夾
#

  1. 將 SUSI 壓縮檔(XXX.tar.gz)放在主機 /home/test/Desktop
  2. 啟動容器時,將該資料夾掛載進容器 /home,同時掛載必要的系統函式庫:
    sudo docker run -it -rm --privileged -v /home/test/Desktop/:/home -v /usr/lib:/usr/lib ubuntu:20.04
    

步驟四:安裝並執行 SUSI
#

  1. 解壓 SUSI 套件,執行安裝腳本
    ./SUSI4.2.X/Driver/install.sh
    
  2. 測試 SUSI Demo 程式
    ./SUSI4.2.X/Susi4Demo/susidemo4
    

進階應用:SUSI IoT 容器化,x86 架構更 Easy!
#

想要讓 SUSI IoT 服務在容器裡跑得更順暢?我們還針對 x86 架構設計了專屬 Dockerfile,讓部署更加自動化!

建立 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"]

建立映像檔
#

docker build -t susiiot_x86:1 .

運行容器(掛載必要資料夾與函式庫)
#

這裡我們掛載了多個關鍵目錄和函式庫,確保 SUSI IoT 服務可以無縫運作!指令如下:

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

實驗成果與產業應用:讓 SUSI 更靈活、更強大
#

這次容器化實驗證明,Advantech 的 SUSI 技術不僅能穩定運行於傳統作業系統,現在也能無縫整合進現代化的容器平台。不論是雲端部署、大規模邊緣設備管理,還是軟硬體混合的自動化應用,都能享受到:

  • 一鍵部署,快速複製環境
  • 減少部署錯誤,提升維運效率
  • 強化系統隔離與安全性
  • 支援持續集成、DevOps 開發流程

與傳統部署相比,容器化讓 SUSI 的彈性與可擴展性大幅提升!
這不僅展現出 Advantech 在軟體工程與系統整合的創新實力,更讓我們的解決方案能快速因應市場多變需求。


結語與未來展望:持續創新,迎向智慧應用新時代
#

這只是 Advantech 研發團隊容器化旅程的第一步!我們會持續優化 SUSI 在各種新興平台上的部署方式,並主動探索更多自動化、雲端化、AI 賦能的應用場景。未來,無論是智慧工廠、智能交通、遠端醫療,還是下一代物聯網專案,Advantech 都將以持續創新的精神,陪伴您一起走在數位轉型的最前線。

有興趣了解更多 SUSI 容器化應用嗎?歡迎聯絡我們,一起開啟智慧產業的無限可能!

相關文章

揭密!我們如何用簡單步驟幫 Windows 裝置「瘦身」——影像檔案極致精簡術
· loading
解鎖硬體新技能:Advantech 如何讓你的設備閃電更新?
· loading
深入淺出:Advantech 帶你探索 ARM Linux BSP 的核心秘密與實踐
· loading