Difference between revisions of "Open5gs: Compile"
Jump to navigation
Jump to search
Onnowpurbo (talk | contribs) |
Onnowpurbo (talk | contribs) |
||
(7 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | Sistem Operasi Ubuntu 22.04 | ||
+ | |||
+ | ==Install MongoDB== | ||
+ | |||
+ | Import public key | ||
+ | |||
+ | sudo apt update | ||
+ | sudo apt install gnupg | ||
+ | curl -fsSL https://pgp.mongodb.com/server-6.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg --dearmor | ||
+ | |||
+ | Buat file /etc/apt/sources.list.d/mongodb-org-6.0.list | ||
+ | |||
+ | Di Ubuntu 22.04 (Jammy) | ||
+ | |||
+ | echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list | ||
+ | |||
+ | Install MongoDB | ||
+ | |||
+ | sudo apt update | ||
+ | sudo apt install -y mongodb-org | ||
+ | sudo systemctl start mongod | ||
+ | sudo systemctl enable mongod | ||
+ | |||
+ | Tip: MongoDB digunakan sebagai database untuk NRF/PCF/UDR dan PCRF/HSS. | ||
+ | |||
+ | ==Setup TUN device (not persistent)== | ||
+ | |||
+ | Buat TUN device dengan nama interface ogstun. | ||
+ | |||
+ | sudo ip tuntap add name ogstun mode tun | ||
+ | sudo ip addr add 10.45.0.1/16 dev ogstun | ||
+ | sudo ip addr add 2001:db8:cafe::1/48 dev ogstun | ||
+ | sudo ip link set ogstun up | ||
+ | |||
+ | Tip: script ini tersedia di $GIT_REPO/misc/netconf.sh yang akan memudahkan kita dapat mengkonfigurasi TUN device: | ||
+ | |||
+ | sudo ./misc/netconf.sh | ||
+ | |||
+ | ==Install Pendukung== | ||
+ | |||
Install Dependency | Install Dependency | ||
− | sudo apt install python3-pip python3-setuptools python3-wheel ninja-build | + | sudo apt update |
− | + | sudo apt y install python3-pip python3-setuptools python3-wheel ninja-build build-essential flex bison \ | |
− | + | git cmake libsctp-dev libgnutls28-dev libgcrypt-dev libssl-dev libidn11-dev libmongoc-dev libbson-dev \ | |
− | + | libyaml-dev libnghttp2-dev libmicrohttpd-dev libcurl4-gnutls-dev libnghttp2-dev libtins-dev \ | |
− | + | libtalloc-dev meson | |
+ | |||
+ | ==Git clone & Compile== | ||
Clone source code dari github | Clone source code dari github | ||
+ | rm -Rf /usr/local/src/open5gs | ||
cd /usr/local/src | cd /usr/local/src | ||
git clone https://github.com/open5gs/open5gs | git clone https://github.com/open5gs/open5gs | ||
Line 14: | Line 57: | ||
Compile menggunakan Meson | Compile menggunakan Meson | ||
− | cd open5gs | + | cd /usr/local/src/open5gs |
meson build --prefix=`pwd`/install | meson build --prefix=`pwd`/install | ||
ninja -C build | ninja -C build | ||
− | Cek | + | ==Test== |
+ | |||
+ | Cek EPC (4G) | ||
+ | |||
+ | ./build/tests/attach/attach | ||
+ | |||
+ | Hasilnya, | ||
+ | |||
+ | s1setup-test : SUCCESS | ||
+ | simple-test : SUCCESS | ||
+ | guti-test : SUCCESS | ||
+ | auth-test : SUCCESS | ||
+ | idle-test : SUCCESS | ||
+ | emm-status-test : SUCCESS | ||
+ | ue-context-test : SUCCESS | ||
+ | reset-test : SUCCESS | ||
+ | issues-test : SUCCESS | ||
+ | All tests passed. | ||
+ | |||
+ | Cek Core (5G) | ||
+ | |||
+ | ./build/tests/registration/registration | ||
+ | |||
+ | Hasilnya, | ||
+ | |||
+ | simple-test : SUCCESS | ||
+ | guti-test : SUCCESS | ||
+ | auth-test : SUCCESS | ||
+ | ecc-test : SUCCESS | ||
+ | idle-test : SUCCESS | ||
+ | dereg-test : SUCCESS | ||
+ | paging-test : SUCCESS | ||
+ | identity-test : SUCCESS | ||
+ | gmm-status-test : SUCCESS | ||
+ | ue-context-test : SUCCESS | ||
+ | reset-test : SUCCESS | ||
+ | multi-ue-test : SUCCESS | ||
+ | All tests passed. | ||
− | + | Lakukan Full Test | |
− | |||
cd build | cd build | ||
meson test -v | meson test -v | ||
+ | |||
+ | Pastikan tidak ada Error, | ||
+ | |||
+ | ninja: Entering directory `/usr/local/src/open5gs/build' | ||
+ | ninja: no work to do. | ||
+ | 1/13 open5gs:unit / core RUNNING | ||
+ | >>> MALLOC_PERTURB_=59 /usr/local/src/open5gs/build/tests/core/core | ||
+ | ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀ | ||
+ | ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― | ||
+ | list-test : SUCCESS | ||
+ | pool-test : SUCCESS | ||
+ | strings-test : SUCCESS | ||
+ | time-test : SUCCESS | ||
+ | conv-test : SUCCESS | ||
+ | log-test : SUCCESS | ||
+ | .... | ||
+ | .... | ||
+ | .... | ||
+ | 12/13 open5gs:app / handover OK 13.56s | ||
+ | |||
+ | 13/13 open5gs:epc / non3gpp RUNNING | ||
+ | >>> MALLOC_PERTURB_=75 /usr/local/src/open5gs/build/tests/non3gpp/non3gpp | ||
+ | ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀ | ||
+ | ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― | ||
+ | epdg-test : SUCCESS | ||
+ | All tests passed. | ||
+ | ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― | ||
+ | 13/13 open5gs:epc / non3gpp OK 7.63s | ||
− | Install | + | Ok: 13 |
+ | Expected Fail: 0 | ||
+ | Fail: 0 | ||
+ | Unexpected Pass: 0 | ||
+ | Skipped: 0 | ||
+ | Timeout: 0 | ||
+ | Full log written to /usr/local/src/open5gs/build/meson-logs/testlog.txt | ||
+ | |||
+ | Pastikan tidak ada yang Fail. | ||
+ | |||
+ | ==Install Open5gs== | ||
− | cd build | + | cd /usr/local/src/open5gs/build |
ninja install | ninja install | ||
cd ../ | cd ../ | ||
− | |||
==Pranala Menarik== | ==Pranala Menarik== | ||
* [[5G]] | * [[5G]] |
Latest revision as of 08:59, 22 July 2023
Sistem Operasi Ubuntu 22.04
Install MongoDB
Import public key
sudo apt update sudo apt install gnupg curl -fsSL https://pgp.mongodb.com/server-6.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg --dearmor
Buat file /etc/apt/sources.list.d/mongodb-org-6.0.list
Di Ubuntu 22.04 (Jammy)
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
Install MongoDB
sudo apt update sudo apt install -y mongodb-org sudo systemctl start mongod sudo systemctl enable mongod
Tip: MongoDB digunakan sebagai database untuk NRF/PCF/UDR dan PCRF/HSS.
Setup TUN device (not persistent)
Buat TUN device dengan nama interface ogstun.
sudo ip tuntap add name ogstun mode tun sudo ip addr add 10.45.0.1/16 dev ogstun sudo ip addr add 2001:db8:cafe::1/48 dev ogstun sudo ip link set ogstun up
Tip: script ini tersedia di $GIT_REPO/misc/netconf.sh yang akan memudahkan kita dapat mengkonfigurasi TUN device:
sudo ./misc/netconf.sh
Install Pendukung
Install Dependency
sudo apt update sudo apt y install python3-pip python3-setuptools python3-wheel ninja-build build-essential flex bison \ git cmake libsctp-dev libgnutls28-dev libgcrypt-dev libssl-dev libidn11-dev libmongoc-dev libbson-dev \ libyaml-dev libnghttp2-dev libmicrohttpd-dev libcurl4-gnutls-dev libnghttp2-dev libtins-dev \ libtalloc-dev meson
Git clone & Compile
Clone source code dari github
rm -Rf /usr/local/src/open5gs cd /usr/local/src git clone https://github.com/open5gs/open5gs
Compile menggunakan Meson
cd /usr/local/src/open5gs meson build --prefix=`pwd`/install ninja -C build
Test
Cek EPC (4G)
./build/tests/attach/attach
Hasilnya,
s1setup-test : SUCCESS simple-test : SUCCESS guti-test : SUCCESS auth-test : SUCCESS idle-test : SUCCESS emm-status-test : SUCCESS ue-context-test : SUCCESS reset-test : SUCCESS issues-test : SUCCESS All tests passed.
Cek Core (5G)
./build/tests/registration/registration
Hasilnya,
simple-test : SUCCESS guti-test : SUCCESS auth-test : SUCCESS ecc-test : SUCCESS idle-test : SUCCESS dereg-test : SUCCESS paging-test : SUCCESS identity-test : SUCCESS gmm-status-test : SUCCESS ue-context-test : SUCCESS reset-test : SUCCESS multi-ue-test : SUCCESS All tests passed.
Lakukan Full Test
cd build meson test -v
Pastikan tidak ada Error,
ninja: Entering directory `/usr/local/src/open5gs/build' ninja: no work to do. 1/13 open5gs:unit / core RUNNING >>> MALLOC_PERTURB_=59 /usr/local/src/open5gs/build/tests/core/core ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀ ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― list-test : SUCCESS pool-test : SUCCESS strings-test : SUCCESS time-test : SUCCESS conv-test : SUCCESS log-test : SUCCESS .... .... .... 12/13 open5gs:app / handover OK 13.56s 13/13 open5gs:epc / non3gpp RUNNING >>> MALLOC_PERTURB_=75 /usr/local/src/open5gs/build/tests/non3gpp/non3gpp ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀ ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― epdg-test : SUCCESS All tests passed. ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― 13/13 open5gs:epc / non3gpp OK 7.63s Ok: 13 Expected Fail: 0 Fail: 0 Unexpected Pass: 0 Skipped: 0 Timeout: 0 Full log written to /usr/local/src/open5gs/build/meson-logs/testlog.txt
Pastikan tidak ada yang Fail.
Install Open5gs
cd /usr/local/src/open5gs/build ninja install cd ../