Running Environment
Dependency Configuration
Do the dependency configurations to run ZAiV Applicaiton.
Install dependencies
-
System Update
sudo apt update
sudo apt upgrade
-
Install OpenCV Library
sudo apt-get install -y libopencv-dev
-
Install HailoRT
# Delete an installed HailoRT
sudo dpkg -P hailort
# Clone a hailoRT repository
git clone https://github.com/hailo-ai/hailort.git
cd hailort
# Get git tags
git fetch --all --tags
git tag
# Checkout v4.12 version
git checkout tags/v4.12.0 -b 4.12.0-branch
# Build and Install
cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Release && sudo cmake --build build --config release --target install
-
Install OpenSSL
sudo apt-get install -y openssl
sudo apt-get install -y libssl-dev
-
Install GStreamer
sudo apt-get install -y libcairo2-dev libgirepository1.0-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio python-gi-dev
-
Install CMake
sudo apt-get install cmake -y
-
Install RapidJSON
git clone https://github.com/Tencent/rapidjson.git
cd rapidjson
mkdir build
cd build
cmake ..
sudo make install -j4
Configure network interface
The ZAiV Board's(ZAiv-AHU and ZAiV-AHR) default network settings are set as below.
(ZAiV-AHP does not need to configure an ethernet interface)
-
IP: 192.168.30.11
-
Netmask: 255.255.255.0
first, match the network band of RasberryPI to the same band as ZAiV according to the below step. (For example, if a zaiv's IP is “192.168.0.11”, a connected interface's IP should be set to any number between 1 and 254 excluding 11, which is used by zaiv, and set Netmask to “255.255.255.0”.)
-
Check a network interface
Most cases are configured to the below interface but need to check the connected interface.
Check the physically connected interface. In the case below image, it is ZAiV-AHU-
ZAiV-AHU: eth1
-
ZAiV-AHR: eth0
-
pi@aMAP:~ $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.30.115 netmask 255.255.255.0 broadcast 192.168.30.255
inet6 fe80::da3a:ddff:fe24:fa26 prefixlen 64 scopeid 0x20<link>
ether d8:3a:dd:24:fa:26 txqueuelen 1000 (Ethernet)
RX packets 341123 bytes 41070484 (39.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 277563 bytes 75028200 (71.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.230 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::7c35:e7ff:fe9c:8e83 prefixlen 64 scopeid 0x20<link>
ether 7e:35:e7:9c:8e:83 txqueuelen 1000 (Ethernet)
RX packets 19678 bytes 1379807 (1.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 19907 bytes 13178226 (12.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 9235 bytes 1735381 (1.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 9235 bytes 1735381 (1.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether d8:3a:dd:24:fa:28 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
-
Scan ZAiV board
If a response is received when scanning and ping, the configuration is ok.
pi@aMAP:~ $ hailortcli scan --interface eth1
Hailo Ethernet Devices:
[-] Board IP: 192.168.30.11
pi@aMAP:~ $ ping 192.168.30.11
PING 192.168.30.11 (192.168.0.11) 56(84) bytes of data.
64 bytes from 192.168.30.11: icmp_seq=1 ttl=255 time=0.337 ms
64 bytes from 192.168.30.11: icmp_seq=2 ttl=255 time=0.285 ms
64 bytes from 192.168.30.11: icmp_seq=3 ttl=255 time=0.333 ms
64 bytes from 192.168.30.11: icmp_seq=4 ttl=255 time=0.302 ms
--- 192.168.0.11 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 82ms
rtt min/avg/max/mdev = 0.285/0.314/0.337/0.025 ms
Change network interface
If you want to change ZAiV's IP, see the below step.
-
Readback "config.json" from ZAiV
hailortcli fw-config read --output-file config.json --ip 192.168.30.11
-
Modify IP of "static_ip_address" in "config.json" (using vi or nano editor).
{
"network": {
"should_use_dhcp": false,
"static_ip_address": {
"value": "192.168.0.11"
},
"static_gw_address": {
"value": "192.168.0.1"
},
"static_netmask": {
"value": "255.255.255.0"
},
"rx_pause_frames_enable": true
},
"logger": {
"send_via_pci": false,
"send_via_uart": true
}
}
-
Write "config.json" to ZAiV.
hailortcli fw-config write config.json --ip 192.168.30.11
-
If changing the zaiv's IP, must also change the Ethernet interface network band of RasberryPI.
-
Scan ZAiV boardIf a response is received when scanning and ping, the configuration is ok.
pi@aMAP:~ $ hailortcli scan --interface eth1
Hailo Ethernet Devices:
[-] Board IP: 192.168.0.11
pi@aMAP:~ $ ping 192.168.0.11
PING 192.168.0.11 (192.168.0.11) 56(84) bytes of data.
64 bytes from 192.168.0.11: icmp_seq=1 ttl=255 time=0.337 ms
64 bytes from 192.168.0.11: icmp_seq=2 ttl=255 time=0.285 ms
64 bytes from 192.168.0.11: icmp_seq=3 ttl=255 time=0.333 ms
64 bytes from 192.168.0.11: icmp_seq=4 ttl=255 time=0.302 ms
--- 192.168.0.11 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 82ms
rtt min/avg/max/mdev = 0.285/0.314/0.337/0.025 ms