Difference between revisions of "Open5gs: Compile"
Jump to navigation
Jump to search
Onnowpurbo (talk | contribs) |
|||
| (12 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
| − | + | Sistem Operasi Ubuntu 22.04 | |
| − | + | ==Install MongoDB== | |
| − | |||
| − | |||
| − | Clone | + | 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 | git clone https://github.com/open5gs/open5gs | ||
| − | Compile | + | 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 | ./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 | ||
| − | cd build | + | 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 | ninja install | ||
cd ../ | cd ../ | ||
| + | |||
| + | ==Pranala Menarik== | ||
| + | |||
| + | * [[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 ../