실행 환경
종속성 구성
ZAiV Applicaiton을 실행하려면 종속성 구성을 수행하세요.
종속성 설치
-
시스템 업데이트
sudo apt update
sudo apt upgrade
-
OpenCV Library 설치
sudo apt-get install -y libopencv-dev
-
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
-
OpenSSL 설치
sudo apt-get install -y openssl
sudo apt-get install -y libssl-dev
-
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
-
CMake 설치
sudo apt-get install cmake -y
-
RapidJSON 설정
git clone https://github.com/Tencent/rapidjson.git
cd rapidjson
mkdir build
cd build
cmake ..
sudo make install -j4
네트워크 인터페이스 구성
ZAiV 보드(ZAiv-AHU 및 ZAiV-AHR)의 기본 네트워크 설정은 다음과 같습니다.
(ZAiV-AHP는 이더넷 인터페이스를 구성할 필요가 없습니다)
-
IP: 192.168.30.11
-
Netmask: 255.255.255.0
먼저 아래 단계에 따라 RasberryPI의 네트워크 대역을 ZAiV와 동일한 대역에 일치시킵니다. (예를 들어 zaiv의 IP가 “192.168.0.11”이라면 연결된 인터페이스의 IP는 zaiv에서 사용하는 11을 제외한 1~254 사이의 임의의 숫자로 설정하고, Netmask는 “255.255.255.0”으로 설정해야 합니다.)
-
네트워크 인터페이스 확인
대부분의 경우 아래 인터페이스로 구성되어 있으나 연결된 인터페이스를 확인해야 합니다.
물리적으로 연결된 인터페이스를 확인하세요. 아래 이미지의 경우 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
-
ZAiV board 감지
만약 스캔 및 핑을 통해 아래와 같이 응답이 정상적으로 나타나는 경우, 정상적으로 연결 및 설정된 것 입니다.
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
네트워크 인터페이스 변경
ZAiV의 IP를 변경하려면 아래 단계를 참조하세요.
-
ZAiV에서 "config.json" 을 읽어옵니다.
hailortcli fw-config read --output-file config.json --ip 192.168.30.11
-
"config.json"에서 "static_ip_address"의 IP를 수정합니다(vi 또는 nano 편집기 사용).
{
"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
}
}
-
ZAiV에 "config.json"을 Write합니다.
hailortcli fw-config write config.json --ip 192.168.30.11
-
zaiv의 IP를 변경하는 경우 RasberryPI의 이더넷 인터페이스 네트워크 대역도 변경해야 합니다.
-
만약 스캔 및 핑을 통해 아래와 같이 응답이 정상적으로 나타나는 경우, 정상적으로 연결 및 설정된 것 입니다.
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