Setup
Follow this guide to set up your system to run the ONVIF Device Service.
System Requirements
- Intel™ Core® processor
- Ubuntu 22.04 LTS
- USB-compliant Camera
Dependencies
The software has dependencies, including Git, Docker, Docker Compose, and assorted tools. Follow the instructions from the following link to install any dependency that are not already installed.
Install Git
Install Git from the official repository as documented on the Git SCM site.
-
Update installation repositories:
sudo apt update
-
Add the Git repository:
sudo add-apt-repository ppa:git-core/ppa -y
-
Install Git:
sudo apt install git
Install Docker
Install Docker from the official repository as documented on the Docker site.
Verify Docker
To enable running Docker commands without the preface of sudo, add the user to the Docker group. Then run Docker with the hello-world
test.
-
Create Docker group:
sudo groupadd docker
Note
If the group already exists,
groupadd
outputs a message:groupadd: group docker already exists
. This is OK. -
Add User to group:
sudo usermod -aG docker $USER
-
Please logout or reboot for the changes to take effect.
-
To verify the Docker installation, run
hello-world
:docker run hello-world
A Hello from Docker! greeting indicates successful installation.
Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 2db29710123e: Pull complete Digest: sha256:10d7d58d5ebd2a652f4d93fdd86da8f265f5318c6a73cc5b6a9798ff6d2b2e67 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. ...
Install Docker Compose
Install Docker compose from the official repository as documented on the Docker Compose site.
Install Tools
Install the build, media streaming, and parsing tools:
sudo apt install build-essential jq curl v4l-utils mplayer
Note
The device service ONLY works on Linux with kernel v5.10 or higher.
The table below lists command line tools this guide uses to help with EdgeX configuration and device setup.
Tool | Description | Note |
---|---|---|
build-essential | Developer tools such as libc, gcc, g++ and make. | |
jq | Parses the JSON object returned from the curl requests. |
The jq command includes parameters that are used to parse and format data. In this tutorial, the jq command has been configured to return and format appropriate data for each curl command that is piped into it. |
curl | Allows the user to connect to services such as EdgeX. | Use curl to get transfer information either to or from this service. In the tutorial, use curl to communicate with the EdgeX API. The call will return a JSON object. |
v4l-utils | USB camera utility tools | This will be used to determine camera paths on the system for manual addition of cameras. |
mplayer | Video player | Use this to view the camera stream. |
>Table 1: Command Line Tools |
Download EdgeX Compose Repository
-
Create a directory for the EdgeX compose repository:
mkdir ~/edgex
-
Change into newly created directory:
cd ~/edgex
-
Clone the EdgeX compose repository
git clone https://github.com/edgexfoundry/edgex-compose.git
Next Steps
Deploy the service with default images>
Warning
While not recommended, you can follow the process for manually building the images.