## PySDK Supported Configurations
The table below lists operating systems, CPU architectures, and Python versions supported by latest released PySDK version.
| Operating System |Supported CPU Architectures | Supported Python Versions | DeGirum Orca Hardware Support|
|**Ubuntu Linux 20.04 LTS**| x86-64| 3.8, 3.9|Yes|
|**Ubuntu Linux 20.04 LTS**|ARM AArch64 |3.9| Yes|
|**Raspberry Pi OS (64 bit)**|ARM AArch64|3.9|Yes|
|**Windows 10**|x86-64|3.8, 3.9|Planned|
|**macOS 12**|ARM AArch64|3.9|Planned|
## PySDK Installation
To install DeGirum PySDK from the DeGirum index server use the following command:
python3 -m pip install degirum --extra-index-url https://degirum.github.io/simple
To force reinstall the most recent PySDK version without reinstalling all dependencies use the following command:
python3 -m pip install degirum --upgrade --no-deps --force-reinstall --extra-index-url https://degirum.github.io/simple
## DeGirum Docker Images
For the ease of deployment, DeGirum provides Docker images for the [DeGirum AI server](https://hub.docker.com/r/degirum/aiserver)
and [PySDK AI client](https://hub.docker.com/r/degirum/aiclient) installations.
Please follow [this GitHub link to DeGirum Docker repo](https://github.com/DeGirum/docker-degirum) for details how to run these images
and for corresponding source Dockerfiles.
## DeGirum AI Server Configuration
PySDK can be used to configure and launch DeGirum AI server on hosts equipped with DeGirum Orca AI accelerator card(s).
This allows you running AI inferences on this AI server host initiated from remote clients.
To run PySDK as a server on some host perform the following steps on this host:
1. Create or select a user name to be used for all the following configuration steps. This user should have administrative rights on this host. The user name *ai-user* is used in the instructions below, but it can be changed to any other user name of your choice.
1. For convenience of future maintenance we recommend you to install PySDK into virtual environment, such as
Make sure you activated your Python virtual environment with Python 3.8 and PySDK installed into this virtual environment.
1. Create a directory for the AI server model zoo, and change your current working directory to this directory. For example:
1. Download all models from DeGirum public model zoo into the current working directory by executing the following command:
python3 -c "from degirum import server; server.download_models('.', token='token string')"
Where the `'token string'` is your personal access token string to the model zoo repository. In case of DeGirum
public model zoo, any valid [GitHub personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)
1. Start DeGirum AI server process by executing the following command:
python3 -m degirum.server --zoo /home/ai-user/zoo
The AI server is up and will run until you press ENTER in the same terminal where you started it.
By default, AI server listens to 8778 TCP port. If you want to change the TCP port, pass `--port` command line
argument when launching the server, for example:
python3 -m degirum.server --zoo /home/ai-user/zoo --port 8780
### Starting AI Server as Linux System Service
It is convenient to automate the process of AI server launch so it will be started automatically on each system startup.
To do so you need to define and configure Linux system service, which will do it for you. Please perform the following steps:
1. Create the configuration file in */etc/systemd/system* directory named *degirum.service*. You will need
administrative rights to create this file. You can use the following template as an example:
Description=DeGirum AI Service
# >> you may want to adjust the working directory:
# >> you may want to adjust the path to your Python executable and --zoo model zoo path;
# >> also you may specify server TCP port other than default 8778 by adding --port <port> argument:
ExecStart=/home/ai-user/miniconda3/bin/python -m degirum.server --zoo /home/ai-user/zoo
# >> you may want to adjust the restart time interval:
# >> you may want to change the user name under which this service will run.
# >> This user should have rights to access model zoo directory
1. Start the system service by executing the following command:
sudo systemctl start degirum.service
1. Check the system service status by executing the following command:
sudo systemctl status degirum.service
If the status is "Active", that means the configuration is good and the service is up and running.
1. Then enable the service for automatic startup by executing the following command:
sudo systemctl enable degirum.service
### Connecting to AI Server from Client Side
Now your AI server is up and running and you may connect to it from Python scripts using PySDK. To do so you pass the AI server network hostname
or its IP address to the `connect_model_zoo()` PySDK function:
import degirum as dg
model_zoo = dg.connect_model_zoo(host_address)
If you run your PySDK script on the **same** host as the AI server, you may use the 'localhost' string as a network hostname.
In local Linux networks with standard mDNS configuration the network hostname is a concatenation of the local hostname as returned by
*hostname* command and *.local* suffix, for example, if *hostname* command returns *ai-host*, then the network hostname
will be *ai-host.local*
## Linux Driver Installation
Hosts that have DeGirum Orca card installed need a driver to enable its functionality.
The driver is distributed as a source package via a DeGirum aptitude repository.
It can be built automatically after download. To download, built, and install the driver
please perfrom the following steps:
1. To add the DeGirum repository, add the following to /etc/apt/sources.list:
deb-src https://degirum.github.io/apt-repo ORCA main
1. Then, download DeGirum public key:
wget -O - -q http://degirum.github.io/apt-repo/DeGirum.gpg.key | sudo apt-key add -
1. Update package information from configured sources, then download prerequisites:
sudo apt update
sudo apt install dpkg-dev debhelper
1. Finally, download and build DeGirum Linux driver package:
sudo apt-get --build source orca-driver